我正在为我的 Packer 构建作业使用 HCL 模板。我有一个 Ansible 目录,其中包含剧本和我的
packer/
项目树中的角色,我正尝试将其用作供应商。这一切都位于我用来运行作业的 EC2 实例的 $HOME
目录下。我似乎无法在我的 Packer 构建器模板中的供应块中获得剧本文件的正确路径。我想做的是以某种方式引用主目录作为其余路径的前缀。
我见过使用 JSON 模板执行以下操作的解决方案:
"home": "{{env HOME}}"
and then
account_file: "{{ user home}}/.secrets/gcp-{{ userenv }}.json"
是否有类似的东西可以用于 HCL 模板?
到目前为止,我已经尝试过:
provisioner "ansible" {
playbook_file = "$HOME/packer/ansible/playbook.yml"
}
}
这失败了,因为 Packer 将
$HOME
读取为原始字符串而不是系统环境变量。
我也试过:
provisioner "ansible" {
playbook_file = "${env.HOME}/packer/ansible/playbook.yml"
}
}
这失败了:
Unknown variable; There is no variable named "env".