Packer Ansible宿主有限变量



在packer及其ansible provisioner中处理主机有界变量需求的正确方法是什么?

Packer使用ansible provisioner,但对于CentOS8/RHEL8,它必须将CentOS8主机上的ansible_python_interpreter设置为平台python。然而,我的剧本有本地和远程步骤,所以我只想为该主机设置那个变量。通常,我不会在我的供应商中使用库存。

"extra_arguments":
[
"-v",
"-e", "ansible_python_interpreter=/usr/libexec/platform-python"
]

我认为我的选择是

  • 了解如何通过extra_arguments传递宿主变量
  • 通过早期的provisioner设置库存,并在其中设置变量,以便稍后使用

请告诉我你发现了什么是好的解决方案

在这种情况下,包装商ansible provisioner inventory_directory将是一个关键的助手。

  1. 为打包机ansible provisioner设置inventory_directory选项,以定义ansible在其中创建将目标主机定义为default的库存文件的ansible库存目录的位置
  2. default主机填充主机变量文件,其中包含Centos8/RHEL8首选python解释器所需的变量

包装机预紧器

"provisioners": [
{
"type": "ansible",
"playbook_file": "../../../playbooks/linux-agent-provision.yml",
"inventory_directory": "./inventory",
"extra_arguments":
[
"-v",
...
]
},
...

/库存目录

inventory/host_vars
inventory/host_vars/default.yml

inventory/host_vars/default.yml

ansible_python_interpreter: /usr/libexec/platform-python

相关内容

  • 没有找到相关文章

最新更新