我正在阅读此页面,如果我将以下文本放在清单文件夹中的文件中:
[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
我收到此错误消息
[WARNING]: * Failed to parse /home/myuser/Ansible/Inventory/pwdtest
with ini plugin: /home/cristi/Ansible/Inventory/pwdtest:9: Expected
key=value, got: $ANSIBLE_VAULT;1.2;AES256;my_user
我认为问题归结为将多行字符串分配给 INI 文件中的变量
有人知道我如何使用它吗? 我可以以 YAML 文件格式使用上述内容,但我想保持一致性并在任何地方使用 YAML
如何在 INI 文件中使用加密变量 (ansible_ssh_pass(?
你不能。
您链接到的文档页面似乎明显错误。
首先,ansible-vault
输出中的!vault
标记和|
字符属于 YAML 语法,它们不可能在 INI 格式的清单中工作。
似乎还有,解密值的函数 AnsibleVaultEncryptedUnicode
仅从 YAML 解析器调用,因此无法修改 INI 格式清单中的值(如单行,无标记(。
您可以:
将清单全部或部分写入 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