ansible-vault错误-“保管箱格式取消hexlify错误:奇数长度的字符串”

时间:2019-09-26 15:14:01

标签: automation ansible ansible-vault

我正在使用ansible-napalm并试图编写一个简单的剧本来从网络设备中提取事实。 我想使用ansible-vault加密密码,但是无论尝试什么,我都会不断收到错误消息:     保管箱格式无法显示错误:奇数长度的字符串

最初,我是在Windows子系统下的Linux中以bash进行尝试的,我认为这可能是问题所在,因此我在centos VM上重新创建了所有内容,但仍然遇到相同的问题。

我尝试使用加密字符串将加密后的pw直接嵌入到剧本中。 我也尝试过加密文件并调用变量。两种方法都给出相同的错误。

我发现了这个问题:Ansible-vault errors with "Odd-length string" 而且我认为问题与CRLF行终止符有关,因此我对它进行了排序,并确保所有文件均为ASCII文本,但这仍然给出相同的错误。

下面是我的代码,由于我正在拔头发,所以任何帮助将不胜感激!

---

- name: napalm_facts
  hosts: all
  connection: local
  gather_facts: no

  tasks:
    - name: get facts from device
      napalm_get_facts:
        hostname: "{{ ansible_host }}"
        username:  'admin'
        password: "{{ napalm_password }}"
        dev_os: 'ios'
      register: result

    - name: print results
      debug: msg="{{ result }}"

我尝试了以下方法,以供参考。

ansible-vault encrypt vars/vaultpw.yml
ansible-vault encrypt_string password123 --ask-vault-pass

1 个答案:

答案 0 :(得分:0)

我设法通过从以下线程中获取建议来对此进行排序:Inline encrypted variable not JSON serializable 首先感谢您的答复,这使我能够正确地进行排序。