ansible
Wprowadzenie do podręczników
Szukaj…
Przegląd
W Ansible playbook to plik YAML zawierający definicję wyglądu serwera. W podręczniku określasz, jakie działania powinien podjąć Ansible, aby uzyskać żądany stan serwera. Wykonane zostanie tylko to, co zdefiniujesz.
To jest podstawowa instrukcja Ansible, która instaluje git na każdym hoście należącym do grupy web
:
---
- name: Git installation
hosts: web
remote_user: root
tasks:
- name: Install Git
apt: name=git state=present
Struktura poradnika
Format podręcznika jest dość prosty, ale ścisły pod względem odstępów i układu. Poradnik składa się z zabaw. Gra jest kombinacją hostów docelowych i zadań, które chcemy zastosować na tych hostach, więc rysunek podręcznika jest następujący:
Aby wykonać ten poradnik, po prostu uruchamiamy:
ansible-playbook -i hosts my_playbook.yml
Struktura gry
Oto prosta gra:
- name: Configure webserver with git
hosts: webserver
become: true
vars:
package: git
tasks:
- name: install git
apt: name={{ package }} state=present
Jak powiedzieliśmy wcześniej, każda gra musi zawierać:
Zestaw hostów do skonfigurowania
Lista zadań do wykonania na tych hostach
Pomyśl o grze jako o rzeczy, która łączy hosty z zadaniami. Oprócz określania hostów i zadań, gra obsługuje również szereg ustawień opcjonalnych. Dwa typowe to:
-
name
: komentarz opisujący grę. Ansible wydrukuje to, gdy rozpocznie się odtwarzanie -
vars
: lista zmiennych i wartości
Tagi
Gra zawiera kilka zadań, które można oznaczyć:
- name: Install applications
hosts: all
become: true
tasks:
- name: Install vim
apt: name=vim state=present
tags:
- vim
- name: Install screen
apt: name=screen state=present
tags:
- screen
Zadanie z tagiem „vim” zostanie uruchomione, gdy w tagach podano „vim”. Możesz określić dowolną liczbę tagów. Przydatne jest używanie tagów takich jak „install” lub „config”. Następnie możesz uruchomić playbook z podaniem tagów lub pominąć tagi. Dla
ansible-playbook my_playbook.yml --tags "tag1,tag2"
ansible-playbook my_playbook.yml --tags "tag2"
ansible-playbook my_playbook.yml --skip-tags "tag1"
Domyślnie Ansible uruchamia wszystkie tagi