Ansible Playbook и проблема синтаксиса с переменными
Я пытаюсь выполнить нижеприведенную пьесу, которую написал, но она не работает из-за некоторых синтаксических ошибок.
Я попробовал несколько вещей из онлайн-документа, но пока безуспешно. Целью этих переменных является создание случайного пароля, который будет использоваться пользовательским модулем в роли.
- hosts: all
remote_user: root
become : no
vars:
salt: "{{ lookup('password', '/dev/null length=10' chars=ascii_letters) }}"
pasw: "{{ lookup('password', '/dev/null length=15') }}"
hash: "{{ pasw }} | password_hash('sha512', {{ salt }}) "
roles:
- ansiuser
ошибка из-за выполнения ansible-playbook (происходит сбой при выполнении роли, поэтому я предполагаю, что мои переменные не выполняют то, что я ищу: генерирование строк)
TASK [ansiuser : Set the password fact for this host] ******************************************************************************************************************
fatal: [192.168.11.100]: FAILED! => {"msg": "An unhandled exception occurred while templating '{{ pasw }} | password_hash('sha512', {{ salt }}) '.
Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while templating '{{ lookup('password', '/dev/null length=10' chars=ascii_letters) }}'.
Error was a <class 'ansible.errors.AnsibleError'>, original message: template error while templating string: expected token ',', got 'chars'. String: {{ lookup('password', '/dev/null length=10' chars=ascii_letters) }}"}
1 ответ
Решение
Да, это простая опечатка.
salt: "{{ lookup('password', '/dev/null length=10' chars=ascii_letters) }}"
Вы можете видеть, что ошибка жаловалась на буквальный текст chars
появляется неожиданно. Это потому, что вы закрыли кавычку раньше, где она должна была содержать все опции, т.е.
salt: "{{ lookup('password', '/dev/null length=10 chars=ascii_letters') }}"