Каков правильный тип слияния для разделов 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 }"
}