Los archivos de inicio en la nube son esencialmente códigos de arranque, que se ejecutan antes de cada inicio y pueden, entre otros, modificar archivos, configurar servicios, crear usuarios, etc.
No todos los tipos de gotas admiten todas las funcionalidades de cloud-init, por ejemplo, CoreOS usa su propia implementación, con un subconjunto muy limitado de valores válidos.
Para usar esto en terraform, simplemente proporcione el archivo cloud-init durante la creación de gotitas:
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"
Esto, por ejemplo, creará una gota, donde CoreOS ejecutará etcd2 y la flota durante el inicio
Puede encontrar algunos ejemplos más en este repositorio , donde muestro cómo se pueden usar estas opciones de configuración para configurar algunos servicios simples basados en Docker en CoreOS