Я пытаюсь выполнить приведенную ниже книгу, которую написал, но не удается из-за некоторых синтаксических ошибок.
Я пробовал несколько вещей из онлайн-документа, но пока безуспешно. Эта переменная предназначена для генерации случайного пароля, который будет использоваться пользовательским модулем в роли.
- 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) }}"}
Да, это простая опечатка.
salt: "{{ lookup('password', '/dev/null length=10' chars=ascii_letters) }}"
Вы можете видеть, что ошибка жаловалась на буквальный текст chars
появляется неожиданно. Это потому, что вы закрыли цитату раньше, когда она должна была содержать все параметры, то есть:
salt: "{{ lookup('password', '/dev/null length=10 chars=ascii_letters') }}"