Назад | Перейти на главную страницу

Ansible - сервер / приложение инициировали перезагрузку

Я хочу использовать Ansible для обновления программного обеспечения удаленного сервера (на основе BSD unix). В конце обновления система автоматически перезагружается (эта перезагрузка не инициируется Ansible). Я хочу убедиться, что ansible будет ждать, пока сервер вернется, а затем продолжит выполнение других задач. Скрипт отлично работает для обновления, но не работает при перезагрузке (жаловался на сбой общего соединения ssh).

script1:

- hosts: remote_server 
  remote_user: ansible
  become: yes
  become_method: sudo
  connection: ssh
  gather_facts: yes
  vars:
     ansible_ssh_host: 192.168.1.131
     ansible_ssh_port: 22 
  tasks:
  - name: Install SW version xxx
    ....
    ....

  - name: waiting for server to reboot
    wait_for: host="{{ ansible_ssh_host | default(inventory_hostname) }}" port={{ ansible_ssh_port | default(22) }} search_regex=OpenSSH delay=60 timeout=300 
    connection: local
    sudo: false  

  - shell: uptime
    register: output
  - debug: msg=" {{ output.stdout }} "

Любая идея, что мне здесь не хватает? Спасибо...

Так что во время этой перезагрузки обычно происходит сбой. Вы используете такую ​​метазадачу, чтобы игнорировать сбой

- meta: clear_host_errors

После этого вы можете использовать waitfor, а затем продолжить любые задачи.

- name: Wait for system to become reachable
  wait_for_connection:
    timeout: 300