tags
This commit is contained in:
@@ -111,7 +111,7 @@ Un semplice esempio di condizione `when`:
|
|||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: install postgres
|
- name: install postgres
|
||||||
yum:
|
apt:
|
||||||
name: postgresql
|
name: postgresql
|
||||||
state: latest
|
state: latest
|
||||||
when: ansible_distribution == 'Ubuntu'
|
when: ansible_distribution == 'Ubuntu'
|
||||||
@@ -127,7 +127,7 @@ Un esempio di `registered variables`:
|
|||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Install the httpd package
|
- name: Install the httpd package
|
||||||
yum:
|
apt:
|
||||||
name: httpd
|
name: httpd
|
||||||
state: present
|
state: present
|
||||||
register: httpd_installation
|
register: httpd_installation
|
||||||
@@ -139,7 +139,7 @@ Un esempio di `registered variables`:
|
|||||||
when: httpd_installation.changed == true
|
when: httpd_installation.changed == true
|
||||||
```
|
```
|
||||||
|
|
||||||
Questo task utilizza il modulo yum per installare il pacchetto httpd. Durante l'esecuzione, il risultato dell'installazione viene registrato nella variabile `httpd_installation`. Avvia infine il servizio httpd, ma solo se l'installazione del pacchetto è stata completata con successo.
|
Questo task utilizza il modulo apt per installare il pacchetto httpd. Durante l'esecuzione, il risultato dell'installazione viene registrato nella variabile `httpd_installation`. Avvia infine il servizio httpd, ma solo se l'installazione del pacchetto è stata completata con successo.
|
||||||
|
|
||||||
## Loops
|
## Loops
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ Gli `handler` in Ansible consentono l'esecuzione condizionale di specifiche oper
|
|||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: install httpd
|
- name: install httpd
|
||||||
yum:
|
apt:
|
||||||
name: httpd
|
name: httpd
|
||||||
state: present
|
state: present
|
||||||
notify:
|
notify:
|
||||||
@@ -280,3 +280,55 @@ Gli `handler` in Ansible consentono l'esecuzione condizionale di specifiche oper
|
|||||||
La parola chiave `notify` serve a richiamare l’handler specificato. Durante la prima esecuzione, una volta installato il software httpd, l’handler verrà attivato e avvierà il servizio. Nelle esecuzioni successive, qualora il pacchetto sia già presente e non subisca modifiche, il task non verrà eseguito e, di conseguenza, neppure l’handler associato verrà richiamato.
|
La parola chiave `notify` serve a richiamare l’handler specificato. Durante la prima esecuzione, una volta installato il software httpd, l’handler verrà attivato e avvierà il servizio. Nelle esecuzioni successive, qualora il pacchetto sia già presente e non subisca modifiche, il task non verrà eseguito e, di conseguenza, neppure l’handler associato verrà richiamato.
|
||||||
|
|
||||||
Per impostazione predefinita, gli handlers vengono eseguiti solo dopo che tutti i task del playbook sono stati completati. Questo significa che, anche se più task notificano lo stesso handler, quest’ultimo verrà eseguito una sola volta.
|
Per impostazione predefinita, gli handlers vengono eseguiti solo dopo che tutti i task del playbook sono stati completati. Questo significa che, anche se più task notificano lo stesso handler, quest’ultimo verrà eseguito una sola volta.
|
||||||
|
|
||||||
|
## Tags
|
||||||
|
|
||||||
|
I tag consentono di contrassegnare specifici task, offrendo la possibilità di selezionare quali parti eseguire di un playbook.
|
||||||
|
|
||||||
|
Per aggiungere un tag a un task, è sufficiente utilizzare la direttiva `tags` seguita da un elenco di etichette. Ogni task può essere associato a uno o più tag, come illustrato nell’esempio seguente:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
- name: playbook with tags
|
||||||
|
hosts: db
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: install httpd
|
||||||
|
apt:
|
||||||
|
name: httpd
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- http
|
||||||
|
|
||||||
|
- name: install postgres
|
||||||
|
apt:
|
||||||
|
name: postgresql
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- db
|
||||||
|
```
|
||||||
|
|
||||||
|
In questo esempio, ogni task è associato a un tag specifico, rispettivamente http e db. In questo modo, è possibile eseguire solo i task contrassegnati da un determinato tag.
|
||||||
|
|
||||||
|
### Tag speciali
|
||||||
|
|
||||||
|
Ansible offre due tag speciali, `always` e `never`: un task contrassegnato con il tag *always* verrà sempre eseguito, indipendentemente dai tag specificati nella riga di comando. Al contrario, un task contrassegnato con il tag *never* non verrà mai eseguito, a meno che non venga esplicitamente richiesto tramite l’opzione `--tags`.
|
||||||
|
|
||||||
|
### Esecuzione tramite riga di comando
|
||||||
|
|
||||||
|
Utilizzando l'opzione `--tags`, è possibile specificare i task da eseguire:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook playbook.yml --tags "http"
|
||||||
|
```
|
||||||
|
|
||||||
|
Questo comando eseguirà solo i task contrassegnati con il tag http.
|
||||||
|
|
||||||
|
Al contrario, per escludere task specifici dall'esecuzione, si utilizza l'opzione `--skip-tags`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook playbook.yml --skip-tags "db"
|
||||||
|
```
|
||||||
|
|
||||||
|
Questo comando salterà l'esecuzione di tutti i task contrassegnati con il tag db.
|
||||||
|
|||||||
Reference in New Issue
Block a user