Cloud-init Terraform ile nasıl kullanılır?


24

Digital Ocean ve Terraform ile çalışıyorum ve etki alanını, alt etki alanını, ağ tercihlerini ve ana bilgisayarı otomatikleştirebilirim ancak buna User databenzeyen bir bölüm var :

Kullanıcı bilgisi

Bu alanın açıklaması diyor Allows the use of Cloud-init to configure your droplet. Etrafa bakınca belgeleri buldum .

Sorum Terraform kullanırken bundan nasıl faydalanılır ?

Yanıtlar:


21

Cloud-init dosyaları her açılıştan önce çalışan ve diğerlerinin yanı sıra dosyaları değiştirebilecek, hizmetleri ayarlayabilecek, kullanıcılar yaratabilecek vb. Temel olarak önyükleme kodlarıdır.

Her tür damlacık türü tüm cloud-init işlevlerini desteklemez, örneğin CoreOS, kendi uygulamalarını kullanır ve çok sınırlı bir geçerli değerler kümesiyle kullanır.

Terraform'da kullanmak için, damlacık oluşturma sırasında cloud-init dosyasını sağlamanız yeterlidir:

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"

Bu, örneğin, CoreOS'un başlatma sırasında etcd2 ve filosunu çalıştıracağı bir damlacık oluşturacaktır.

CoreOS'ta bazı basit liman işçisi hizmetlerini kurmak için bu yapılandırma seçeneklerini nasıl kullanabileceğimi gösterdiğim bu depoda bazı örnekler bulabilirsiniz.


5

Terraform ile bir Otomatik Ölçeklendirme grubu user_dataoluşturduğunuzda, bu ASG tarafından oluşturulan örneklerin kullanması için belirtebilirsiniz . Burada belgelenmiş - https://www.terraform.io/docs/providers/aws/r/launch_configuration.html#user_data

Tek bir EC2 örneği de oluşturabilir ve user_datakullanılmasını sağlayabilirsiniz - https://www.terraform.io/docs/providers/aws/r/instance.html#user_data

AWS EC2 belgeleri, AWS'deki AMI'lerin çoğu Linux dağıtımında çalışan servise nasıl user_datailetildiğini açıklar cloud-init- http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user- veri bulut init

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.