Fork me on GitHub
随笔 - 234  文章 - 49 评论 - 0 阅读 - 13万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

vault加密模块

Ansible自带的Vault加密功能,通过AES-256加密算法,极为安全,Vault可以将经过加密的密码和敏感数据同Playbook存储在一起

ansible-vault 简单使用

ansible-vault具有简单加解密功能,且对于同一密码同一文件加密后,文件都不相同
解密后,内容不变,内容可以还原,有点神奇

  • edit: 用于编辑ansible-vault加密过的文件
  • rekey: 重新修改已被加密文件的密码
  • create: 创建一个新文件,并直接对其进行加密
  • view: 查看经过加密的文件
  • decrypt: 解密文件

创建密码文件mysql_passwd.yml,内容如下

---
user: root
password: root

encrypt 加密文件

ansible-vault encrypt mysql_passwd.yml 

New Vault password: *****
Confirm New Vault password: *****
Encryption successful

查看加密文件

cat mysql_passwd.yml
$ANSIBLE_VAULT;1.1;AES256
34623561613433333733393964323363633439626237376265643434633733316365373563323266
3836336565343932636237633634666633623631303366620a623865303763363561363830376634
30343435306638616532313833653363663339633239393465363138386234366330613936343230
3631666364636664300a383634336237623433393632666463366261633462303436363234383264
36643639613461616363376538353466663534366663333336323137396564336462

通过密码查看文件,此时文件还是加密的

ansible-vault view mysql_passwd.yml 
Vault password: *****
---
user: root
password: root

解密文件

ansible-vault decrypt mysql_passwd.yml 
Vault password: *****
Decryption successful

cat mysql_passwd.yml
---
user: root
password: root

与playbook一起使用

mysql_passwd.yml已经又加密过了
vault01.yaml文件

---
- hosts: ubuntu
  vars_files:
    mysql_passwd.yml
  tasks:
    - name: debug passwd
      debug:
        msg:
          - "{{ user }}"
          - "{{ password }}"

执行代码,这时还需要通过--ask-vault-pass提供密码,对自动化运维不友好,后面还可以通过文件的方式指定密码

ansible-playbook vault01.yaml --ask-vault-pass
Vault password: ***** 

PLAY [ubuntu] *******************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************
ok: [107.151.199.209]

TASK [debug passwd] *************************************************************************************************************************************
ok: [107.151.199.209] => {
    "msg": [
        "root",
        "root"
    ]
}

PLAY RECAP **********************************************************************************************************************************************
107.151.199.209            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

将加密密码写入到vault_pass.txt

要将密码文件权限设置为600

12345

也可以通过--vault-password-file vault_pass.txt指定密码

ansible-playbook vault01.yaml --vault-password-file ./vault_pass.txt 

PLAY [ubuntu] *******************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************
ok: [107.151.199.209]

TASK [debug passwd] *************************************************************************************************************************************
ok: [107.151.199.209] => {
    "msg": [
        "root",
        "root"
    ]
}

PLAY RECAP **********************************************************************************************************************************************
107.151.199.209            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

下官方文档中参考更多的选项用法及详细案例
官方链接

posted on   anyux  阅读(41)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示