为什么Ansible前置任务总是跳过?
我正在尝试开发一个playbook,它可以让root用户随时通过运行playbook轻松重置密码。但它总是跳过进行验证的预任务为什么Ansible前置任务总是跳过?,ansible,Ansible,我正在尝试开发一个playbook,它可以让root用户随时通过运行playbook轻松重置密码。但它总是跳过进行验证的预任务 --- - hosts: localhost remote_user: root become: yes become_method: sudo vars_prompt: - name: "root_password" prompt: "Enter your new root password" private: n
---
- hosts: localhost
remote_user: root
become: yes
become_method: sudo
vars_prompt:
- name: "root_password"
prompt: "Enter your new root password"
private: no
when: root_password is not defined
pre_tasks:
- name: fail the play if the user missed out root_password
fail: msg="root password should not be empty"
when: root_password is not defined
tasks:
- name: Change root password
user: name=root update_password=always password={{ root_password }}
该任务被设置为在未定义root\u密码时运行,并且无论您输入什么值,都可以在vars\u提示符部分中定义它。因此,该任务被跳过 根据消息判断,当消息为空时,您希望失败,因此条件应为:
when: root_password == ""
谢谢@techraf你一直都是救世主!但我发现它从来不会重置password@user_dev如果您在不同于macOS的系统上运行,则需要首先加密密码。看见