Ansilble

Instalacja

sudo apt install software-properties-common -y
sudo apt add repository --yes --update ppa:ansible/ansible
sudo apt update
sudo apt install ansible
sudo apt install python3-pip
sudo pip3 install -U pip
sudo pip3 install ansible

Inventories

/ansible/inventories/prod - pliki środowiska prod

/ansible/inventories/prod/prod.yml - plik konfiguracyjny środowiska prod

all:                       # pierwsza grupa
  children:                # dyrektywa podawania podgrup
    group1:                # nazwa pierwszej podgrupy
      hosts:               # dyrektywa podawania hostów w podgrupie
        host1:             # nazwa hosta w podgrupie
          ansible_host: ip # IP lub FQDN hosta
        host2:
          ansible_host:
    group2:
      hosts:
        host3:
          ansible_host:
        host4:
          ansible_host:

Uruchomienie

ansible -i ./ansible/inventories/prod/prod.yml

--list-hosts [nazwa-grupy] - wylistowanie hostów w podanej grupie

Plik konfiguracyjny

# ansible.cfg

[defaults]
inventory = ./inventories/prod/prod.yml # adres pliku inventory
host_key_checking = false               # brak sprawdzania fingerprint-a przy połączeniu

ansible --list-hosts all - wyświetli listę hostów z inventory zadeklarowanego w pliku ansible.cfg.

Uruchomienie modułu

ansible all -m ping
ansible all -m shell "uname -a"

Playbooks

ansible-playbook playbooks/ping.yml

Uruchomienie jakiegoś playbook-a.

--- # Playbook dla pingowania

- name: playbook dla pingowania
  hosts: all
  tasks:
    - name: ping wszystkiego
      action: ping

Forks

Ustawienie flagi -f [ilosc] pozwala na uruchamianie tasków na wielu procesach co przyspiesza całość wykonywanego playbook-a