Ошибка ansible-vault - «Ошибка unhexlify формата Vault: строка нечетной длины» - PullRequest
0 голосов
/ 26 сентября 2019

Я использую ansible-napalm и пытаюсь написать простую книгу для извлечения фактов с сетевых устройств.Я хочу зашифровать пароли с помощью ansible-vault, однако независимо от того, что я пытаюсь, я получаю сообщение об ошибке: Ошибка unhexlify формата хранилища: Строка нечетной длины

Сначала я пытался это сделать в bash в подсистеме Windows дляLinux и я думали, что это может быть проблемой, поэтому я воссоздал все на Centos VM и все еще столкнулся с той же проблемой.

Я пытался использовать команду encrypt-string для встраивания зашифрованного pw непосредственно в playbook.Я также попытался зашифровать файл и вызвать переменную.Оба метода выдают одну и ту же ошибку.

Я обнаружил эту проблему: Ошибки Ansible-хранилища с "строкой нечетной длины" И я подумал, что проблема связана с ограничителями строки 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 голосов
/ 26 сентября 2019

Мне удалось это отсортировать, взяв предложения из этой темы: Встроенная зашифрованная переменная, а не JSON-сериализуемый Сначала спасибо за ответ, он поставил меня на правильный путь с получением этой сортировки.

...