User data
的部分,看起来像这样:该字段的说明为
Allows the use of Cloud-init to configure your droplet
。环顾四周,我找到了文档。在使用Terraform时如何利用此优势?
#1 楼
Cloud-init文件本质上是引导程序代码,它们在每次启动之前运行,并且可以(其中包括)修改文件,设置服务,创建用户等。 cloud-init,例如,CoreOS使用它自己的实现,并带有非常有限的有效值子集。要在terraform中使用它,只需在创建小滴的过程中提供cloud-init文件:
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"
例如,这将创建一个液滴,在启动过程中,CoreOS将在其中运行etcd2和Fleet
>
#2 楼
使用Terraform创建Auto Scaling组时,可以指定此ASG创建的实例要使用的user_data
。在此处记录-https://www.terraform.io/docs/providers/aws/r/launch_configuration.html#user_data 您还可以创建一个EC2实例,并提供要使用的
user_data
- https://www.terraform.io/docs/providers/aws/r/instance.html#user_data AWS EC2文档说明了如何将
user_data
传递给在大多数Linux上运行的cloud-init
服务在AWS上作为AMI可用的发行版-http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-cloud-init