我是 terraform 的新手。我正在尝试 terrafrom
我在 var.tfvars 中有这个
variable "AWS_REGION" {
default = "me-south-1"
}
variable "AMI" {
type = "map"
default ={
me-south-1 = "ami-01b735b798*******"
us-east-1 = "ami-0c2a1acae666******"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过以下方式在 VPC 中创建一个 ec2
resource "aws_instance" "terraform-web" {
ami = "${lookup(var.AMI, var.AWS_REGION)}"
instance_type = "t3.micro"
Run Code Online (Sandbox Code Playgroud)
这给了我上述错误。
有人能帮我解决这个问题吗?
我正在尝试 通过 Terraform 的 null_resource创建/应用这个 kubectl .yaml 文件https://github.com/Azure/aad-pod-identity/blob/master/deploy/infra/deployment.yaml到 AKS 以安装 Azure AD Pod 标识。它需要部署 Azure 网关入口控制器。将 Windows 10 与 VS Code 结合使用
主要.tf:
data "template_file" "aad_pod" {
template = "${file("${path.module}/templates/aad_pod.yaml")}"
}
resource "null_resource" "aad_pod_deploy" {
triggers = {
manifest_sha1 = "${sha1("${data.template_file.aad_pod.rendered}")}"
}
provisioner "local-exec" {
command = "kubectl apply -f -<<EOF\n${data.template_file.aad_pod.rendered}\nEOF"
}
}
Run Code Online (Sandbox Code Playgroud)
在 terraform apply 之后我有这个错误:
Error: Error running command 'kubectl apply -f -<<EOF
'cutted listing of yaml file'
EOF': exit status 1. Output: << was unexpected …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 terraform 创建一个 kubernetes 集群,但它向我显示了一个错误,我在不同的场合更改了版本的值,但没有奏效。
resource "digitalocean_kubernetes_cluster" "lox" {
name = "lox"
region = "nyc1"
version = "1.13.4-do.0"
node_pool {
name = "worker-pool"
size = "s-1vcpu-2gb"
node_count = 2
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
Error: Error creating Kubernetes cluster: POST https://api.digitalocean.com/v2/kubernetes/clusters: 422 validation error: invalid version slug
on 01-cluster.tf line 1, in resource "digitalocean_kubernetes_cluster" "lox":
1: resource "digitalocean_kubernetes_cluster" "lox" {
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我正在尝试使用 terraform创建一个AWS 仪表板来显示 S3 指标。我正在考虑遍历存储在列表变量中的所有 S3 存储桶并生成仪表板 json。
for 循环能够添加指标,但我无法删除尾随逗号,这会导致错误的 json。
代码片段:-
dashboard_body = <<EOF
{
"start":"-P6M",
"widgets": [
{
"type":"metric",
"x":0,
"y":0,
"width":12,
"height":6,
"properties":{
"metrics":[
%{ for bucket in var.buckets }
[
"AWS/S3",
"BucketSizeBytes",
"StorageType",
"StandardStorage",
"BucketName",
"${bucket}"
]
%{ endfor }
],
"period":86400,
"stat":"Average",
"region":"us-east-1",
"title":"Storage usage"
}
}
]
}
EOF
Run Code Online (Sandbox Code Playgroud)
解决方法:- 我最终在“metrics”数组的末尾硬编码了一个额外的聚合。无论如何我都需要总数,这是一个简单的解决方法。@kharandziuk 是理想的实现方式,但即使如此,您也可能需要使用此解决方法。
最终代码:-
{
"start":"-P6M",
"widgets": [
{
"type":"metric",
"x":0,
"y":0,
"width":12,
"height":6,
"properties":{ …Run Code Online (Sandbox Code Playgroud) amazon-s3 amazon-web-services terraform terraform-provider-aws
我有以下结构:
modules
|_ test1
| |_vpc.tf
|_test2
|_subnet.tf
Run Code Online (Sandbox Code Playgroud)
我在 test1/vpc.tf 中创建了一个 vpc
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
Run Code Online (Sandbox Code Playgroud)
我在输出中得到 vpc id,如:
output "vpc_id" {
value = aws_vpc.main.id
}
Run Code Online (Sandbox Code Playgroud)
如何将此 ID 传递给 test2/subnet.tf 文件?我在网上搜索,似乎无法找到答案。
升级后,我在运行 a 时收到如下消息terraform plan:
Error: Invalid resource instance data in state
on iam_server_backup.tf line 4:
4: resource "aws_iam_access_key" "backup" {
Instance aws_iam_access_key.backup data could not be decoded from
the state: unsupported attribute "ses_smtp_password".
Run Code Online (Sandbox Code Playgroud)
我修复它的方法是删除状态 ( terraform state rm aws_iam_access_key.backup)。但是,这在我运行时创建了新的访问密钥terraform apply,这很耗时,因为我必须更改所有应用程序中的所有访问密钥。有没有更好的方法来解决这个问题?
我是使用 AWS 学习 terraform 的新手,据我所知,我可以创建一个 EC2 实例并向其传递一些终端命令(通过“user_data”)以安装软件等……
我想知道我是否可以安装 Docker、下载存储库、构建映像并进行部署。
但是如果我有一个全栈应用程序,并且我有:
Instance_1:后端
Instance_2:前端
我如何捕获 Instance_1 的 IP(通过“输出”)并将其传递给存储在 Instance_2 上的前端应用程序的源代码,以使前端能够连接到 Instance_1 上的后端?。
我知道我可以通过 github 下载源代码并通过 Docker 构建它
如果我创建一个 EC2 实例
resource "aws_instance" "Mi_Primer_Servidor"{
#Verificar el 'id' de la ami y las configuraciones con AWS
ami="ami-056cb9ae6e2df09e8"
#Seleccionamos el tipo de maquina virtual
instance_type = "t2.micro"
#Asignamos una zona de disponibilidad (OPCIONAL)
availability_zone = "us-west-2a"
#Se recomienda crear previamente la llave en AWS y descargar el archivo
#O usar una llave ya existente
key_name …Run Code Online (Sandbox Code Playgroud) amazon-ec2 amazon-web-services user-data terraform terraform-provider-aws
下面是我的 terraform 资源。我们如何从 terraform gcp 资源 iam 绑定中的变量添加项目编号,因为如果我将为其他帐户运行相同的 terraform,我必须手动更改它。
resource "google_project_iam_binding" "project" {
project = var.projectid
role = "roles/container.admin"
members = [
"serviceAccount:service-1016545346555@gcp-sa-cloudbuild.iam.gserviceaccount.com",
]
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 terraform 为 Aurora 扩展 RDS 集群。
我正在设置一个带有 3 个服务器的 RDS 实例 - 1 个写入器和 2 个只读副本。这是我的要求
当任何服务器出现故障时,添加一个新服务器,以便副本始终至少有 3 个服务器。
当任何主机的 CPU 使用率超过 50% 时,将新服务器添加到集群。服务器的最大数量为 4。
是否可以创建一个策略,以便当 3 个服务器中的任何一个出现故障时,然后为该 RDS 实例创建一个新服务器?如果是,如何监控服务器故障?
我是否需要使用 appAutoScaling 或使用 autoScaling 或两者兼而有之?这是与我的用例匹配的链接:https : //registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appautoscaling_policy
我正在使用 Terraform 配置我的 Infracture,我正在使用 xyz.sh bash 脚本,该脚本包含我在 GPU 机器上的深度学习模型训练。
我的问题是,如何在没有 ssh 进入机器的情况下获取 xyz.sh bash 脚本的日志/完成时间?如果不可能,那么如果我将 ssh 进入机器,我如何检查脚本是否仍在运行或已完成
terraform ×10
kubernetes ×2
amazon-ec2 ×1
amazon-s3 ×1
devops ×1
kubectl ×1
user-data ×1
yaml ×1