File cloud-init pada dasarnya adalah kode bootstrap, yang dijalankan sebelum setiap startup, dan dapat - antara lain - memodifikasi file, mengatur layanan, membuat pengguna, dll.
Tidak semua jenis tetesan mendukung semua fungsi cloud-init, misalnya CoreOS menggunakan implementasinya sendiri, dengan subset nilai valid yang sangat terbatas.
Untuk menggunakan ini dalam terraform, cukup berikan file cloud-init selama pembuatan droplet:
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"
Ini misalnya akan membuat tetesan, di mana CoreOS akan menjalankan etcd2 dan armada selama startup
Anda dapat menemukan beberapa contoh lagi di repositori ini , di mana saya menunjukkan bagaimana seseorang dapat menggunakan opsi konfigurasi ini untuk mengatur beberapa layanan berbasis buruh pelabuhan sederhana di CoreOS