首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试消息中的Ansible when条件

调试消息中的Ansible when条件
EN

Stack Overflow用户
提问于 2020-08-17 22:03:07
回答 1查看 134关注 0票数 0

我想从一个标准输出中创建一个when条件的任务。实战手册示例如下:

代码语言:javascript
复制
---
 - hosts: localhost
   gather_facts: false
   ignore_errors: yes
   vars:
     - dev_ip: '192.168.20.192'

   tasks:
    - name: checkking ssh status
      wait_for:
        host: "{{dev_ip}}"
        port: 22
        timeout: 2
        state: present
      register: ssh_stat

    - name: checkcondition
      debug:
        msg: "{{ssh_stat}}"

消息输出为:

代码语言:javascript
复制
ok: [localhost] => {
    "msg": {
        "changed": false, 
        "elapsed": 2, 
        "failed": true, 
        "msg": "Timeout when waiting for 192.168.20.192:22"
    }
}

如果字符串"Timeout when waiting for 192.168.20.192:22“在ssh_stat.stdout中,我想创建一个when条件任务

EN

回答 1

Stack Overflow用户

发布于 2020-08-18 13:55:34

这是你需要的:

代码语言:javascript
复制
---
- name: answer stack overflow
  hosts: localhost
  gather_facts: false
  ignore_errors: yes

  tasks:
    - name: checkking ssh status
      wait_for:
        host: 192.168.1.23
        port: 22
        timeout: 2
        state: present
      register: ssh_stat
    - name: do something else when ssh_stat.msg == "Timeout when waiting for 192.168.1.23:22"
      shell: echo "I am doing it"
      when: ssh_stat.msg == "Timeout when waiting for 192.168.1.23:22"

输出:

代码语言:javascript
复制
PLAY [answer stack overflow] **************************************************************************************************************************************************************************************

TASK [checkking ssh status] ***************************************************************************************************************************************************************************************
[WARNING]: Platform linux on host localhost is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
fatal: [localhost]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "elapsed": 3, "msg": "Timeout when waiting for 192.168.1.23:22"}
...ignoring

TASK [do something else when ssh_stat.msg == "Timeout when waiting for 192.168.1.23:22"] ************************************************************************************************************************
changed: [localhost]

PLAY RECAP ********************************************************************************************************************************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=1   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63452486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档