Ansible 2.9.8-将变量传递给Ansible.cfg

  • 本文关键字:Ansible cfg 变量 ansible
  • 更新时间 :
  • 英文 :


团队,

我们正在维护多个环境可解析的配置文件。并且在ansible.cfg(./ssh-{{ env }}.cfg(中根据变量值(通过额外的变量(来选择环境。这在2.9.6和2.9.8中运行得很好,值没有通过。

我试过./ssh-"{{ env }}".cfg./ssh-"{{ env }}".cfg./ssh-'{{ env }}'.cfg,但都无济于事。有什么建议吗?

ansible-playbook -b -u test-user -e 'ansible_ssh_pass=****' -e 'env=apac' -i inventory.yml l provisioning/packages-playbook.yml

ansible.cfg

+ cat ansible.cfg
[defaults]
host_key_checking = no
record_host_keys = no
timeout = 10
remote_tmp = /tmp/.ansible-${USER}/tmp
local_tmp  = /tmp/.ansible-${USER}/tmp
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=30m -F ./ssh-{{ env }}.cfg
control_path = /tmp/ansible-%%r@%%h:%%p

从配置文件中删除ssh_args并使用环境ANSIBLE_ssh_args。例如

ANSIBLE_SSH_ARGS='-o ControlMaster=auto -o ControlPersist=30m -F ./ssh-apac.cfg' ansible-playbook -b -u test-user -e 'ansible_ssh_pass=****' -i inventory.yml provisioning/packages-playbook.yml

最新更新