7 denních úloh správce systému pro automatizaci s Ansible

Ansible, bezplatný a open source projekt společnosti Red Hat založený na Pythonu, je populární platforma pro správu konfigurace a automatizaci IT.

Je multiplatformní a může pracovat s většinou moderních operačních systémů, včetně Linuxu, Windows a Mac. Podporuje deklarativní jazyk napsaný v YAML nebo YAML Ain’t Markup Language pro popis konfigurace systému.

Ansible spolu s dalšími moderními platformami pro správu konfigurace způsobil revoluci v automatizaci IT a průmyslových standardech. Nástroje pro správu konfigurace se staly součástí sady nástrojů DevOps a jsou nedílnou součástí životního cyklu každého moderního IT procesu. To je použitelné pro jakékoli prostředí moderní infrastruktury, ať už je postaveno na místním, hybridním nebo cloudovém prostředí. Nejen pro DevOps, ale Ansible může také pomoci automatizovat mnoho každodenních úkolů prováděných správcem systému.

Jednou z výhod použití Ansible je to, že je bez agenta a nepotřebuje mnoho k zahájení, kromě přístupu SSH k cílovému počítači a podporované verzi Pythonu, která je již standardně nainstalována na většině moderních operačních systémů. Vzhledem k tomu, že se jedná o lehký nástroj, lze jej také nasadit a používat s odkazem na inovativní systémy.

Použití Ansible

Orchestr

Ansible je nástroj volby pro orchestraci různých úloh správy a nasazení systému. Příručky umožňují používat stejné pracovní postupy orchestrace v různých projektech a konfigurační data založená na YAML umožňují ukládání a verzování vaší infrastruktury v úložišti Git nebo na jakékoli podporované platformě pro správu verzí.

Nasazení aplikací

Ať už se jedná o jednoduchou aplikaci s několika řádkovým kódem nebo vícevrstvé těžké nasazení, Ansible umožňuje automatizovat celý životní cyklus nasazení aplikací.

Zabezpečení a dodržování předpisů

Ansible může také pomoci zajistit, aby vaše systémy byly zabezpečeny podle pokynů vaší organizace a v souladu s průmyslovými standardy. Může běžet na tisících serverů, generovat audit a opravovat tyto bezpečnostní díry, což dává správci úplnou kontrolu nad prostředím.

  Co znamenají „7nm“ a „10nm“ pro CPU a proč na nich záleží?

Pojďme se nyní podívat na některé běžné úlohy Sysadmin, které můžete automatizovat pomocí Ansible.

Zkopírujte soubory z místního nebo vzdáleného systému

Jako správce systému je běžné kopírovat soubory z jednoho adresáře do druhého. Konfigurační soubory je často nutné zkopírovat na vzdálené servery nebo někdy potřebujeme přesunout soubory z jednoho vzdáleného umístění do druhého.

Modul Ansible copy vám může pomoci s těmito úkoly v playbooku.

Pro správce systému je rutinním úkolem znát stav spravovaných serverů a provádět předdefinované akce podle zásad organizace. Jedním z takových úkolů je znát dostupnost serveru. S Ansible můžeme snadno načíst hodnoty doby provozuschopnosti a vytisknout je společně. Níže je uveden příklad kopírování konfigurace ntp z místního na vzdálený server pomocí modulu kopírování:

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Copy a new ntp configuration file and back up the original, if it differs
      copy:
        src: ./ntp.conf
        dest: /etc/ntp.conf
        owner: root
        group: root
        mode: '0644'
        backup: yes

Nakonfigurujte další úlohy cronu

Nastavení naplánovaných úloh pro provádění rutinních úloh je součástí správy jakéhokoli serveru. Můžete naplánovat automatické zálohování, opravy, auditování atd. v určitou denní nebo měsíční dobu automaticky a ponechat tak produktivní čas pro vaše použití.

cron je jedním z takových nástrojů v Linuxu, který podporuje plánování, a Ansible vám může pomoci tyto úlohy přidat nebo upravit. Jako příklad níže uvedená příručka ukazuje, jak můžete snadno nastavit úlohu rsync jako root na některých nebo všech vašich serverech pomocí Ansible.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Deploy cron job
      cron:
        name: "Set rsync job"
        user: root
        minute: "5"
        hour: "4"
        job: "rsync -avz /path/to/folder1 /path/to/folder1 2>&1"

Správa disků a souborových systémů

Ansible lze použít ke správě disků, rozložení oddílů, souborových systémů a připojení, včetně /etc/fstab na serverech Linux. Různé moduly Ansible to umožňují. Zde je příklad, který vytvoří oddíl na 100GB disku, naformátuje jej souborovým systémem ext4, vytvoří nový adresář pro připojení oddílu a nakonec jej připojí k danému adresáři. Záznam v /etc/fstab je také vytvořen prostřednictvím dočasného nebo trvalého připojení v závislosti na možnostech modulu.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Create a partition
      parted:
        device: /dev/sdb
        number: 1
        part_end: "100%"
        state: present
    - name: Format new partition
      filesystem:
        fstype: ext4
        dev: /dev/sdb1
    - name: Create mount directory
      file:
        path: /data
        state: directory
    - name: Mount partition
      mount:
        path: /data
        src: /dev/sdb1
        fstype: ext4
        state: mounted

