我为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
。