Как создать базу данных mysql в экземпляре ec2 с помощью terraform - PullRequest
1 голос
/ 22 марта 2019

Я создал EC2 и My sql экземпляр, используя приведенный ниже код, и он успешно выполнен. Какова процедура, если нам нужно создать базу данных mysql в конкретном экземпляре ec2, если есть несколько запущенных. Я мог видеть экземпляр db в консоли aws. Несмотря на то, что в консоли есть опция для создания базы данных, мне нужно выполнить код terraform.

resource "aws_instance" "DB-Server"
 {
  ami = "ami-051f75c6"
  instance_type = "t2.micro"
  key_name="Key-pair
}
resource "aws_db_instance" "default"
 {
   allocated_storage    = 20
   storage_type         = "gp2"
   engine               = "mysql"
   engine_version       = "5.7"
   instance_class       = "db.t2.micro"
   name                 = "mydb"
   username             = "username"
   password             = "XXXX"
   `enter code here`parameter_group_name = "default.mysql5.7"
}

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Поскольку вы сказали, что хотите установить MySQL на свой собственный экземпляр EC2 с помощью Terraform, я бы предложил вам использовать функциональность user_data в EC2.Пользовательские данные позволяют вам определить сценарий для установки или настройки экземпляра EC2 при его развертывании.Terraform предлагает такие же возможности.

resource "aws_instance" "web" {
  ami           = "${data.aws_ami.ubuntu.id}"
  instance_type = "t2.micro"
  user_data = <<-EOF
                #!/bin/bash
                yum install -y mysql56-server
              EOF
  tags = {
    Name = "HelloWorld"
  }
}

Выше очень простой подход к выполнению задачи.Вам просто нужно настроить раздел user_data под свои нужды.

0 голосов
/ 26 марта 2019

Вам следует рассмотреть возможность использования поставщика Terraform local-exec или remote-exec.Это позволяет вам делать все, что вы могли делать с Bash.Когда ваш код Terraform завершен, вызывая экземпляр EC2, вы вызываете локальный / удаленный exec, который запускает скрипт для установки MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...