代码之家  ›  专栏  ›  技术社区  ›  MiniMe

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

  •  0
  • MiniMe  · 技术社区  · 6 年前

    我在看这一页 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:预期 key=value,得到:$ANSIBLE_VAULT;1.2;AES256;my_user

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

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   techraf    6 年前

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

    你不能。

    这个 documentation page you linked to ,似乎是大错特错。

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

    而且,这个函数 AnsibleVaultEncryptedUnicode ,从而解密该值, is called only from the YAML parser ,因此无法修改INI格式inventory中的值(如单行、无标记)。


    您可以:

    • 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