Рейтинг:1

Встроенная зашифрованная строка Ansible-vault выдает ошибку

флаг cn

У меня проблемы со встроенными зашифрованными строками в Ansible/Ansible-vault.

Я храню пароль Ansible Vault в файле и имею локальный файл конфигурации, который объявляет его:

[по умолчанию]
файл_пароля_хранилища = ./мой_пароль_хранилища

Поскольку у меня уже есть определенный файл vault_password_file, я создаю свою зашифрованную переменную с помощью следующей команды:

ansible-vault encrypt_string --stdin-name 'имя пользователя'

При появлении запроса я ввожу значение, которое хочу зашифровать, и дважды нажимаю CTRL-D, не нажимая клавишу ввода. Затем я беру вывод этой команды и заменяю им определение переменной.

Мой файл tasks/main.yml заканчивается вот так [отредактировано]

---
- имя: Клонировать шаблон
  vmware_guest:
    имя хоста: 1.2.3.4
    имя пользователя: !хранилище |
          $ANSIBLE_VAULT;1.1;AES256
          63353665383934386565306639633734366666303465306364323761323938383433643133313933
          3939356663626465303465646265653731626463386261610a306361343436613030336639303533
          64613337326332353933313931303537653833623863343435623730316266643636373831363937
          6231643937376665620a326465343239643237366465353965376532336365346631653466623038
          35636135303233623733306632333833663535646230393335303261633535353636
    пароль: 'мой_пароль'
    validate_certs: Ложь
    имя: testvm_2
    шаблон: 'имя-шаблона'
    центр обработки данных: DC1
    папка: /Тест
    состояние: включено
    ожидание_для_ip_адреса: да

Однако с имя пользователя: изменение является единственным изменением, теперь я получаю сообщение об ошибке:

ИГРАТЬ [localhost] **************************************************** ******************************************************* *************

ЗАДАНИЕ [Сбор фактов] *************************************************** ******************************************************* ********
хорошо: [локальный хост]

ЗАДАЧА [общая: Клонировать шаблон] ********************************************** ****************************************************
фатальный: [localhost]: FAILED! => {"msg": "Невозможно передать параметры модулю, они должны быть сериализуемыми в формате JSON: объект типа AnsibleVaultEncryptedUnicode не является сериализуемым в формате JSON"}

ОБЗОР ИГРЫ ******************************************************* ******************************************************* *****************
localhost: ok=1 изменено=0 недостижимо=0 не удалось=1 пропущено=0 спасено=0 проигнорировано=0   
Рейтинг:0
флаг cn

Кажется, я нашел решение своего вопроса:

В Ansible не представляется возможным шифровать переменные модуля. Обходной путь — указать переменную в файле vars.yml, используя синтаксис Jinja, описанный в Советы и хитрости.

то есть

Задачи.yml

    пароль: '{{ vault_password }}'

А затем в vars.yml (я использовал vars/main.yml, так как использую Лучшие практики для макета каталога.

vault_password: !хранилище |
          $ANSIBLE_VAULT;1.1;AES256
          30373438353463646433363433616631616434616237636432653530353330636236666332363661
          6565323338643139623737646431333332383432613962640a636537306139646539303762646166
          61363435643137363738656235613330663131613333656538323035666261336334383138663965
          6365356130346537300a363961623261653030363433353737386666306131336631343633396262
          6565
Zeitounator avatar
флаг fr
«Кажется, в Ansible невозможно зашифровать переменные модуля»
MattB avatar
флаг cn
@Zeitounator Интересно, я закрывал свою проблему с ответом после чата на канале #ansible Freenode. Поскольку обходной путь оказался эффективным, я не стал заниматься этим дальше, но буду иметь в виду, спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.