我在跑步Ansible 1.8.2
。我在另一个系统上创建了一个保管文件。在该系统上,它可以正常工作。但是,当我在本地系统上运行它时,出现以下错误:
$» ansible-vault --debug view vars/vaulted_vars.yml
Vault password:
Traceback (most recent call last):
File "/usr/bin/ansible-vault", line 225, in main
fn(args, options, parser)
File "/usr/bin/ansible-vault", line 172, in execute_view
this_editor.view_file()
File "/usr/lib/python2.7/site-packages/ansible/utils/vault.py", line 280, in view_file
dec_data = this_vault.decrypt(tmpdata)
File "/usr/lib/python2.7/site-packages/ansible/utils/vault.py", line 136, in decrypt
data = this_cipher.decrypt(data, self.password)
File "/usr/lib/python2.7/site-packages/ansible/utils/vault.py", line 545, in decrypt
data = unhexlify(data)
TypeError: Odd-length string
ERROR: Odd-length string
我试图手动输入密码或将其复制粘贴,但是仍然发生错误。
这是怎么回事,以及如何解决此错误?
事实证明,此错误是因为从Ansible 1.8.2开始,它需要对已存储文件使用非常特定的行尾编码。
当我拥有这种类型的文件时,它将失败:
$» file vaulted_vars.yml
vaulted_vars.yml: ASCII text, with CRLF line terminators
但是,一旦将其更改为此,它便开始工作:
$» file vaulted_vars.yml
vaulted_vars.yml: ASCII text
发生整个问题是因为我的git客户端正在更改换行符。有关详细信息,请参见本文:https : //help.github.com/articles/dealing-with-line-endings/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句