Sbírejte protokoly serveru

Uchovávání protokolů na vhodném místě je někdy nezbytné pro zabezpečení, audit i analýzu. Ansible umožňuje shromažďování protokolů z různých serverů ve vašem podnikovém prostředí a snadno je udržuje na vámi definovaném místě. Zde je návod, jak toho dosáhnout:

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
  
    - name: Find logs
      find:
        paths: /var/log/
        patterns: '*.log'
        recurse: yes
      register: _logs

    - name: Fetch logs
      fetch:
        src: "{{ item.path }}"
        dest: /tmp/logs
      with_items: "{{ _logs.files }}"

Nainstalujte nebo odeberte balíčky a software

Balíčky je často nutné instalovat na požadavky uživatele nebo jako součást počátečních sestavení serveru. Můžeme také potřebovat odstranit určité balíčky, které již nejsou potřeba nebo mají nějaké kritické chyby atd. Ansible vám umožňuje snadno instalovat nebo odstraňovat balíčky, aniž byste museli přecházet na každý server a spouštět ruční příkazy. Zde je příklad demonstrující instalaci a odstranění jednoho balíčku pro Ubuntu a servery Linux založené na RHEL/CentOS.

---
- hosts: ubuntu
  gather_facts: no
  tasks:
    - name: Install lsof utility
      apt:
        pkg: lsof
        state: latest
      sudo: yes
    - name: Remove ARP Scan utility
      apt:
        pkg: arp-scan
        state: absent
      sudo: yes
      
 ---
- hosts: centos
  gather_facts: no
  tasks:
    - name: Install lsof utility
      yum:
        pkg: lsof
        state: latest
      sudo: yes
    - name: Remove ARP Scan utility
      yum:
        pkg: arp-scan
        state: absent
      sudo: yes

Správa uživatelů

Uživatelé a skupiny tvoří základní strukturu, kolem které systémy založené na Unixu/Linuxu spravují přístup a oprávnění. Ve velké organizaci může být správa uživatelů a skupin velkou výzvou navzdory automatizaci podpory prostředí.

  Co je lepší pro růst vašeho elektronického obchodu?

S Ansible má správce systému vynikající nástroj pro vytváření, úpravu a mazání uživatelů a skupin se všemi různými možnostmi podporovanými v OS.

Zde je jednoduchý příklad, který ukazuje vytváření a mazání uživatelů a skupin pomocí Ansible. Po spuštění této příručky budou mít cílové servery skupinu A a skupinu B vytvořenou s danými GID, zatímco uživatel1 bude odstraněn, pokud existuje. Nový uživatel bez shellu bude vytvořen jako uživatel2 s daným UID, přiřazenými skupinami a uzamčeným heslem.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - group:
        gid: 12310
        name: groupA
        state: present
    - group:
        gid: 12311
        name: groupB
        state: present
    - user:
        name: user1
        state: absent
    - user:
        name: user2
        uid: 12427
        shell: /bin/false
        password_lock: yes
        groups: groupA, groupB

Správa služeb

Služby jsou procesní démoni, kteří běží na pozadí a obsluhují nějakou službu jako sshd poskytující SSH konektivitu atd. Pomocí Ansible můžete spravovat systémové a uživatelské služby, jako je jejich spouštění, zastavování a restartování. Zde je ukázková příručka, která to demonstruje:

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Restart ssh daemon
      service:
        name: ssh
        state: restarted
    - name: Restart sssd daemon
      service:
        name: sssd
        state: stopped
    - name: Restart httpd daemon
      service:
        name: httpd
        state: started

Ve výše uvedeném příkladu bude služba SSH restartována při dalším zastavení služby SSSD. Démon httpd je spuštěn ke konci. Protože Ansible je idempotentní, žádná služba, která je již spuštěna nebo zastavena, se nezmění, zatímco restart vždy změní stav služby. Nezapomeňte zkontrolovat název služby, protože různé distribuce Linuxu používají jiné názvy i pro stejnou službu, jako je ssh a sshd.

  Definitivní průvodce analýzou sentimentu

Shrnutí 👨‍💻

Ansible usnadňuje život systémového administrátora tím, že vám umožňuje provádět opakované a časově náročné úkoly automatizovaným způsobem a snižuje lidské chyby a úsilí. Dále umožní ukládání konfiguračních dat v centrálním úložišti kódu, jako je Git, což umožní více uživatelům spolupracovat a kontrolovat každou aktivitu.

Chcete-li si přečíst více o Ansible a jeho rozsáhlé sadě modulů, podívejte se na jeho dokumentace.