我非常喜欢在命令行上使用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)的参数/ ansible-vault模式。我能找到的最好的是一种使用env文件为ansible-playbook实用程序存储密码的方法,但我使用了ansible-vault,但找不到类似的行为。
有什么想法吗?
发布于 2018-04-10 01:59:54
您需要首先创建保险库密码文件,下面是如何:
openssl rand -base64 512 |xargs > vaultkeyfile
我正在本地目录下创建保险库文件,但您可能希望将其放置到另一个目录中,例如~/..ansible_ for /。
然后,要创建/加密/解密文件,可以使用:
对于新文件:
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
在执行上述操作时,您会注意到它不需要密码。
https://stackoverflow.com/questions/49743856
复制相似问题