Каков правильный тип слияния для разделов cloud-init в многочастном формате MIME?

Я пытаюсь объединить несколько разделов конфигурации cloud-init вместе с функцией Terraform template_cloudinit_config для экземпляра AWS.

Представьте себе 4 шаблона (здесь упрощенно):

# template 1
hostname: ${hostname}

# template 2
users:
- name: "a"
- name: "b"
- name: "c"

# template 3
coreos:
  units:
  - name: ${service}.service

# template 4
coreos:
  units:
  - name: ${service2}.service

Если я MIME кодирую их с помощью заголовков cloud-config...

--MIMEBOUNDARY
Content-Transfer-Encoding: 7bit
Content-Type: text/cloud-config
Mime-Version: 1.0

Какой правильный тип слияния использовать?

1 ответ

Шаблон, который вы перечислили cloud-configне cloud-init

Использование источника данных template_fileЯ написал это напрямую без теста, не могли бы вы проверить, работает ли он?

data "template_file" "user-data" {
  template = <<EOF
#cloud-config
# template 1
hostname: ${hostname}

# template 2
users:
- name: "a"
- name: "b"
- name: "c"

# template 3
coreos:
  units:
  - name: ${service}.service

# template 4
coreos:
  units:
  - name: ${service2}.service

EOF

  vars {
    hostname = "${var.hostname}"
    service  = "${var.service}"
    service2 = "${var.service2}"

  }
}

resource "aws_instance" "instance" {
  ami = "${ var.ami-id }"
  ...

  user_data = "${ data.template_file.user-data.rendered }"

}
Другие вопросы по тегам