Нужно сначала s sh и ping с помощью ansible -playbook - PullRequest
0 голосов
/ 28 мая 2020

Предположим, у меня есть 100 хостов, и я хочу выполнить соединение sh, при котором в результате должно быть напечатано «ДА» или «НЕТ»

Затем выполните команду ping, которая должна вывести «ДА» или «НЕТ»

  1. если s sh make, затем напечатайте Y другое Нет
  2. если s sh сделайте 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  

1 Ответ

0 голосов
/ 30 мая 2020

вот возможный способ его достижения.

- 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
...