GNU/Linux >> Znalost Linux >  >> Linux

Jak automatizovat restartování systému pomocí modulu Ansible reboot

V tomto článku se zabývám tím, jak používat Ansible k efektivnímu restartování počítače se systémem Linux nebo Windows. Ansible reboot modul byl představen v Ansible 2.7 (2018) a nyní je tento modul součástí ansible-base a je součástí všech instalací Ansible. Všimněte si, prosím, reboot modul musí být spuštěn z uzlu ovladače Ansible a nebude fungovat s uzly, jako je localhost.

Proč potřebujete restartovat spravovaný uzel?

Restartování operačního systému Linux je velmi vzácné. Většinu času můžeme dosáhnout požadovaného výsledku restartem nebo opětovným načtením jednotlivých služeb po změnách konfigurace nebo aktualizacích balíčků. Ale v některých případech, jako je oprava nebo upgrade systému, je k dokončení celého pracovního postupu a efektu vyžadována operace restartu. Pokud pro správu používáte Ansible, musíte zahrnout tuto úlohu restartování, abyste dosáhli plné automatizace.

Automatizované restarty jsou v Ansible velmi snadné, protože máte několik metod, jak dosáhnout úkolu restartování systému.

Předpoklady

Ujistěte se, že remote_user— který používáte pro Ansible k přihlášení do spravovaného uzlu – má sudo přístup a oprávnění k restartování uzlu.

Stará dobrá metoda – Reboot command and wait

V minulosti jsme používali k restartování spravovaného uzlu pomocí Ansible metodou dvou kroků. (Existuje mnoho způsobů, ale tato metoda je běžná):

  1. Spustíme příkaz pro restart pomocí shell modul.
  2. Použijeme wait_for_connection modul pro kontrolu uzlu, který se po restartu vrací zpět online.

Dovolte mi ukázat vám příklad.

Prvním úkolem je jednoduchý shell modul restartujte počítač a Ansible se odpojí od uzlu. V další úloze Ansible počká, až se uzel vrátí do režimu online, ale s časovým limitem 300 sekund nebo pěti minut.

- name: Reboot the machine
  shell: "sleep 5 && reboot"

  async: 1
  poll: 0

- name: Wait for the machine to come back online
  wait_for_connection:
    connect_timeout: 60
    sleep: 5
    delay: 5
    timeout: 300

Docela jednoduché, že? Počkejte, existuje lepší a efektivnější metoda s Ansible reboot modulu a cíle můžete dosáhnout jediným úkolem.

[ Mohlo by se vám také líbit čtení: Představujeme nový Ansible Automation Hub ]

Nová a efektivní metoda – restart pomocí modulu Ansible reboot

Ansible reboot modul byl představen v Ansible 2.7 (v roce 2018) a nyní je tento modul součástí ansible-base a je součástí všech instalací Ansible. Předpoklady jsou stejné, ale potřebujete jen jednoduchý úkol s reboot modul. Ansible reboot modul se postará o restartování systémů nebo spravovaného uzlu, počká, až systém spadne, vrátí se online a bude reagovat na příkazy.

Můžete jednoduše restartovat počítač bez dalších možností.

- name: Reboot the machine with all defaults options
  reboot:

Existují možnosti jako reboot_timeout pro čekání na časový limit nebo pre_reboot_delay , který počká do zadaného počtu sekund, než se restartuje. Podrobnosti naleznete v dokumentaci modulu Ansible Reboot Module.

Zde je tedy naše příručka s úkolem restartovat. Můžete vidět, že je to velmi jednoduché a snadno se spravuje.

---
- name: Linux Reboot Demo
  hosts: rhel7-base
  gather_facts: no
  remote_user: devops
  become: true
 
  tasks:
    - name: Reboot the machine (Wait for 5 min)
      reboot:
        reboot_timeout: 300

Důležité poznámky

Pokud váš remote_user je nakonfigurován pomocí sudo heslo, nezapomeňte přidat -K a zadejte sudo Heslo. Zde je příklad:

$ ansible-playbook ansible-os-utils/linux-reboot.yaml -K

Pokud používáte Ansible Tower, přidejte sudo heslo v rozhraní pověření, jak je znázorněno zde:

Pojďme otestovat příručku.

$ ansible-playbook ansible-os-utils/linux-reboot.yaml -K
BECOME password: 
 
PLAY [Linux Reboot Demo] ************************************************************************************
 
TASK [Reboot the machine (Wait for 5 min)] ******************************************************************
changed: [rhel7-base.lab.local]
 
PLAY RECAP **************************************************************************************************
rhel7-base.lab.local       : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0    

Restartování počítače se systémem Windows

A co restartování počítačů se systémem Windows? Jak víte, počítače s Windows můžete spravovat pomocí Ansible a tato úloha restartu bude potřeba jako součást vašeho pracovního postupu automatizace.

Dobrou zprávou je, že stejně jako všechny ostatní alternativy Windows existuje vyhrazený Ansible win_reboot modul, který tento úkol zvládne. Nastavení vypadá takto:

- name: Reboot a Windows Machine
  ansible.windows.win_reboot:
    reboot_timeout: 360

Podrobnosti naleznete v dokumentaci modulu Ansible win_reboot.

[ Bezplatný průvodce od společnosti Red Hat:5 kroků k automatizaci vašeho podnikání. ] 

Sbalit

Pomocí reboot nebo win_reboot modul v Ansible je docela snadný a už jste se to naučili. Ujistěte se, že máte ve své knize Ansible podle potřeby správné úlohy před restartem (restartujte pouze v případě potřeby) a po restartu (pro ověření služby nebo konfigurace po restartu).

Odkazy:

  • Možnost restartu
  • Ansible win_reboot

Linux
  1. 10 modulů Ansible pro automatizaci systému Linux

  2. Jak změnit identitu systému Linux

  3. Naplánujte restartování v operačním systému Ubuntu

  1. Jak vytvořit uživatele Linuxu pomocí Ansible

  2. Jak aktualizovat/upgradovat Debian/Ubuntu Linux pomocí Ansible

  3. Výstup „posledního“ příkazu?

  1. Jak restartovat Linux pomocí příkazového řádku

  2. Jak přesměrovat výstup system() do souboru?

  3. Jak čekat na restart serveru pomocí Ansible?