Cloud-Init-Dateien sind im Wesentlichen Bootstrap-Codes, die vor jedem Start ausgeführt werden und unter anderem Dateien ändern, Dienste einrichten, Benutzer erstellen usw. können.
Nicht alle Arten von Tröpfchen unterstützen alle Funktionen von Cloud-Init. Beispielsweise verwendet CoreOS eine eigene Implementierung mit einer sehr begrenzten Teilmenge gültiger Werte.
Um dies in terraform zu verwenden, geben Sie einfach die Cloud-Init-Datei während der Droplet-Erstellung an:
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"
Dadurch wird beispielsweise ein Droplet erstellt, in dem CoreOS während des Startvorgangs etcd2 und fleet ausführt
Weitere Beispiele finden Sie in diesem Repository . Dort zeige ich, wie man mit diesen Konfigurationsoptionen einige einfache Docker-basierte Dienste auf CoreOS einrichten kann