Ansible

Come creare una directory in Ansible

Come creare una directory in Ansible

Ansible è uno dei migliori strumenti di automazione disponibili, che offre strumenti semplici, intuitivi e potenti per eseguire attività di automazione nel mondo moderno.

Per la maggior parte delle attività di automazione, sarà necessario creare directory, soprattutto durante l'installazione di vari strumenti e applicazioni, backup e ripristini. Sebbene sia possibile eseguire queste attività utilizzando uno script automatizzato, Ansible fornisce funzionalità migliori, consentendo di creare directory in host specifici specified.

Questo tutorial mostra come utilizzare il modulo file Ansible per creare, rimuovere e modificare i permessi della directory per gli host specificati.

Come creare una directory in Ansible

È possibile utilizzare uno dei seguenti metodi per creare una directory in Ansible:

Per creare una directory in Ansible utilizzando il modulo di comando, inserisci il comando mostrato di seguito:

$ ansible all -m comando -a "mkdir ~/backups"

Dopo aver inserito il comando precedente, dovresti ottenere l'output mostrato di seguito:

Inserisci la passphrase per la chiave '/home/user/.ssh/id_rsa':
[ATTENZIONE]: considera l'utilizzo del modulo file con state=directory anziché eseguire 'mkdir'.  Se è necessario utilizzare il comando perché il file è insufficiente, è possibile aggiungere "warn: false" a questa attività di comando o impostare "command_warnings=False" in ansible.cfg per eliminare questo messaggio.
35.222.210.12 | CAMBIATO | rc=0 >>

Verifica che l'inventario degli host Ansible in /etc/ansible/hosts contenga le informazioni corrette sui tuoi host remoti.

Sebbene il modulo di comando sia semplice da usare su un singolo host Ansible, diventa molto inefficiente quando si tratta di più host con directory e attività diverse.

Per contrastare questo inconveniente, utilizzeremo il modulo file Ansible e costruiremo un playbook contenente gli host che vogliamo usare e le directory che vogliamo creare.

NOTA: Il modulo file può essere utilizzato anche come singolo comando in Ansible, ma funziona in modo molto simile al modulo di comando.

Per utilizzare un playbook Ansible, crea un file YAML e inserisci le seguenti voci per creare una directory:

- host: tutte le attività:
- nome: Ansible file module create directory
file:
percorso: ~/backup
stato: directory

Salva il file e usa ansible-playbook per creare le directory:

ansible playbook mkdir.yml

Questo dovrebbe produrre un output come quello sotto, indicando che le azioni sono state eseguite correttamente utilizzando il file playbook specificato.

Giocare tutto] ********************************************** ************************************************** *************
COMPITO [Raccolta dati] ********************************************* ************************************************** **
Inserisci la passphrase per la chiave '/home/user/.ssh/id_rsa':
bene: [35.222.210.12]
TASK [Ansible file module create directory] **************************************** ***********************************
bene: [35.222.210.12]
RIPRODUZIONE ************************************************** ************************************************** ***********
35.222.210.12 : ok=2 modificato=0 irraggiungibile=0 fallito=0 saltato=0 salvato=0 ignorato=0

Come creare più directory con elementi

I playbook Ansible ti consentono anche di creare più directory utilizzando l'istruzione with_items nel file YAML.

Ad esempio, per creare backup per i tre servizi, MySQL, repository e config, puoi creare l'attività mostrata nel file YAML di seguito:

- host: tutte le attività:
- nome: Ansible crea più directory con_items
file:
percorso: ~/backup/elemento
stato: directory
with_items:
- 'mysql'
- 'deposito'
- 'configurazione'

Salva il file sopra ed eseguilo con ansible-playbook.

$ ansible-playbook mkdir_multi.yml PLAY [tutti] ********************************************* ************************************************** ************************************************** ************************************************** ***
COMPITO [Raccolta dati] ********************************************* ************************************************** ************************************************** ****************************************
Inserisci la passphrase per la chiave '/home/user/.ssh/id_rsa':
bene: [35.222.210.12]
ATTIVITÀ [Ansible crea più directory with_items] ******************************************* ************************************************** ************************************************** *************
cambiato: [35.222.210.12] => (item=mysql)
cambiato: [35.222.210.12] => (elemento=repository)
cambiato: [35.222.210.12] => (voce=config)
RIPRODUZIONE ************************************************** ************************************************** ************************************************** **************************************************
35.222.210.12 : ok=2 modificato=1 irraggiungibile=0 fallito=0 saltato=0 salvato=0 ignorato=0

Il playbook sopra dovrebbe creare più directory, come ~/backups/mysql, ~/backups/repository e ~/backups/config.

$ ls -la

L'output dell'elenco di directory è come mostrato di seguito:

totale 0
drwxrwxr-x. 5 debian debian  51 marzo 6 17:26 .
drwx------. 6 debian debian 117 6 marzo 17:26…
drwxrwxr-x. 2 debian debian   6 marzo  6 17:26 configurazione
drwxrwxr-x. 2 debian debian   6 marzo  6 17:26 mysql
drwxrwxr-x. 2 debian debian   6 marzo  6 17:26 repository

