ansible
Introduzione ai quaderni
Ricerca…
Panoramica
In Ansible, un playbook è un file YAML contenente la definizione di come dovrebbe apparire un server. In una cartella di gioco si definiscono le azioni che Ansible dovrebbe prendere per ottenere il server nello stato desiderato. Solo ciò che si definisce viene fatto.
Questo è un playbook Ansible di base che installa git su ogni host appartenente al gruppo web
:
---
- name: Git installation
hosts: web
remote_user: root
tasks:
- name: Install Git
apt: name=git state=present
Struttura del Playbook
Il formato di un playbook è piuttosto semplice, ma rigoroso in termini di spaziatura e layout. Un playbook consiste di giochi. Una giocata è una combinazione di host bersaglio e le attività che vogliamo applicare su questi host, quindi un disegno di un playbook è questo:
Per eseguire questo libro di esercizi, eseguiamo semplicemente:
ansible-playbook -i hosts my_playbook.yml
La struttura del gioco
Ecco un gioco semplice:
- name: Configure webserver with git
hosts: webserver
become: true
vars:
package: git
tasks:
- name: install git
apt: name={{ package }} state=present
Come abbiamo detto prima, ogni gioco deve contenere:
Un set di host da configurare
Un elenco di attività da eseguire su quegli host
Pensa a un gioco come alla cosa che collega gli host alle attività. Oltre a specificare host e attività, le riproduzioni supportano anche un numero di impostazioni opzionali. Due quelli comuni sono:
-
name
: un commento che descrive di cosa tratta il gioco. Ansible stamperà questo fuori quando inizia la riproduzione del gioco -
vars
: un elenco di variabili e valori
tag
La riproduzione contiene diversi compiti, che possono essere taggati:
- 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
L'attività con il tag 'vim' verrà eseguita quando 'vim' è specificato nei tag. Puoi specificare tutti i tag che vuoi. È utile usare tag come "install" o "config". Quindi puoi eseguire la cartella con i tag di specificazione o skip-tag. Per
ansible-playbook my_playbook.yml --tags "tag1,tag2"
ansible-playbook my_playbook.yml --tags "tag2"
ansible-playbook my_playbook.yml --skip-tags "tag1"
Di default Ansible esegue tutti i tag