Ansible教程

Ansible Vault

Ansible Vault

Ansible Vault 是一项允许用户加密 Ansible 项目中的值和数据结构的功能。这提供了保护成功运行 Ansible 播放所需但不应公开可见的任何秘密或敏感数据的能力,例如私钥或密码。当提供密钥时,Ansible 会在运行时自动解密保险库加密的内容。
要将这些秘密与常规 Ansible 数据集成,Ansible 和 Ansible-playbook 命令分别用于执行临时任务和结构化剧本, 支持在运行时解密 Vault 加密的内容。
Ansible Vault 以文件级粒度实现;这意味着文件要么完全加密,要么未加密。它使用 AES256 算法提供以用户提供的密码为密钥的对称加密。
这意味着使用相同的密码来加密和解密内容,从可用性的角度来看这很有帮助。 Ansible 可以识别和解密它在执行任务或剧本时找到的任何 Vault 加密文件。
尽管有人提议改变这一点,但在撰写本文时,用户只能输入一个密码到 Ansible。这意味着涉及的每个加密文件都必须共享一个密码。

使用 Ansible Vault

Ansible Vault 的简单用途是加密变量文件。它可以加密任何 YAML 文件,但最常见的加密文件是:
角色的默认值/main.yml 文件 角色的 vars/main.yml 文件 group_vars 目录中的文件 用于存储变量的任何其他文件

加密现有文件

您可以使用 ansible Vault 加密常规明文变量文件,并定义稍后解密所需的密码。
#encrypt a role's defaults/main.yml file
ansible-vault encrypt defaults/main.yml
>New vault password: 
>Confirm new vault password:
>Encryption successful 
ansible-vault 命令会提示您输入两次密码。之后,文件将被加密。

创建加密文件

要创建加密数据文件,使用 ansible-vault create 命令,并通过文件名。
$ansible-vault create <file name>
系统将提示您创建密码,然后通过重新输入进行确认。
一旦您的密码被确认,将创建一个新文件并打开一个编辑窗口。默认情况下,Ansible Vault 的编辑器是 VI。您可以添加数据、保存并退出。

编辑加密文件

如果要编辑加密文件,可以使用 ansible 进行编辑-vault 编辑命令。此命令会将文件解密为临时文件,并允许您编辑该文件。
$ansible-vault edit <file name>
系统将提示您输入保险库密码。解密后的文件将在 VI 编辑器中打开,然后您可以进行所需的更改。保存更改并删除临时文件。

重新加密加密文件

如果您想更改 Vault 加密文件的 Vault 密码,可以使用 rekey 命令来完成。
$ansible-vault rekey <file1> <file2> <file3>
上述命令可以一次对多个数据文件进行rekey,并询问原密码和新密码。

加密未加密的文件

如果您有要加密的现有文件,请使用 ansible-vault encrypt 命令。此命令可以一次对多个文件进行操作。
$ansible-vault encrypt <file1> <file2> <file3>

解密加密文件

如果您有不想再加密的现有文件,您可以通过运行 ansible-vault 解密命令永久解密它们。此命令会将它们未加密地保存到磁盘。
$ansible-vault decrypt <file1> <file2> <file3>

查看加密文件

如果你想查看加密文件的内容而不编辑它,那么你可以使用ansible-vault查看命令。
$ansible-vault view <file1> <file2> <file3>
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4