为 ansible provisioner 使用自定义配置文件
Use custom configuration file for ansible provisioner
我正在尝试使用其 ansible
配置程序配置使用 packer
构建的机器;
配置无法找到我在自定义 ansible.cfg
文件中设置的某些角色,如下所示:
[defaults]
stdout_callback = yaml
retry_files_enabled = False
vault_password_file = .vault
roles_path = ./roles
Packer documentation 未指明将位置传递给自定义 ansible.cfg
文件的方法;
有办法解决这个问题吗?
似乎可以解决问题
例如
"provisioners": [
{
"type": "ansible",
"playbook_file": "ansible/playbooks/install.yml",
"ansible_env_vars": [ "ANSIBLE_ROLES_PATH=ansible/roles", "ANSIBLE_VAULT_PASSWORD_FILE=ansible/.vault" ]
},
您可以使用 packer 的环境变量来设置 ansible.cfg 位置,而不是将所有配置移动到 packer。
"provisioners": [
{
"type": "ansible",
"playbook_file": "ansible/playbooks/install.yml",
"ansible_env_vars": [ "ANSIBLE_CONFIG=ansible/ansible.cfg" ]
}
]
参考:https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file
我正在尝试使用其 ansible
配置程序配置使用 packer
构建的机器;
配置无法找到我在自定义 ansible.cfg
文件中设置的某些角色,如下所示:
[defaults]
stdout_callback = yaml
retry_files_enabled = False
vault_password_file = .vault
roles_path = ./roles
Packer documentation 未指明将位置传递给自定义 ansible.cfg
文件的方法;
有办法解决这个问题吗?
例如
"provisioners": [
{
"type": "ansible",
"playbook_file": "ansible/playbooks/install.yml",
"ansible_env_vars": [ "ANSIBLE_ROLES_PATH=ansible/roles", "ANSIBLE_VAULT_PASSWORD_FILE=ansible/.vault" ]
},
您可以使用 packer 的环境变量来设置 ansible.cfg 位置,而不是将所有配置移动到 packer。
"provisioners": [
{
"type": "ansible",
"playbook_file": "ansible/playbooks/install.yml",
"ansible_env_vars": [ "ANSIBLE_CONFIG=ansible/ansible.cfg" ]
}
]
参考:https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file