Як користуватися хмарою-інітом із Terraform?


24

Я працюю з Digital Ocean та Terraform і вже можу автоматизувати домен, піддомен, мережеві налаштування та хост, але є розділ, який називається User dataтак:

Дані користувача

Опис цього поля говорить Allows the use of Cloud-init to configure your droplet. Озирнувшись, я знайшов документацію .

Моє запитання: як скористатися цим під час використання Terraform ?

Відповіді:


21

Cloud-init-файли - це фактично коди завантаження, які запускаються перед кожним запуском, і можуть - серед інших - змінювати файли, налаштовувати служби, створювати користувачів тощо.

Не всі типи крапельок підтримують усі функції хмарно-ініт, наприклад, CoreOS використовує власну реалізацію з дуже обмеженим набором дійсних значень.

Щоб використовувати це в тераформі, просто надайте хмарно-ініт-файл під час створення крапель:

main.tf:

resource "digitalocean_droplet" "web" {
  image              = "coreos-stable"
  name               = "web"
  region             = "lon1"
  size               = "2gb"
  private_networking = true
  ssh_keys           = ["${digitalocean_ssh_key.dodemo.id}"]
  user_data          = "${file("web.conf")}"
}

web.conf:

#cloud-config
coreos:
  units:
    - name: "etcd2.service"
      command: "start"
    - name: "fleet.service"
      command: "start"

Наприклад, це створить крапельку, де CoreOS запустить etcd2 та флот під час запуску

Ви можете знайти ще кілька прикладів у цьому сховищі , де я показую, як можна використовувати ці параметри конфігурації для налаштування декількох простих служб на основі докера на CoreOS


5

Коли ви створюєте групу автоматичного масштабування за допомогою Terraform, ви можете вказати, якими user_dataбудуть використовуватися екземпляри, створені цим ASG. Задокументовано тут - https://www.terraform.io/docs/providers/aws/r/launch_configuration.html#user_data

Ви також можете створити один екземпляр EC2 і забезпечити user_dataйого використання - https://www.terraform.io/docs/providers/aws/r/instan.html#user_data

Документація AWS EC2 пояснює, як user_dataпередається cloud-initслужба, яка працює на більшості дистрибутивів Linux, доступних як AMI на AWS - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user- хмара даних-init

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.