Terraform에서 cloud-init를 사용하는 방법?


24

Digital Ocean 및 Terraform으로 작업하고 있으며 도메인, 하위 도메인, 네트워크 환경 설정 및 호스트를 이미 자동화 할 수 있지만 User data다음과 같은 섹션 이 있습니다.

사용자 데이터

해당 필드에 대한 설명은입니다 Allows the use of Cloud-init to configure your droplet. 둘러보고 나는 문서를 발견했다 .

내 질문은 Terraform 을 사용하는 동안 이것을 활용하는 방법 입니까?

답변:


21

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에서 간단한 도커 기반 서비스를 설정하는 방법을 보여줍니다.


5

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- 데이터 클라우드 초기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.