GNU/Linux >> Znalost Linux >  >> Cent OS

Jak vytvořit Ansible Playbooks pro IT automatizaci

Playbook není nic jiného než Ansible's skripty pro správu konfigurace a lze jej použít ke správě nasazení a konfigurací spravovaných uzlů. Příručka obsahuje sadu zásad, které mají vaše spravované uzly uplatňovat, nebo sadu kroků v obecném procesu IT.

Příručky jsou psány a vyvíjeny v jednoduchém textovém jazyce. Syntaxe, kterou používáme v příručkách, se liší od běžných příkazů, které jsme používali k testování v předchozím tutoriálu.

V předchozím tutoriálu jsme viděli, jak nainstalovat Ansible na CentOS 7 / RHEL 7 / Ubuntu 18.04 / 16.04 a Debian 9 .

Vytvořit Ansible Playbook

Pro toto demo vytvoříme playbook s názvem web.yml pro konfiguraci hostitele pro provozování webového serveru Apache . Každá příručka se skládá z jedné nebo více her v seznamu.

Pro každou hru v playbooku si můžete vybrat, na které stroje ve vaší infrastruktuře chcete cílit, a na kterého vzdáleného uživatele, který bude úkoly plnit.

vi web.yml

Příručka CentOS / RHEL:

---
- hosts: 192.168.1.20
  remote_user: raj
  become: yes
  become_method: su

  tasks:
  - name: Install Apache
    yum: pkg=httpd state=latest
  - name: Copying the demo file
    template: src=/etc/ansible/index.html dest=/var/www/html
              owner=apache group=apache mode=0644
  - name: Enable Apache on System Boot
    service: name=httpd enabled=yes

    notify:
    - start apache
    - setup firewalld
    - reload firewalld

  handlers:
    - name: start apache
      service: name=httpd state=started
    - name: setup firewalld
      firewalld:
        service: http
        permanent: true
        state: enabled
    - name: reload firewalld
      service: name=firewalld state=restarted

Příručka Ubuntu / Debian:

---
- hosts: 192.168.1.30
  remote_user: raj
  become: yes
  become_method: sudo

  tasks:
  - name: Install Apache
    apt:
      name: apache2
      update_cache: yes
  - name: Copying the demo file
    template: src=/etc/ansible/index.html dest=/var/www/html
              owner=www-data group=www-data mode=0644

Vytvořte ukázkový soubor HTML (/etc/ansible/index.html ). Tento soubor HTML bude umístěn do výchozího kořenového adresáře dokumentu serveru Apache na spravovaném uzlu.

vi /etc/ansible/index.html

HTML:

<html>
  <head>
    <title>Apache is installed by Ansible</title>
  </head>
  <body>
  <h1>Apache is installed by Ansible</h1>
  <p>Now, Apache is managed through Ansible</p>
  </body>
</html>

Breaking Down Ansible Playbook

Nyní si projdeme jednotlivé sekce příručky web.yml soubor, abyste pochopili, co to znamená.

Soubor začíná

---

Všechny soubory YAML by měly začínat (tři pomlčky) --- a to označuje začátek dokumentu. YAML je velmi citlivý na prostor a využívá jej k seskupování různých částí informací dohromady. Aby bylo možné správně číst, musí být mezery v celém souboru konzistentní. Položky na stejné úrovni odsazení jsou považovány za sourozenecké prvky.

Hostitel a uživatelé

---
- hosts: 192.168.1.20
  remote_user: raj

Řádek hostitelů je seznam jedné nebo více skupin (např. demo servery) nebo vzorů hostitelů (např. 192.168.1.20), oddělených dvojtečkami. Spolu s hostitelem můžete zmínit vzdálený uživatelský účet.

---
- hosts: 192.168.1.20
  remote_user: raj
  become: yes
  become_method: su

Chcete-li nainstalovat jakékoli balíčky do systému, musíte se stát uživatelem root. K tomu můžete použít metody eskalace oprávnění, jako je su nebo sudo . Kdykoli použijete tento druh metod eskalace oprávnění, musíte spustit ansible playbook pomocí --ask-become-pass argument.

Úkoly

Nyní máme sadu úkolů.

Úlohy
  tasks:
  - name: Install Apache
    yum: pkg=httpd state=latest
  - name: Copying the demo file
    template: src=/etc/ansible/index.html dest=/var/www/html
              owner=apache group=apache mode=0644
  - name: Enable Apache on System Boot
    service: name=httpd enabled=yes

