Làm cách nào để sử dụng cloud-init với Terraform?


24

Tôi đang làm việc với Digital Ocean và Terraform và tôi đã có thể tự động hóa tên miền, tên miền phụ, tùy chọn mạng và máy chủ lưu trữ nhưng có một phần được gọi là User datanhư thế này:

Dữ liệu người dùng

Mô tả của lĩnh vực đó nói Allows the use of Cloud-init to configure your droplet. Nhìn xung quanh tôi tìm thấy tài liệu .

Câu hỏi của tôi là, làm thế nào để tận dụng lợi thế này trong khi sử dụng Terraform ?

Câu trả lời:


21

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


5

Khi bạn tạo một nhóm Thu phóng tự động với Terraform, bạn có thể chỉ định user_datasẽ được sử dụng bởi các phiên bản được tạo bởi ASG này. Tài liệu ở đây - https://www.terraform.io/docs/providers/aws/r/launch_configuration.html#user_data

Bạn cũng có thể tạo một cá thể EC2 và cung cấp user_datađể sử dụng - https://www.terraform.io/docs/providers/aws/r/instance.html#user_data

Tài liệu AWS EC2 giải thích cách user_datatruyền đến cloud-initdịch vụ đang chạy trên hầu hết các bản phân phối Linux có sẵn dưới dạng AMI trên AWS - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user- dữ liệu đám mây-init

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.