如何在become用户或密码错误时让ansible-playbook直接返回失败?
Ansible become权限提升失败自动终止配置方案
版本适配说明
首先确认你使用的Ansible版本,2.12及以上稳定版已修复权限提升结果误报为Escalation succeeded的原生bug,低版本可搭配以下配置实现相同效果。
全局配置(写入ansible.cfg)
在配置文件中添加以下字段即可全局生效:
[defaults] # 权限提升失败直接终止,不继续执行 any_errors_fatal = True # 权限提升重试次数,设置为1避免重试等待 become_attempts = 1 # 连接超时时间,单位秒,避免进程挂起 timeout = 10 [privilege_escalation] # 缺失become密码或密码错误时直接返回失败 become_fail_on_missing_password = True
单Playbook临时配置
如果不需要全局生效,可以直接在Playbook头部添加配置,仅对当前任务生效:
- name: 示例Playbook hosts: all any_errors_fatal: true become: true become_attempts: 1 tasks: # 此处编写你的任务逻辑
命令行临时参数
单次执行时也可以直接追加参数实现相同效果:
ansible-playbook your_playbook.yml --become-fail-on-missing-password -e "any_errors_fatal=True become_attempts=1"
内容的提问来源于stack exchange,提问作者hiroga
相关产品推荐
相关产品推荐

