我有一个问题,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设备,但我得到以下错误:
ERROR! Decryption failed on /home/users/ansible/device-access/group_vars/BigIP-Devices但是,如果我将BigIP文件移出group_vars,它将正确工作。
有人有什么想法吗?
非常感谢您的帮助!
发布于 2017-05-11 17:44:59
这似乎是一种预期的行为。
所有主机模式和限制都是在分析完全部库存后应用的。
在您的示例中,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所需的库存。
或者对所有文件使用相同的保险库密码。
https://stackoverflow.com/questions/43920296
复制相似问题