8.5. 保护清单文件中的 secret
您可以使用 Ansible Vault 加密敏感或机密的变量。但是,加密变量名称和变量值会难以查找值的来源。要绕过这个问题,您可以使用 ansible-vault encrypt_string
单独加密变量,或者加密包含变量的文件。
流程
创建一个标记为
credentials.yml
的文件来存储加密的凭证。$ cat credentials.yml admin_password: my_long_admin_pw pg_password: my_long_pg_pw registry_password: my_long_registry_pw
使用
ansible-vault
加密credentials.yml
文件。$ ansible-vault encrypt credentials.yml New Vault password: Confirm New Vault password: Encryption successful
重要将加密的 vault 密码存储在安全的地方。
验证
credentials.yml
文件是否加密。$ cat credentials.yml $ANSIBLE_VAULT;1.1; AES256363836396535623865343163333339613833363064653364656138313534353135303764646165393765393063303065323466663330646232363065316666310a373062303133376339633831303033343135343839626136323037616366326239326530623438396136396536356433656162333133653636616639313864300a353239373433313339613465326339313035633565353464356538653631633464343835346432376638623533613666326136343332313163343639393964613265616433363430633534303935646264633034383966336232303365383763
运行
setup.sh
以安装 Ansible Automation Platform 2.4,并传递credentials.yml
和--ask-vault-pass 选项
。$ ANSIBLE_BECOME_METHOD='sudo' ANSIBLE_BECOME=True ANSIBLE_HOST_KEY_CHECKING=False ./setup.sh -e @credentials.yml -- --ask-vault-pass