一 ansible-valut
帮助文档
[devops@master anisble]$ ansible-vault
Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
encryption/decryption utility for Ansible data files
Options:
--ask-vault-pass ask for vault password
--new-vault-id=NEW_VAULT_ID
the new vault identity to use for rekey
--new-vault-password-file=NEW_VAULT_PASSWORD_FILE # 以密码文件的形式来解密的认证方式(类似SSH),非交互式(里面写入我们的密码)
new vault password file for rekey
--vault-id=VAULT_IDS the vault identity to use # 官方2.4版本推荐
--vault-password-file=VAULT_PASSWORD_FILES
vault password file
create # 创建新文件,并且直接对其加密
decrypt(解密)和encrypt(加密)
rekey # 修改加密文件的密码
view # 查看加密的文件,需要输入密码
edit # 编辑ansible-valut加密过的文件
encrypt_string # 只加密某些隐秘的字符串
二 应用场景
Ansible帮我们完全自动地维护我们的服务,在运行某些任务的时候,不可避免的接触到一些密码或其他敏感的数据,而这些数据有可能是管理员密码、SSH私钥或远程主机的认证信息
需求1:永久加密
ansible-vault encrypt createuser.yml
# 说明:命令行参数无法补全
需求2:修改加密文件的密码(已知密码)
[devops@master anisble]$ ansible-vault rekey createuser.yml
Vault password:
New Vault password:
Confirm New Vault password:
Rekey successful
需求3:运行加密的文件
ansible-playbook createuser.yml # 会出现错误
[devops@master anisble]$ ansible-playbook --ask-vault-pass createuser.yml
Vault password:
# 注意:加密--->最好是不同的文件設置一样的,,如果里面引入多个加密,此文件參數只會询问一次!
需求4:查看加密文件
[devops@master anisble]$ ansible-vault view createuser.yml
Vault password:
需求5:编辑并查看文件
[devops@master anisble]$ ansible-vault edit createuser.yml
Vault password:
# 说明:会在/tmp/目录下生成临时文件!
后续:Ansible Tower 和Jenkins结合来运行Playbook!