Назад | Перейти на главную страницу

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)  }}"}

Да, это простая опечатка.

      salt: "{{ lookup('password', '/dev/null length=10' chars=ascii_letters) }}"

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

      salt: "{{ lookup('password', '/dev/null length=10 chars=ascii_letters') }}"