Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:konfiguraciokezeles:ansible:playbook:kezdes

< Playbook

Ansible-playbook kezdés

Az ansible-playbook

Az ansible-playbook esetén egy YAML típusú fájlban leírjuk a célgépek kívánt állapotát, majd az ansible-playbook paranccsal elindítjuk a célgépek megfelelő állapotba hozását. A gépek állapotát leíró fájlt nevezhetjük playbook-nak.

Előkészítés

A playbook használata során használhatjuk a központi /etc/ansible/ansible.cfg konfigurációs fájlt, vagy írhatunk saját konfigurációs fájlt a ~/.ansible.cfg állományban, de a helyi könyvtárban is létrehozhatunk egyet. Mi ez utóbbit fogjuk követni.

Hozzunk létre egy munkakönyvtárat:

$ mkdir szerverek

Globális konfigurációs fájl helyett itt fogunk egyet létrehozni. (Van aki egyszerűen lemásolja a /etc/anisble könyvtárat a munkakönyvtárba.)

$ cd szerverek
$ nano ansible.cfg

Az ansible.cfg tartalma:

ansible.cfg
[defaults]
inventory = hosts

A konfigurációs fájlban közöltük, hogy az aktuális könyvtárban fogunk létrehozni egy hosts fájlt, ezt használjuk.

Hozzuk létre hosts fájlt:

$ nano hosts

Tartalma:

hosts
gep1
gep2
gep3

Ha név alapján nem érhetők el a szerverek, akkor használjunk IP címet.

Playbook készítése

A playbook egy YAML formátumú állomány, amelyben leírjuk a távoli gép elérni kívánt állapotát.

A playbook-t mindig a célgépek csoportnevének megadásával kezdjük. Ezt követően adjunk meg a feladatokat. A feladatokat nevükkel kezdjük. Az alábbi példa egy távoli Debianos, gep1 nevű gépen telepíti az apache webszervert.

setup_apache.yml
---
-   hosts: gepek1
    remote_user: janos
    tasks:
 
      - name: Webszerver telepítése
        apt:
          name: apache2
          state: present
          update_cache: yes
        become: yes

Indítás

A telepítés a három gépre ezek után:

ansible-playbook setup_apache.yml

A parancsnak megadható hosts fájl, a -i kapcsolóval:

ansible-playbook -i hostfile setup_apache.yml

Megadhatunk egyetlen gépet is:

ansible-playbook -i "gep1," setup.yml

A vessző nagyon fontos, mivel ebből derül ki, hogy egy listáról van szó, nem fájlnévről.

IP címet is megadhatunk:

ansible-playbook -i "192.168.10.3," setup.yml

Az idézőjelek is elhagyhatók:

ansible-playbook -i 192.168.10.3, setup.yml

Csomagkezelés

- name: .deb csomag telepítése
  apt:
    deb: /tmp/csomag.deb
- name: Nem szükséges függőségek törlése
  apt:
    autoremove: yes
- name: A vmi nevű csomag törlése
  apt:
    name: vmi
    state: absent

Csoportok és felhasználók

Célunk, hogy felvegyünk egy dev nevű csoportot, majd egy kati nevű felhasználót, akit elhelyezünk a dev csoportban.

setup_user.yml
---
-   hosts: all
    remote_user: janos
    tasks:
 
      - name: Dev csoport
        group:
          name: dev
          state: present
        become: yes
      - name: Felhasználó felvétele
        user:
          name: kati
          comment: Pereces Katalin
          shell: /bin/bash
          password: "{{'titok' | password_hash('sha512', 'soso')}}"
        become: yes

Felhasználó törlése:

setup_userdel.yml
---
-   hosts: all
    remote_user: janos
    tasks:
      - name: Felhasználó törlése
        user:
          name: kati
          state: absent
          remove: yes
        become: yes

Fájlok másolása

Másolás távoli gépre

A kontrollgépről szeretnénk egy állomány a gépekre másolni.

fajlFeltoltes.yml
---
-   hosts: all
    remote_user: janos
    tasks:
      - name: Fájl feltöltése (másolása) a gépekre
        copy:
          src: /home/janos/adat.txt
          dest: /srv/adat.txt
        become: yes

A távoli gépeken belül fájlok másolása

Tulajdonképpen egy plusz sort kell beillesztenem:

fajlMasolas.yml
---
-   hosts: all
    remote_user: janos
    tasks:
      - name: Fájl másolása a gépeken
        copy:
          src: /home/janos/adat.txt
          dest: /srv/adat.txt
          remote_src: yes
        become: yes

Fájlok attribútumai

Fájlok attribútumait, csak az ansible 2.3 verziójától lehet ilyen formában állítani; a Debian 9 verziója, viszont csak a 2.2 tartalmazza. Ha használni akarjuk, akkor telepítsünk újabbat.

setup_fajl_attr.yml
---
-   hosts: all
    remote_user: janos
    tasks:
      - name: Fájl attribútum beállítása
        file:
          path: /srv/adat.txt
          attr: +i
        become: yes

Ha el akarjuk venni az i-t:

attr: -i

Tetszőleges parancs végrehajtása

setup_parancs.yml
---
-   hosts: all
    remote_user: janos
    tasks:
      - name: Parancs végrehajtása
        command: "chattr +i adat.txt"
        become: yes

Végrehajtás helyi gépen

helyben.yml
---
  hosts: localhost
  gather_facts: no
  tasks:
  - name: ide jöhetnek a műveletek
 
...
oktatas/linux/konfiguraciokezeles/ansible/playbook/kezdes.txt · Utolsó módosítás: 2019/08/16 21:08 szerkesztette: admin