Ansible-vault错误与"奇长字符串"

Mxx*_*Mxx 8 ansible

我跑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
Run Code Online (Sandbox Code Playgroud)

我试图手动输入密码或复制粘贴它,但错误仍然发生.

这里发生了什么以及如何解决此错误?

Mxx*_*Mxx 14

原来这个错误是因为从Ansible 1.8.2开始,它需要对拱形文件进行非常特定的行结束编码.

当我有这种类型的文件时,它会失败:

$» file vaulted_vars.yml
vaulted_vars.yml: ASCII text, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)

但是,一旦我将其更改为此,它就开始工作了:

$» file vaulted_vars.yml
vaulted_vars.yml: ASCII text
Run Code Online (Sandbox Code Playgroud)

发生这整个问题是因为我的git客户端正在改变换行符.有关详细信息,请参阅此文章:https://help.github.com/articles/dealing-with-line-endings/