bsd*_*boo 1 python linux bash ansible ansible-2.x
当我在 red hat 7 发行版上的 ansible 2.9 版本上运行命令时 -
$ ansible-vault encrypt_string 'l3@TH!hFymu4b91!x[W!u[EL'
New Vault password: [ERROR]: User interrupted execution
$ ansible-vault encrypt_string '-w2kBT>ur=X{U`!43o&m'
usage: ansible-vault [-h] [--version] [-v]
{create,decrypt,edit,view,encrypt,encrypt_string,rekey}
...
ansible-vault: error: unrecognized arguments: -w2kBT>ur=X{U`!43o&m
Run Code Online (Sandbox Code Playgroud)
第一个命令成功,而第二个命令失败。是否与特殊字符有关。我的程序会自动生成密码,所以一次越狱是没有用的!
注意:如果您尝试使用双引号传递带波形符的字符串,BaSh shell 也会抛出一些错误。但对于单引号,它不会抱怨。
第二个命令失败,因为 的参数encrypt_string看起来像命令行选项(因为它以连字符开头-)。与许多命令行工具一样,您可以ansible-vault使用标记停止查找选项参数--,如下所示:
ansible-vault encrypt_string -- '-w2kBT>ur=X{U`!43o&m'
Run Code Online (Sandbox Code Playgroud)
整个过程是这样的:
$ ansible-vault encrypt_string -- '-w2kBT>ur=X{U`!43o&m'
New Vault password:
Confirm New Vault password:
!vault |
$ANSIBLE_VAULT;1.1;AES256
38376339313764343364653131333536613738373863643230633761346331663837643664623237
6138386635363661663562386430323061323831326534660a613837383263626336656332373464
32306333303262653733626233383532373133663335343865373834653764313032333133663432
6538306566373566610a353936663134326335373934643638333836643262363563333865366165
63653736653733356261616431646538623736323139656531643137643234363237
Encryption successful
Run Code Online (Sandbox Code Playgroud)