如何在INI文件中使用加密变量(ansible\u ssh\u pass)?

如何在INI文件中使用加密变量(ansible\u ssh\u pass)?,ansible,Ansible,我正在读这一页 如果我将此文本放入库存文件夹中的文件中 [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 66386134653765386232383236303063623663343437643766386

我正在读这一页

如果我将此文本放入库存文件夹中的文件中

[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:预期 key=值,got:$ANSIBLE\u VAULT;1.2;AES256;我的用户

我认为问题可以归结为将多行字符串分配给INI文件中的变量

有人知道我怎么用这个吗? 我可以在YAML文件格式中使用上述内容,但我希望保持一致性并在任何地方使用YAML

如何在INI文件中使用加密变量(ansible\u ssh\u pass)

你不能

这似乎是明目张胆的错误

首先,
!vault
标记和
|
ansible vault输出中的字符属于YAML语法,它们无法在INI格式清单中工作

另外,函数
ansibleVaultEncryptedUncode
,用于解密值,因此无法修改INI格式清单中的值(如单行,无标记)


您可以:

  • ,全部或部分,如果您使用目录并将目录拆分为多个文件

  • 在与库存文件相同的目录中创建一个目录
    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
    
如何在INI文件中使用加密变量(ansible\u ssh\u pass)

你不能

这似乎是明目张胆的错误

首先,
!vault
标记和
|
ansible vault输出中的字符属于YAML语法,它们无法在INI格式清单中工作

另外,函数
ansibleVaultEncryptedUncode
,用于解密值,因此无法修改INI格式清单中的值(如单行,无标记)


您可以:

  • ,全部或部分,如果您使用目录并将目录拆分为多个文件

  • 在与库存文件相同的目录中创建一个目录
    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
    

将信息添加到问题中(不在注释中)、相关ansible代码和用于启动问题的完整命令中playbook@MiniMe你链接的文档在我看来毫无意义。它不可能与INI格式的清单一起工作。跟YAML一起去。@techraf是的,这对我来说也是荒谬的,但我认为我错了,不是关于一个有商业验证(tower?)的软件的文档,它是2.6版,我刚刚尝试过..这很有效..如果你问我的话,脏补丁…破坏了整个概念添加信息到问题中(不是在评论中),相关ansible代码和用于启动的完整命令playbook@MiniMe你链接的文档在我看来毫无意义。它不可能与INI格式的清单一起工作。跟YAML一起去。@techraf是的,这对我来说也是荒谬的,但我认为我错了,不是一个有商业验证(tower?)的软件的文档,它是2.6版,我刚刚尝试过。这很有效。如果你问我的话,脏补丁…破坏了整个概念