如果stdout result equal失败,如何使用Ansible重新启动服务器



我为jboss编写任务,但如果stdout result equal失败,我不知道如何重新启动服务器。

我的任务:

- name: Server
become: true
check_deployments: 
server: 111.111.111.111:8888
command: /deployment=*:read-attribute(name=status)
cli_path: /testusers/wildfly/bin
user: admin
password: admin
register: command
- name: wf_debug  
debug:
msg: "{{ command.stdout_lines}}"

输出:

TASK [check_wf_status : wf_debug] ******************************************************************************************************************************************
ok: [111.111.111.111] => {
"msg": [
"{",
"    "outcome" => "success",",
"    "result" => [",
"        {",
"            "address" => [("deployment" => "test-module1")],",
"            "outcome" => "success",",
"            "result" => "OK"",
"        },",
"        {",
"            "address" => [("deployment" => "test-module2")],",
"            "outcome" => "success",",
"            "result" => "FAILED"",
"        },",
"    ]",
"}"
]
}

如果结果=失败,如何使用Ansible重新启动服务器?

如果result=FAILED,如何使用Ansible重新启动服务器?

这应该可以工作,对于文档:

- name: Unconditionally reboot the machine with all defaults, when the check_deployments task has failed
reboot:
when: "'FAILED' in command.stdout_lines"

请注意,您正在注册";命令";。这也是一个易解释的模块,可能会引起混淆。最好用另一个名称注册,例如register: check_deploy

最新更新