Potrzeba automatyzacji
• Duża infrastruktura i problem skali
• Skomplikowany proces instalacji i konfiguracji
środowiska
WRUG 10.12.2014
Potrzeba automatyzacji
• Duża infrastruktura i problem skali
• Skomplikowany proces instalacji i konfiguracji
środowiska
• Disaster recovery
WRUG 10.12.2014
Potrzeba automatyzacji
• Duża infrastruktura i problem skali
• Skomplikowany proces instalacji i konfiguracji
środowiska
• Disaster recovery
• Usługi w chmurze / OnDemand
WRUG 10.12.2014
Mnogość dostępnych opcji
Tylko jeden host lub grupa hostów
$ ansible -i hosts.ini -m ping app01
$ ansible -i hosts.ini -m ping application
WRUG 10.12.2014
Mnogość dostępnych opcji
Tylko jeden host lub grupa hostów
$ ansible -i hosts.ini -m ping app01
$ ansible -i hosts.ini -m ping application
Gdy nie mamy dodanego klucza SSH na serwerze
WRUG 10.12.2014
Mnogość dostępnych opcji
Tylko jeden host lub grupa hostów
$ ansible -i hosts.ini -m ping app01
$ ansible -i hosts.ini -m ping application
Gdy nie mamy dodanego klucza SSH na serwerze
$ ansible -i hosts.ini -m ping all -k
WRUG 10.12.2014
Mnogość dostępnych opcji
Tylko jeden host lub grupa hostów
$ ansible -i hosts.ini -m ping app01
$ ansible -i hosts.ini -m ping application
Gdy nie mamy dodanego klucza SSH na serwerze
$ ansible -i hosts.ini -m ping all -k
Customowy klucz SSH
WRUG 10.12.2014
Mnogość dostępnych opcji
Tylko jeden host lub grupa hostów
$ ansible -i hosts.ini -m ping app01
$ ansible -i hosts.ini -m ping application
Gdy nie mamy dodanego klucza SSH na serwerze
$ ansible -i hosts.ini -m ping all -k
Customowy klucz SSH
$ ansible -i hosts.ini -m ping all --private-key
~/.vagrant.d/insecure_private_key
WRUG 10.12.2014
Playbooks
• Struktura opisująca konfigurację oraz pożądany stan hostów,
którymi zarządzamy
WRUG 10.12.2014
Playbooks
• Struktura opisująca konfigurację oraz pożądany stan hostów,
którymi zarządzamy
• Odpowiednik cookbook z chef
WRUG 10.12.2014
Playbooks
• Struktura opisująca konfigurację oraz pożądany stan hostów,
którymi zarządzamy
• Odpowiednik cookbook z chef
• Pliki w formacie YAML, „human-readable”
WRUG 10.12.2014
Playbooks
• Struktura opisująca konfigurację oraz pożądany stan hostów,
którymi zarządzamy
• Odpowiednik cookbook z chef
• Pliki w formacie YAML, „human-readable”
• Możemy korzystać z pythonowego systemu szablonów Jinja2
WRUG 10.12.2014
Playbooks
• Struktura opisująca konfigurację oraz pożądany stan hostów,
którymi zarządzamy
• Odpowiednik cookbook z chef
• Pliki w formacie YAML, „human-readable”
• Możemy korzystać z pythonowego systemu szablonów Jinja2
• Wiele sposobów na ich organizację, dzięki czemu służą w
prostych oraz skomplikowanych środowiskach
WRUG 10.12.2014
Playbooks
• Struktura opisująca konfigurację oraz pożądany stan hostów,
którymi zarządzamy
• Odpowiednik cookbook z chef
• Pliki w formacie YAML, „human-readable”
• Możemy korzystać z pythonowego systemu szablonów Jinja2
• Wiele sposobów na ich organizację, dzięki czemu służą w
prostych oraz skomplikowanych środowiskach
• To właśnie tu możemy zobaczyć całe piękno i filozofię ansible!
WRUG 10.12.2014
Playbook - directory layout
production.ini - Nasze inventory dla środowiska produkcyjnego
stage.ini oraz testowego (stage)
group_vars/ - Zmienne dla całych grup hostów. W naszym
application przypadku dla grup application oraz database
database
host_vars/ - Zmienne zdefiniowane tylko dla konkretnego
app01 hosta
library/ - Jeśli korzystamy z własnych modułów to jest
my-module/ to idealny katalog na ich umieszczenie
site.yml - Nasze playbooki
application.yml
database.yml
roles/ - Katalog, w którym będziemy przechowywać nasze
chruby/ wszystkie role. Poprzez rolę możemy tu rozumieć
nginx/ funkcje jakie będzie posiadał nasz serwer.
our-application/ Dla przykładu serwer może mieć funkcje bazy
postgresql/ danych postgresql lub serwer www nginx.
ruby-install/
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
• Tags
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
• Tags
• Facts Caching
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
• Tags
• Facts Caching
• Ansible Vault
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
• Tags
• Facts Caching
• Ansible Vault
• Asynchronous Actions and Polling
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
• Tags
• Facts Caching
• Ansible Vault
• Asynchronous Actions and Polling
• Rolling Update, Maximum Failure Percentage, Deletation, Run Once
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
• Tags
• Facts Caching
• Ansible Vault
• Asynchronous Actions and Polling
• Rolling Update, Maximum Failure Percentage, Deletation, Run Once
• Var Promts
WRUG 10.12.2014
O czym jeszcze warto
wspomieć?
• Variables, Loops, Conditionals, Jinja2
• Tags
• Facts Caching
• Ansible Vault
• Asynchronous Actions and Polling
• Rolling Update, Maximum Failure Percentage, Deletation, Run Once
• Var Promts
• Ansible Galaxy
WRUG 10.12.2014