需要先用ansible-playbook进行ssh和ping。

问题描述 投票:0回答:1

假设我有100台主机,我想执行一个ssh连接,结果应该打印 "YES "或 "NO"

然后执行ping,应该打印 "YES "或 "NO"

  1. if ssh make then print Y other No
  2. 如果ssh使Y,则尝试执行Ping并打印Y和正常运行时间。
  3. 如果ping不到就打印N

比如说

SL.No. Server       Ping SSH     Uptime(hrs)           
1      Linux-test     y   y      2020-26-05 17:17:44  
2      linux-test1    n   -      -                      
3      linux-test3    y   y      2020-26-05 17:17:44  
linux ssh ansible redhat ping
1个回答
0
投票

这里有一个可能的方法来实现它。

- hosts: all
  gather_facts: False
  ignore_errors: True
  ignore_unreachable: True
  tasks:
  - name: ping server
    ping:
    register: ping_status

  - debug:
      msg: "{{ inventory_hostname }} - YES"
    with_items:
      - "{{ inventory_hostname }}"
    when: ping_status.ping is defined

  - name: get uptime
    shell: uptime > /root/uptime.out

  - name: read uptime
    command: cat /root/uptime.out
    register: uptime_server

  - debug:
      msg: "{{ inventory_hostname }} - YES - {{ uptime_server.stdout }}"
    with_items:
      - "{{ inventory_hostname }}"
    when: ping_status.ping is defined

  - debug:
      msg: "{{ inventory_hostname }} - NO"
    with_items:
      - "{{ inventory_hostname }}"
    when: ping_status.ping is undefined
© www.soinside.com 2019 - 2024. All rights reserved.