自动化运维-ansible中的管理机密

发布于:2025-09-02 ⋅ 阅读:(12) ⋅ 点赞:(0)

自动化运维-ansible中的管理机密

一、Ansible Vault

在自动化配置管理中,直接以纯文本形式存储密码、API密钥、证书等敏感信息是极大的安全漏洞。Ansible Vault 正是为了解决这一问题而设计的核心功能

Ansible Vault 是 Ansible 的一个核心功能,它允许用户加密任何由 Ansible 使用的结构化数据文件(通常是 YAML 格式)。这可能包括清单变量、playbook中含有的变量文件、在执行playbook时作为参数传递的变量文件,或者ansible角色中定义的变量。

二、如何使用 ansible-vault 命令行工具?

ansible-vault 是创建、编辑、加密、解密和查看文件的主要工具,是一种命令行工具

命令 用途 示例
create 创建新的加密文件,默认使用vi编辑 ansible-vault create test.yml
view 查看一个加密文件的内容,但不打开编辑器。 ansible-vault view test.yml
edit 编辑一个已加密的文件。会解密到临时文件,编辑保存后重新加密。 ansible-vault edit test.yml
encrypt 加密一个现有的文件。 ansible-vault encrypt test.yml
decrypt 解密现有的文件 ansible-vault decrypt test.yml --output=a-secret.yml
rekey 更改加密文件的密码或密钥文件。 ansible-vault rekey test.yml
-ask-vault-pass 使用加密后的文件 ansible-playbook test.yml --ask-vault-pass

运行任何 ansible-vault 命令或运行使用加密变量的 playbook 时,都需要提供解密密码

可以将将密码单独存储在一个权限严格控制的纯文本文件中(如 .vault_pass.txt)

使用 --vault-password-file--vault-id 参数指定该文件来适用于自动化

三、使用示例

  1. 创建加密文件

    加密后,直接使用会报错

    [student@master ansible] ansible-vault create test.yml
    New Vault password: 
    Confirm New Vault password: 
    
    [student@master ansible] ansible-playbook test.yml 
    

    在这里插入图片描述

  2. 查看加密文件

    [student@master ansible] ansible-vault view test.yml
    Vault password:
    

    在这里插入图片描述

  3. 编辑加密文件

    [student@master ansible] ansible-vault edit test.yml 
    Vault password: 
    

    在这里插入图片描述

  4. 加密现有文件

    [student@master ansible] ansible-vault encrypt test1.yml 
    New Vault password: 
    Confirm New Vault password: 
    

    在这里插入图片描述

  5. 解密现有文件

    [student@master ansible] ansible-vault decrypt test1.yml 
    Vault password: 
    Decryption successful
    

    在这里插入图片描述

  6. 更改加密文件密码

    [student@master ansible]$ ansible-vault rekey test.yml 
    Vault password: 
    New Vault password: 
    Confirm New Vault password: 
    Rekey successful
    

    在这里插入图片描述

  7. 使用加密后的文件

    [student@master ansible] ansible-playbook test.yml --ask-vault-pass
    Vault password: 
    

    在这里插入图片描述

  8. 使用密码本创建并使用加密文件

    [student@master ansible] vim .vault_pass.txt
    [student@master ansible] chmod 600 .vault_pass.txt
    [student@master ansible] ansible-vault create test2.yml --vault-id .vault_pass.txt
    [student@master ansible] ansible-playbook test2.yml --vault-id .vault_pass.txt
    

    在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到