БастыАудиоКомикстерБалаларға арналған
Дмитрий Быков
Дмитрий Быковдәйексөз келтірді5 күн бұрын
Теперь добавим к серверу EC2 средство инициализации remote-exec: resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" vpc_security_group_ids = [aws_security_group.instance.id] key_name = aws_key_pair.generated_key.key_name provisioner "remote-exec" { inline = ["echo \"Hello, World from $(uname -smp)\""] } } Это почти ничем не отличается от средства инициализации local-exec, только вместо одной исполняемой команды (command) здесь с помощью аргумента inline передается их список. В завершение вам нужно сконфигурировать Terraform для подключения к этому серверу EC2 по SSH при запуске remote-exec. Для этого предусмотрен блок connection: resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" vpc_security_group_ids = [aws_security_group.instance.id] key_name = aws_key_pair.generated_key.key_name provisioner "remote-exec" { inline = ["echo \"Hello, World from $(uname -smp)\""] } connection { type = "ssh" host = self.public_ip user = "ubuntu" private_key = tls_private_key.example.private_key_pem } } Блок connection заставляет Terraform подключиться к публичному IP-адресу сервера EC2 по SSH с помощью имени пользователя "ubuntu" (так по умолчанию называется корневой пользователь в образах AMI с Ubuntu) и автоматически сгенерированного секретного ключа. Обратите внимание на ключевое слово self, которое применяется для задания параметра host. Это выражение со следующим синтаксисом: self.<ATTRIBUTE> Этот специальный синтаксис можно использовать исключительно в блоках connec­tion и provisioner для обращения к выходному атрибуту родительского ресурса. Если применить стандартный синтаксис вида aws_instance.example.<ATTRIBUTE>, получится ошибка циклической зависимости, так как ресурс не может ссылаться на самого себя. Таким образом, выражение self является обходным решением, которое было добавлено специально для средств инициализации ресурсов.
Terraform: инфраструктура на уровне кода
Terraform: инфраструктура на уровне кода
·
Евгений Брикман
Terraform: инфраструктура на уровне кода
Евгений Брикманжәне т.б.
1.2K

Кіру не тіркелу пікір қалдыру үшін