Это работает:
resource "aws_launch_template" "instances" {
...
block_device_mappings {
device_name = "/dev/xvdb"
ebs {
volume_type = "gp2"
volume_size = 250
delete_on_termination = true
}
}
Но когда я пытаюсь добавить это:
block_device_mappings {
device_name = "/dev/xvdb"
ebs {
volume_type = "gp2"
volume_size = 250
delete_on_termination = true
encrypted = true
kms_key_id = "${data.aws_kms_key.instances.id}"
}
}
Итак, я не могу добавить части шифрования. Ключ существует, включен и имеет разрешения для доступа к нему. Когда я удаляю строки шифрования, план выполняется до конца, и поэтому очевидно, что он будет применяться.
План terraform показывает это:
Error: Error running plan: 1 error(s) occurred:
* module.asg_instances.aws_autoscaling_group.instances_asg: 1 error(s) occurred:
* module.asg_instances.aws_autoscaling_group.instances_asg: Resource 'aws_launch_template.instances_lt' not found for variable 'aws_launch_template.instances_lt.id'
Код asg:
resource "aws_autoscaling_group" "instances_asg" {
max_size = 5
min_size = 2
min_elb_capacity = 2
health_check_grace_period = 300
health_check_type = "ELB"
desired_capacity = 3
force_delete = false
vpc_zone_identifier = ["${data.aws_subnet_ids.instances_subnets.*.id}"]
load_balancers = ["${aws_elb.instances_elb.name}"]
launch_template {
id = "${aws_launch_template.instances_lt.id}"
version = "$$Latest"
}
lifecycle {
create_before_destroy = true
}
}
Очевидно, что шаблон запуска даже не создается, когда у меня есть строки шифрования, из-за которых ссылка на него в ASG не работает. Это не ошибка в шаблоне запуска, который даже не создается, что должно быть.
Намерение состоит в том, чтобы создать ASG на основе этого шаблона запуска, который создает экземпляры с зашифрованным некорневым томом.
Есть идеи, что я сделал не так?
aws_launch_template
называетсяinstances
, а неinstances_lt
. - person Matt Schuchard   schedule 25.02.2019