Come impostare i permessi per una directory

Ansible ti consente di specificare i permessi per una directory usando la direttiva mode. Considera il seguente playbook, che crea una directory e imposta le autorizzazioni:

- host: tutti
compiti:
- nome: Ansible crea la directory e imposta i permessi
file:
percorso: /backup
stato: directory
modalità: "u=rw,g=wx,o=rwx"
diventa: sì

Nella voce sopra, abbiamo creato una directory in /. Avevamo anche bisogno di diventare root, da qui la voce diventa: yes.

$ autorizzazione ansible-playbook.yml PLAY [tutti] ********************************************* ************************************************** ************************************************** ************************************************** ***
COMPITO [Raccolta dati] ********************************************* ************************************************** ************************************************** ****************************************
Inserisci la passphrase per la chiave '/home/user/.ssh/id_rsa':
bene: [35.222.210.12]
ATTIVITÀ [Ansible crea la directory e imposta i permessi] ***************************************** ************************************************** ************************************************** ****************
cambiato: [35.222.210.12]
RIPRODUZIONE ************************************************** ************************************************** ************************************************** **************************************************
35.222.210.12 : ok=2 modificato=1 irraggiungibile=0 fallito=0 saltato=0 salvato=0 ignorato=0

Se visualizzi i permessi della directory che abbiamo creato, vedrai quanto segue:

$ ls -lrt / | backup di grep

L'output è come mostrato di seguito:

drw--wxrwx.   2 root root    6 marzo  6 17:36 backup

Come modificare ricorsivamente i permessi in una directory

Per modificare ricorsivamente i permessi di una directory e dei suoi file, è sufficiente specificare la voce ricorsiva, come mostrato di seguito:

- host: tutti
compiti:
- nome: Ansible crea la directory e imposta i permessi
file:
percorso: /backup
stato: directory
modalità: "u=rw,g=wx,o=rwx"
ricorsivo: sì
diventa: sì

Come impostare i permessi in più directory

Anche impostare le autorizzazioni per più directory in Ansible è semplice come poche righe di voci. Considera il seguente playbook.

- host: tutti
compiti:
- nome: Ansible crea una directory multipla con autorizzazioni
file:
percorso: " articolo.sentiero "
modalità: "elemento.modalità"
stato: directory
with_items:
- percorso: '~/backups/mysql', modalità: '0777'
- percorso: '~/backup/repository', modalità: '0755'
- percorso: '~/backup/config', modalità: '0707'

Come eliminare una directory in Ansible

Per rimuovere una directory e tutto il suo contenuto utilizzando un playbook Ansible, specifica lo stato come assente, come mostrato di seguito:

- host: tutti
compiti:
- nome: directory di eliminazione Ansible
file:
percorso: /backup
stato: assente
diventa: sì

Questo comando rimuoverà la directory e tutti i file e le directory figli.

NOTA: Assicurati di avere i permessi per la directory su cui stai lavorando.

Come creare una directory con timestamp

In alcuni casi, potrebbe essere necessario creare una directory con allegato un timestamp, che può essere molto utile, soprattutto durante la creazione di backup. Per creare una directory con timestamp, possiamo usare la variabile ansible_date_time.

Considera il seguente playbook:

- host: tutti
compiti:
- nome: Ansible aggiungi timestamp alla directory
file:
percorso: "/backups/mysqlansible_date_time.Data"
stato: directory
modalità: "0777"
diventa: sì

Una volta eseguito il playbook, avrai una directory con il timestamp.

$ ls -l

L'elenco delle directory dovrebbe essere come mostrato di seguito:

totale 0 drwxrwxrwx. 2 radice radice 6 marzo 6 18:03 mysql2021-03-06

NOTA: Per evitare errori, controlla sempre la sintassi del file YAML che intendi utilizzare in Ansible.

Conclusione

Questo tutorial ti ha mostrato che lavorare con i moduli Ansible è molto facile e intuitivo, rendendo più semplice l'automazione di attività complesse. Utilizzando il modulo file Ansible, puoi creare una o più directory e aggiungere autorizzazioni per ciascuna. Puoi anche usare lo stesso modulo per rimuovere una directory Per maggiori informazioni su come usare il modulo Ansible file, controlla la documentazione ufficiale nella pagina delle risorse.

I 5 migliori giochi arcade per Linux
Al giorno d'oggi, i computer sono macchine serie utilizzate per i giochi. Se non riesci a ottenere il nuovo punteggio più alto, saprai cosa intendo. I...
Battaglia per Wesnoth 1.13.6 Sviluppo rilasciato
Battaglia per Wesnoth 1.13.6 rilasciato il mese scorso, è la sesta versione di sviluppo nella 1.13.x e offre una serie di miglioramenti, in particolar...
Come installare League Of Legends su Ubuntu 14.04
Se sei un fan di League of Legends, questa è un'opportunità per testare League of Legends. Nota che LOL è supportato su PlayOnLinux se sei un utente L...