ansible-vault

Ansible 数据文件的加密/解密实用工具。

简介

usage: ansible-vault [-h] [--version] [-v]
                  {create,decrypt,edit,view,encrypt,encrypt_string,rekey}
                  ...

描述

可以加密 Ansible 用到的任何结构化数据文件。这可以包括 group_vars/host_vars/ 等仓库变量、由 include_varsvars_files 加载的变量,或在 ansible-playbook 命令行中,使用 -e @file.yaml-e @file.json 传递的变量文件。角色变量与默认值也包括在内!

由于 Ansible 任务、处理程序和其他对象都是数据,因此也可以用保险柜加密。如果咱们不想暴露正在使用的变量,咱们可以对单个任务文件,进行完全加密。

常用选项

  • --version,显示程序的版本号、配置文件位置、所配置的模组搜索路径、模组位置、可执行文件位置并退出;
  • -h, --help,打印此帮助消息并退出;
  • -v, --verbose,会导致 Ansible 打印更多调试信息。添加多个 -v 会增加调试信息的冗余度,内置插件目前最多会评估到 -vvvvv。 开始时的合理级别是 -vvv,连接的调试则可能需要 -vvvv。可以多次指定此参数;

操作

create

在编辑器中创建并打开一个文件,文件关闭时将使用所提供的保险库密文加密;

  • --encrypt-vault-id,用于加密的保险库 ID(如果提供了多个保险库 ID,则为必填项);
  • --skip-tty-check,允许在没有连接 tty 时打开编辑器;
  • --vault-id,要使用的保险库标识。该参数可指定多次;
  • --vault-password-file, --vault-pass-file,保险库口令文件;
  • -J, --ask-vault-password, --ask-vault-pass,询问保险库口令;

译注:TTY 是 teletype 或 teletypewriter 电传打字机的缩写。

decrypt

使用所提供的保险库密钥,解密提供的文件;

  • --output <OUTPUT_FILE>,加密或解密的输出文件名;使用 - 表示 stdout
  • --vault-id,要使用的保险库标识。该参数可指定多次;
  • --vault-password-file, --vault-pass-file,保险库口令文件;
  • -J, --ask-vault-password, --ask-vault-pass,询问保险库口令;

edit

在编辑器中打开并解密现有的某个保险库文件,该文件关闭后将再次加密;

  • --output <OUTPUT_FILE>,加密或解密的输出文件名;使用 - 表示 stdout
  • --vault-id,要使用的保险库标识。该参数可指定多次;
  • --vault-password-file, --vault-pass-file,保险库口令文件;
  • -J, --ask-vault-password, --ask-vault-pass,询问保险库口令;

view

使用用到所提供保险库密钥的寻呼机,打开、解密并查看某个既有的保险库文件;

  • --vault-id,要使用的保险库标识。该参数可指定多次;
  • --vault-password-file, --vault-pass-file,保险库口令文件;
  • -J, --ask-vault-password, --ask-vault-pass,询问保险库口令;

encrypt

使用所提供的保险库密钥,对提供的文件进行加密;

  • --encrypt-vault-id,用于加密的保险库 ID(如果提供了多个保险库 ID,则为必填项);
  • --output <OUTPUT_FILE>,加密或解密的输出文件名;使用 - 表示 stdout
  • --vault-id,要使用的保险库标识。该参数可指定多次;
  • --vault-password-file, --vault-pass-file,保险库口令文件;
  • -J, --ask-vault-password, --ask-vault-pass,询问保险库口令;

encrypt_string

使用所提供的保险库密钥,对提供的字符串进行加密;

  • --encrypt-vault-id,用于加密的保险库 ID(如果提供了多个保险库 ID,则为必填项);
  • --output <OUTPUT_FILE>,加密或解密的输出文件名;使用 - 表示 stdout
  • --show-input,提示输入要加密的字符串时,不隐藏输入内容;
  • --stdin-name <ENCRYPT_STRING_STDIN_NAME>,指定 stdin 的变量名称;
  • --vault-id,要使用的保险库标识。该参数可指定多次;
  • --vault-password-file, --vault-pass-file,保险库口令文件;
  • -J, --ask-vault-password, --ask-vault-pass,询问保险库口令;
  • -n, --name,指定变量名。该参数可指定多次;
  • -p, --prompt,要加密字符串的提示府。

rekey

用新的密文重新加密已加密的文件时,需要之前的密文。

  • --encrypt-vault-id,用于加密的保险库 ID(如果提供了多个保险库 ID,则为必填项);
  • --new-vault-id <NEW_VAULT_ID>,用于 rekey 的新保险库标识;
  • --new-vault-password-file <NEW_VAULT_PASSWORD_FILE>,用于 rekey 的新保险库口令文件;
  • --vault-id,要使用的保险库标识。该参数可指定多次;
  • --vault-password-file, --vault-pass-file,保险库口令文件;
  • -J, --ask-vault-password, --ask-vault-pass,询问保险库口令;

环境

可以指定以下环境变量。

  • ANSIBLE_CONFIG - 覆盖默认的 ansible 配置文件。

ansible.cfg 中的大多数选项,都有更多可用选项。

文件

  • /etc/ansible/hosts - 默认的仓库文件;
  • /etc/ansible/ansible.cfg - 若存在,就会用到的配置文件;
  • ~/.ansible.cfg - 用户配置文件,会覆盖存在的默认配置。

(End)

(End)

Last change: 2025-01-10, commit: 8449e5a

小额打赏,赞助 xfoss.com 长存......

微信 | 支付宝

若这里内容有帮助到你,请选择上述方式向 xfoss.com 捐赠。