我遇到问题,Ansible在传递命令时尝试解码错误的保险库。
设置如下:
我的ansible.cfg
[defaults]
transport=smart
hostfile=./hosts
host_key_checking=False
timeout=5
[ssh_connection]
ssh_args = ""
我的主机文件:
[BigIP-Devices]
BigIP-1
BigIP-2
[Cisco-Devices]
Cisco-1
Cisco-2
TEST1
我的group_vars:
BigIP-Devices < This is a vault encrypted with bigip-vaultkey
Cisco-Devices < This is a vault encrypted with cisco-vaultkey
bigip-vaultkey
cisco-vaultkey
两个保险库都如下所示,每个保险库都有不同的细节:
---
ansible_ssh_user: user
ansible_ssh_pass: password
我正在尝试使用以下命令:
ansible -c ssh Cisco-Devices --vault-password-file ./group_vars/cisco-vaultkey --limit TEST1 -m raw -a "show version"
即使它在命令中调用Cisco-Devices,我也会收到以下错误:
ERROR! Decryption failed on /home/users/ansible/device-access/group_vars/BigIP-Devices
但是,如果我将BigIP文件移出group_vars,它可以正常工作。
任何人都有任何想法?
非常感谢您的帮助!!!
答案 0 :(得分:0)
这似乎是预期的行为 解析完整清单后,将应用所有主机模式和限制。
在您的情况下,Ansible发现BigIP-Devices
和Cisco-Devices
组并尝试加载相应的组变量。
如果您从未同时在BigIP-Devices
和Cisco-Devices
上执行您的剧本,您可能希望将它们分成不同的库存,例如:
./inventories/
./inventories/bigip/hosts
./inventories/bigip/group_vars/all/BigIP-Devices
./inventories/
./inventories/cisco/hosts
./inventories/cisco/group_vars/all/Cisco-Devices
并使用-i inventories/bigip
添加所需的广告资源。
P.S。或者对所有文件使用相同的保管库密码。