团队,
我们正在维护多个环境可解析的配置文件。并且在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