답변:
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와 플릿을 실행할 드롭 릿을 만듭니다.
이 저장소에서 더 많은 예제 를 찾을 수 있습니다 . 여기서 이러한 구성 옵션을 사용하여 CoreOS에서 간단한 도커 기반 서비스를 설정하는 방법을 보여줍니다.
Terraform으로 Auto Scaling 그룹을 user_data
생성 할 때이 ASG에서 생성 한 인스턴스에서 사용할 그룹을 지정할 수 있습니다 . 여기에 문서화되어 있습니다-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 설명서는 AWS 에서 AMI로 제공되는 대부분의 Linux 배포에서 실행 user_data
되는 cloud-init
서비스 로 전달되는 방법을 설명합니다 ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user- 데이터 클라우드 초기