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