Ansible Playbook 和变量的语法问题

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

相关内容