Košík je prázdný

Ansible je jedním z nejpopulárnějších nástrojů pro automatizaci správy konfigurací, nasazování aplikací a orchestraci úloh. Díky své jednoduchosti, idempotentní povaze a schopnosti bez agenta se stává základním kamenem mnoha infrastrukturních operací. Tento článek se zaměřuje na základy používání Ansible pro správu konfigurací a zajištění idempotence v konfiguračních změnách napříč serverovou flotilou s CentOS 7.

Předpoklady

Před zahájením je nutné mít:

  • Nainstalovaný CentOS 7 na všech spravovaných serverech.
  • Přístup k hlavnímu serveru s nainstalovaným Ansible.
  • SSH klíče pro bezpečný přístup k cílovým serverům bez použití hesla.

Instalace Ansible

  1. Přihlaste se do svého řídícího serveru.
  2. Přidejte EPEL repozitář: sudo yum install epel-release.
  3. Instalujte Ansible: sudo yum install ansible.
  4. Ověřte instalaci: ansible --version.

Konfigurace Ansible

  1. Vytvoření inventářního souboru: Vytvořte soubor /etc/ansible/hosts a přidejte skupiny serverů spolu s jejich adresami. Příklad:

    [webservers]
    server1 ansible_host=192.168.1.1
    server2 ansible_host=192.168.1.2
    
  2. Nastavení SSH klíčů: Ujistěte se, že máte SSH klíče nastaveny pro bezpečné připojení k vašim serverům bez hesla.

  3. Konfigurační soubor Ansible: Upravte /etc/ansible/ansible.cfg pro optimalizaci chování Ansible, například nastavením host_key_checking = False pro vynechání ověření SSH klíčů.

Základní použití Ansible

  1. Testování připojení: Spusťte ansible all -m ping pro ověření, že Ansible se může připojit k vašim serverům.

  2. Spouštění ad-hoc příkazů: Pro spuštění příkazů na všech serverech použijte ansible all -a '<command>', kde <command> je váš příkaz.

Idempotentní konfigurační změny

Idempotence je klíčový koncept v Ansible, který znamená, že opakované spuštění stejných úloh nezmění systém, pokud není potřeba změna. Pro zajištění idempotence:

  1. Používejte moduly Ansible místo přímých příkazů: Moduly jako yum, file, template, service a další zajistí, že změny budou provedeny pouze v případě potřeby.

  2. Vytvoření playbooků: Playbooky jsou soubory YAML, které definují, jaké úlohy mají být na serverech provedeny. Příklad playbooku pro instalaci a spuštění Nginx:

    ---
    - hosts: webservers
      tasks:
        - name: Install nginx
          yum:
            name: nginx
            state: present
    
        - name: Start nginx
          service:
            name: nginx
            state: started
            enabled: yes
    
  3. Spouštění playbooků: Použijte ansible-playbook <playbook_file>.yml pro spuštění vašeho playbooku. Ansible zkontroluje stávající stav serverů a provede pouze ty změny, které jsou nutné pro dosažení požadovaného stavu definovaného v playbooku.

Ansible nabízí efektivní a jednoduchý způsob, jak spravovat konfigurace a zajišťovat idempotence v konfiguračních změnách napříč serverovou flotilou. Díky idempotentním playbookům a modulům můžete minimalizovat redundantní úpravy a zajistit konzistenci vaší infrastruktury.