Každá hra obsahuje seznam úkolů, které jsou prováděny v pořadí, jeden po druhém, proti všem strojům odpovídajícím hostitelskému vzoru, než se přejde k dalšímu úkolu.

Když spouštíte příručku, běží shora dolů a hostitelé s neúspěšnými úlohami jsou vyjmuti z rotace pro celou příručku.

Každý úkol by měl mít název a používá se k zobrazení aktuální aktivity při spuštění playbooku. Tento výstup je pro lidi, takže je hezké mít přiměřeně dobrý popis každého kroku úkolu.

Zde nainstaluje nejnovější verzi Apache a zkopíruje ukázkové HTML (/etc/ansible/index.html) do adresáře /var/www/html spravovaného uzlu a poté povolí automatické spouštění služby Apache během spouštění systému.

Upozornit

Tyto upozorňují akce se spouštějí na konci každého bloku úkolů v playbooku a budou spuštěny pouze jednou, i když na to upozorní několik různých úkolů.

    notify:
    - start apache
    - setup firewalld
    - reload firewalld

Oznámení položka obsahuje položku s názvem spustit apache , nastavení brány firewall a znovu načtěte firewall . Jedná se o odkazy na handlery, které provádějí specifické funkce, když jsou volány z úlohy. Definujeme startovací apache a firewalld handler.

Obslužný program

Handlery jsou seznamy úkolů, které se ve skutečnosti neliší od běžných úkolů. Spustí se však pouze tehdy, když jim úloha sdělí, že na klientském systému došlo ke změnám.

  handlers:
    - name: start apache
      service: name=httpd state=started
    - name: setup firewalld
      firewalld:
        service: http
        permanent: true
        state: enabled
    - name: reload firewalld
      service: name=firewalld state=restarted

V našem případě máme handler, který spustí službu Apache a nakonfiguruje firewall po instalaci balíčku.

K této akci dochází, protože oznamovatel upozornil na změny v systému, což znamená, že balíček Apache musel být nainstalován a spolu s tímto demo souborem musel být zkopírován do DocumentRoot.

Spustit Ansible Playbook

Jakmile budete mít připravenou příručku, můžete ji spustit pomocí níže uvedeného příkazu.

ansible-playbook web.yml -f 1 --ask-become-pass

OR

ansible-playbook web.yml -f 1 --ask-become-pass -u raj --ask-pass

ansible-playbook :Příkaz ke spuštění Ansible playbooků.

web.yml: YAML soubor (Ansible Playbook soubor – který jsme vytvořili na začátku tohoto tutoriálu)

-f 1 :playbook používající úroveň paralelismu 1

–ask-become-pass :Protože se pro instalaci balíčků musíme stát uživatelem root.

-u raj :Uživatel ve spravovaném uzlu

Výstup:

Předpokládejme, že jste vytvořili playbook pro skupinu (např. demo servery) serverů a chcete spustit playbook na konkrétním hostiteli. Níže uvedený příkaz spustí playbook pouze na 192.168.1.40 .

ansible-playbook -l 192.168.1.40 web.yml -u raj --ask-become-pass

Ověřte akce Ansible Playbook

Po spuštění playbooku otevřete prohlížeč a přejděte ke vzdálenému hostiteli uvedenému v ansible inventáři.

V mém případě bude adresa URL

http://192.168.1.20

Nyní byste se měli dostat nad stránku Apache je nainstalován společností Ansible a tato stránka nám potvrzuje, že Apache byl nainstalován Ansible.

Naučili jste se vytvořit jednoduchý playbook pro automatizaci instalace Apache. Další informace o vytváření příruček naleznete zde .

To je vše.


Cent OS
  1. Jak používám Ansible a anacron pro automatizaci

  2. Jak vytvořit Ansible Playbook

  3. jak vytvořit Ansible playbook pro získání verzí OS vzdálených hostitelů?

  1. Demystifikování Ansible pro systémové správce Linuxu

  2. 6 dovedností pro odstraňování problémů pro Ansible playbooky

  3. Jak předat další proměnné do příručky Ansible

  1. Jak vytvořit soubor v Ansible

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

  3. Jak vytvořit MySQL Docker Container pro testování