0

我正在使用 ansible-napalm 并尝试编写一个简单的剧本来从网络设备中提取事实。我想用 ansible-vault 加密密码,但是无论我尝试什么,我都会收到错误消息:Vault format unhexlify error: Odd-length string

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

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

我发现了这个问题: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
4

1 回答 1

0

我设法通过从这个线程中获取建议来进行排序:内联加密变量不可 JSON 序列化 首先感谢您的回复,它让我走上了正确的道路来进行排序。

于 2019-09-26T20:33:39.760 回答