Các tệp Cloud-init về cơ bản là các mã bootstrap, chạy trước mỗi lần khởi động và có thể - trong số các tệp khác - sửa đổi các tệp, thiết lập dịch vụ, tạo người dùng, v.v.
Không phải tất cả các loại giọt đều hỗ trợ tất cả các chức năng của cloud-init, ví dụ CoreOS sử dụng triển khai riêng của nó, với một tập hợp con rất hạn chế của các giá trị hợp lệ.
Để sử dụng điều này trong terraform, chỉ cần cung cấp tệp khởi tạo đám mây trong quá trình tạo giọt:
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"
Ví dụ, điều này sẽ tạo ra một giọt, trong đó CoreOS sẽ chạy etcd2 và đội tàu trong khi khởi động
Bạn có thể tìm thấy một số ví dụ khác trong kho lưu trữ này , nơi tôi chỉ ra cách người ta có thể sử dụng các tùy chọn cấu hình này để thiết lập một số dịch vụ dựa trên docker đơn giản trên CoreOS