source_dest_check 在 aws_launch_configuration 在 terraform
source_dest_check in aws_launch_configuration in terraform
我希望通过自动缩放启动配置 source_dest_check = 禁用(默认情况下启用)创建一个新启动的 ec2 实例。
我知道我们可以使用 source_dest_check = false 来创建 ec2 资源,但是如何在从 ASG 管理实例时实现相同的目的。
Terraform 不接受下面的 (source_dest_check = false) ,还有其他替代方法吗?
我可以从用户数据中实现吗?
resource "aws_launch_configuration" "launchconfig" {
name_prefix = "bastion-"
image_id = "${data.aws_ami.amazon-linux-2.id}"
instance_type = "${var.instance_type}"
placement_tenancy = "default"
enable_monitoring = true
#source_dest_check = false
security_groups = ["${aws_security_group. security_group.id}"]
iam_instance_profile = "${aws_iam_instance_profile.instance_profile.name}"
key_name = "${var. pem_key}"
#Include user-data
user_data = "${element(data.template_file.user_data.*.rendered, count.index)}"
lifecycle {
create_before_destroy = true
}
}
根据 Terraform 文档,aws_launch_configuration
资源类型不支持源目标检查 (source_dest_check
),它仅支持 aws_instance
资源,这在这方面没有多大帮助案例.
您可以使用 user-data
作为变通方法。首先,您需要从实例的元数据中获取实例 ID。
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`"
然后您可以使用 ec2 cli 禁用此特定实例的源-目标检查。
aws ec2 modify-instance-attribute --no-source-dest-check --instance-id $EC2_INSTANCE_ID --region <REGION-WHERE-EC2-INSTANCE-IS-LAUNCHED>
请注意,EC2 实例需要附加适当的角色才能进行调用。将此语句包含在 EC2 实例角色的权限中。
{
"Sid": "Allow Source-Dest check modification",
"Effect": "Allow",
"Action": "ec2:ModifyInstanceAttribute",
"Resource": "*"
}
我希望通过自动缩放启动配置 source_dest_check = 禁用(默认情况下启用)创建一个新启动的 ec2 实例。
我知道我们可以使用 source_dest_check = false 来创建 ec2 资源,但是如何在从 ASG 管理实例时实现相同的目的。
Terraform 不接受下面的 (source_dest_check = false) ,还有其他替代方法吗?
我可以从用户数据中实现吗?
resource "aws_launch_configuration" "launchconfig" {
name_prefix = "bastion-"
image_id = "${data.aws_ami.amazon-linux-2.id}"
instance_type = "${var.instance_type}"
placement_tenancy = "default"
enable_monitoring = true
#source_dest_check = false
security_groups = ["${aws_security_group. security_group.id}"]
iam_instance_profile = "${aws_iam_instance_profile.instance_profile.name}"
key_name = "${var. pem_key}"
#Include user-data
user_data = "${element(data.template_file.user_data.*.rendered, count.index)}"
lifecycle {
create_before_destroy = true
}
}
根据 Terraform 文档,aws_launch_configuration
资源类型不支持源目标检查 (source_dest_check
),它仅支持 aws_instance
资源,这在这方面没有多大帮助案例.
您可以使用 user-data
作为变通方法。首先,您需要从实例的元数据中获取实例 ID。
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`"
然后您可以使用 ec2 cli 禁用此特定实例的源-目标检查。
aws ec2 modify-instance-attribute --no-source-dest-check --instance-id $EC2_INSTANCE_ID --region <REGION-WHERE-EC2-INSTANCE-IS-LAUNCHED>
请注意,EC2 实例需要附加适当的角色才能进行调用。将此语句包含在 EC2 实例角色的权限中。
{
"Sid": "Allow Source-Dest check modification",
"Effect": "Allow",
"Action": "ec2:ModifyInstanceAttribute",
"Resource": "*"
}