如果我将此文本放在“清单”文件夹中的文件中
[vyos:vars]
ansible_connection=network_cli
ansible_network_os=vyos
ansible_user=my_vyos_user
ansible_ssh_pass= !vault |
$ANSIBLE_VAULT;1.2;AES256;my_user
66386134653765386232383236303063623663343437643766386435663632343266393064373933
3661666132363339303639353538316662616638356631650a316338316663666439383138353032
63393934343937373637306162366265383461316334383132626462656463363630613832313562
3837646266663835640a313164343535316666653031353763613037656362613535633538386539
65656439626166666363323435613131643066353762333232326232323565376635
我收到此错误消息
[警告]:*无法解析/ home / myuser / Ansible / Inventory / pwdtest 使用ini插件:/ home / cristi / Ansible / Inventory / pwdtest:9:预期 键=值,得到:$ ANSIBLE_VAULT; 1.2; AES256; my_user
我认为问题在于将多行字符串分配给INI文件中的变量
有人知道我该如何使用吗? 我可以以YAML文件格式使用上述内容,但我想保持一致性并在所有地方使用YAML
答案 0 :(得分:2)
如何在INI文件中使用加密的变量(ansible_ssh_pass)?
你不能。
documentation page you linked to似乎是错误的。
首先,!vault
的输出中的|
标记和ansible-vault
字符属于YAML语法,因此无法在INI格式清单中使用。< / p>
似乎AnsibleVaultEncryptedUnicode
函数会解密值is called only from the YAML parser,因此无法在INI格式清单中修改值(如单行,无标签)
您可以:
write your inventory in YAML,全部或部分,如果您使用目录并将库存分割成多个文件
在与清单文件相同的目录中创建目录group_vars
,并将文件vyos.yml
放入其中,内容如下:
ansible_connection: network_cli
ansible_network_os: vyos
ansible_user: my_vyos_user
ansible_ssh_pass: !vault |
$ANSIBLE_VAULT;1.2;AES256;my_user
66386134653765386232383236303063623663343437643766386435663632343266393064373933
3661666132363339303639353538316662616638356631650a316338316663666439383138353032
63393934343937373637306162366265383461316334383132626462656463363630613832313562
3837646266663835640a313164343535316666653031353763613037656362613535633538386539
65656439626166666363323435613131643066353762333232326232323565376635