1

我真的很喜欢ansible-vault在命令行上轻松地加密/解密文件。例如,如果我有一个~/fizzbuzz.foo使用以下内容调用的纯文本文件:

bupo

我可以像这样使用这个工具:

ansible-vault encrypt ~/fizzbuzz.foo
New Vault password: 123
Confirm New Vault password: 123

繁荣——加密!当我vi ~/fizzbuzz.foo现在:

$ANSIBLE_VAULT;1.1;AES256
36663138613666623730653164333138343133383233313562363733346461663334393932393461
6535316532366130316237633633663565663366323162660a666630613738363035343663353132
33383530653235393431633231313765656135626538353163323366363039633836613265383332
3762666261326466370a643164393166346634343636346634383039356665646531353062303765
3734

我想在 bash 脚本中使用它,我将加密/解密密码作为脚本参数传入:

#!/bin/bash

# do some stuff

ansible-vault -i "bar" encrypt ~/fizzbuzz.foo

# do some more stuff

但是,我看不到任何类似于-i. 我能找到的最好的方法是使用 env 文件来存储实用程序的密码,但我玩过但找不到类似的行为。ansible-vaultansible-playbookansible-vault

有任何想法吗?

4

1 回答 1

3

您需要先创建保险库密码文件,方法如下:

openssl rand -base64 512 |xargs > vaultkeyfile

我正在本地目录中创建 Vault 文件,但您可能希望将其放置到另一个目录中,例如 ~/.ansible_vault/。

然后创建/加密/解密文件,你使用:

对于新文件:

ansible-vault create testfile.txt --vault-password-file=vaultkeyfile

用于加密现有文件:

ansible-vault encrypt testfile.txt --vault-password-file=vaultkeyfile

用于解密:

ansible-vault decrypt testfile.txt --vault-password-file=vaultkeyfile

执行上述操作时,您会注意到它不要求输入密码。

于 2018-04-10T01:59:54.877 回答