我在使用 Ansible/Ansible-vault 中的内联加密字符串时遇到了问题。
我将 Ansible Vault 密码存储在一个文件中,并有一个声明它的本地配置文件:
[defaults]
vault_password_file = ./my_vault_pass
由于我已经定义了 vault_password_file,因此我使用以下命令创建加密变量:
ansible-vault encrypt_string --stdin-name 'username'
出现提示时,我输入要加密的值,然后按两次 CTRL-D,但不按回车键。然后我获取该命令的输出并用它替换变量定义。
我的 task/main.yml 文件最终像这样[删除]
---
- name: Clone the template
vmware_guest:
hostname: 1.2.3.4
username: !vault |
$ANSIBLE_VAULT;1.1;AES256
63353665383934386565306639633734366666303465306364323761323938383433643133313933
3939356663626465303465646265653731626463386261610a306361343436613030336639303533
64613337326332353933313931303537653833623863343435623730316266643636373831363937
6231643937376665620a326465343239643237366465353965376532336365346631653466623038
35636135303233623733306632333833663535646230393335303261633535353636
password: 'my_password'
validate_certs: False
name: testvm_2
template: 'template-name'
datacenter: DC1
folder: /Test
state: poweredon
wait_for_ip_address: yes
但是,由于该username:
更改是唯一的更改,我现在收到一个错误:
PLAY [localhost] *************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************
ok: [localhost]
TASK [common : Clone the template] *******************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "Unable to pass options to module, they must be JSON serializable: Object of type AnsibleVaultEncryptedUnicode is not JSON serializable"}
PLAY RECAP *******************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
答案1
我似乎找到了我自己的问题的答案:
在 Ansible 中似乎无法加密模块变量。一种解决方法是使用 Jinja 语法将变量间接到 vars.yml 文件中,该语法在提示与技巧。
IE
任务.yml
password: '{{ vault_password }}'
然后在 vars.yml 中(我使用 vars/main.yml,因为我正在使用最佳实践用于目录布局。
vault_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
30373438353463646433363433616631616434616237636432653530353330636236666332363661
6565323338643139623737646431333332383432613962640a636537306139646539303762646166
61363435643137363738656235613330663131613333656538323035666261336334383138663965
6365356130346537300a363961623261653030363433353737386666306131336631343633396262
6565