如何在INI文件中使用加密的变量(ansible_ssh_pass)?

时间:2018-08-09 16:31:32

标签: ansible

我正在阅读此页面 https://docs.ansible.com/ansible/2.5/network/getting_started/first_inventory.html#protecting-sensitive-variables-with-ansible-vault

如果我将此文本放在“清单”文件夹中的文件中

[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

1 个答案:

答案 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