Tutorial del modulo file ansible

Tutorial del modulo file ansible
Ansible è un'incredibile utilità di automazione che viene ricca di funzionalità e strumenti per gestire gli host remoti. Funziona implementando moduli per eseguire attività e operazioni specifiche.

Un modulo pratico in Ansible è il modulo file. Questo modulo è responsabile dell'esecuzione di attività come la creazione di file e directory, eliminazione di file e directory, creazione di collegamenti simbolici soft e duri, aggiunta e modifica delle autorizzazioni di file e directory e altro ancora.

Questa guida ti guiderà attraverso come lavorare con il modulo file ansible. Illustreremo questo usando una raccolta di esempi e playbook.

NOTA: Assicurati di avere accesso agli host remoti specificati nel file di inventario di Ansible.

Come funziona il modulo file ansible

L'ansible.costruito.Il modulo file è nell'installazione ansible predefinita come parte di Ansible-Core. Ansible consiglia di fare riferimento al modulo usando il "nome completamente qualificato" anziché il nome del modulo breve per evitare conflitti con moduli di nomi simili.

Il modulo file contiene una raccolta di parametri predefiniti per la gestione dei file. Usiamo questi parametri per configurare le azioni eseguite sull'host remoto.

I seguenti sono parametri importanti che è possibile utilizzare:

  1. Proprietario - Nome utente dell'utente che possiede il file e la directory creati
  2. Sentiero - Percorso al file o alla directory da gestire
  3. Modalità - Modalità autorizzazione da impostare sul file o sulla directory specificati. Usa la notazione ottale all'interno di una coppia di citazioni singole.
  4. Gruppo - Imposta la proprietà del gruppo per un file o una directory
  5. Forza - Un valore booleano utilizzato per forzare la creazione di collegamenti simil se il file di origine non è attualmente disponibile (ma aggiunto in seguito) o il sintesi di destinazione esiste già.
  6. Seguire - Se esistono collegamenti del filesystem, seguili.
  7. Attributi - Imposta gli attributi per il file o la directory specificata. Simile all'utilità Chattr predefinita in Linux
  8. Stato - Definisce il contesto per la creazione di un file. Le opzioni accettate includono:
    1. Tocco - Crea un file vuoto
    2. Directory - Crea una directory
    3. Difficile - Crea un collegamento duro
    4. Collegamento - Crea un collegamento soft
    5. Assente - Elimina i file e la directory in modo ricorsivo e i collegamenti Unkink

Controlla i documenti del modulo del file Ansible per altri parametri predefiniti.

Il modo migliore per imparare a lavorare con il modulo di file Ansible è per esempi.

Modulo di file ansible: esempi pratici

NOTA: Questa guida presuppone che tu abbia un nodo di controllo Ansible e i tuoi host di destinazione aggiunti al tuo file di inventario.

Come creare un file vuoto

Per creare un file vuoto utilizzando il modulo file Ansible, impostiamo lo stato su come illustrato nel playbook.

---
- Host: tutto
compiti:
- Nome: Crea file vuoto
file:
Path: $ home/touch_file
Stato: tocco

Il playbook sopra contiene la configurazione di ANSIBE di base:

  1. ospite - Imposta gli host target remoti per eseguire il playbook. È possibile definire un gruppo di host remoti o un singolo host.
  2. compiti - Dice ad Ansible di eseguire l'attività specificata sull'host remoto.
  3. nome - Specifica il nome dell'attività da eseguire
  4. file - Chiama il modulo file Ansible
  5. sentiero - Definisce un percorso sulla macchina remota in cui viene creato il file.
  6. stato - Crea un file vuoto usando il tocco.

Salva il playbook ed eseguilo sugli host remoti:

Ansible-PlayBook EmptyFile.YML

Come creare più file

Ansible ti consente di creare più file in un'unica attività. Di seguito è riportato un esempio di playbook:

---
- Host: tutto
compiti:
- Nome: crea più file
file:
Path: $ home/item
Stato: tocco
with_items:
- File1.C
- intestazione.H
- file2.Py
- File3.TXT
- file4.Rb

Nel playbook, utilizziamo due voci Ansible:

  1. articolo - Dice ad Ansible di creare un percorso unico per i file specificati.
  2. con_item - Crea un elenco di file da creare sull'host remoto. Puoi aggiungere tanti file ed estensioni che vedi idoneo.

Esegui Ansible-Playbook per creare più file specificati:

file multipli Ansible-Playbook.YML

Come creare un file con contenuto

Negli esempi sopra, creiamo file vuoti usando il comando touch. Per creare un file con contenuto, possiamo utilizzare il modulo Copia e impostare il parametro del contenuto sul contenuto del file.

Di seguito è riportato un esempio di playbook:

---
- Host: tutto
compiti:
- Nome: crea file con contenuto
copia:
dest: $ home/ciao.CPP
Contenuto: |
#includere
Utilizzo dello spazio dei nomi std
int main ()
cout << "hello world" << endl;
restituzione 0;

I moduli e i parametri nel playbook sopra sono:

  1. copia - Coinvolge il modulo di copia Ansible.
  2. dest - Il percorso di destinazione per il tuo file
  3. contenuto - Il contenuto da aggiungere al tuo file. Ogni riga viene aggiunta a una nuova riga.

Esegui il playbook:

Ansible-Playbook con Content.YML

Come creare una directory

Il playbook utilizzato per creare una directory utilizzando il modulo file Ansible è simile alla creazione di un file vuoto. Tuttavia, come mostrato di seguito, abbiamo impostato lo stato su "directory" anziché "file":

---
- Host: tutto
compiti:
- Nome: CreateEDirectory
file:
Path: $ Home/Ansible-Dir
Stato: directory

Come eliminare un file o un collegamento simbolico

La rimozione di file, directory o collegamenti simbolici è molto semplice; Tutto quello che dobbiamo fare è impostare lo stato in assenza, come mostrato nel playbook qui sotto:

---
- Host: tutto
compiti:
- Nome: Rimuovi i file
file:
Path: $ Home/Ansible-Dir
Stato: assente

Il playbook non farà nulla se il file specificato non esiste.

Come cambiare il permesso di una directory

Usiamo i parametri del proprietario, del gruppo e della modalità del Playbook per modificare l'autorizzazione di una directory.

L'esempio seguente imposterà le autorizzazioni specificate sulla directory.

---
- Host: tutto
diventa vero
compiti:
- Nome: ModifyDirpermissions
file:
Path: /var /log
Stato: directory
Proprietario: radice
Gruppo: radice
Modalità: 0755

Nell'esempio di playbook sopra, setiamo diventa: vero. Ciò è necessario quando si impostano le autorizzazioni per altri utenti, tranne ansible_user

  1. Usa la notazione ottale per specificare le autorizzazioni, incluso il principale 0.

Usando la modalità simbolica

Ansible consente di impostare le autorizzazioni in modalità simbolica anziché in formato ottale. La modalità seguente è equivalente a 0777.

---
- Host: tutto
diventa vero
compiti:
- Nome: ModifyDirpermissions in formato simbolico
file:
Path:/var/log/
Stato: directory
Modalità: u = rwx, g = rwx, o = rwx

NOTA: L'impostazione 0777 su una directory come /var /log non è la migliore pratica e l'abbiamo usata qui solo a scopo illustrativo.

Modifica le autorizzazioni della directory in modo ricorsivo

Se si desidera modificare le autorizzazioni su una directory in modo ricorsivo, è possibile utilizzare il parametro ricorrente come mostrato nel playbook qui sotto:

---
- Host: tutto
diventa vero
compiti:
- Nome: ModifyDirperMissionsrecursivamente
file:
Path:/var/log/
Stato: directory
Proprietario: radice
Gruppo: radice
Modalità: 0755
RECORSE: vero

Impostazione Recurrse: True influenzerà i file all'interno della directory genitore specificata.

Come creare un collegamento simbolico

La creazione di un collegamento simbolico utilizzando il modulo file ansible è semplice come la creazione di una directory vuota. In questo caso, abbiamo impostato lo stato su collegamento come mostrato nel playbook di esempio seguente:

---
- Host: tutto
- diventa vero
compiti:
- Nome: createasymlink
file:
SRC: $ Home/SRC_FILE
dest: /etc /dest_symlink
Stato: collegamento

Come eliminare un collegamento simbolico

La rimozione di un collegamento simbolico è simile alla rimozione di un file normale.

---
- Host: tutto
- diventa vero
compiti:
- Nome: RemoveasyMlink
file:
Path: /etc /dest_symlink
Stato: assente

Come modificare il tempo di accesso

È possibile modificare il tempo di accesso e modifica utilizzando i parametri Access_time e Modification_time.

Esempio di playbook:

- diventa vero
compiti:
- Nome: ModifyAccessandModifiedTime
file:
Path:/etc/ansible/host
Stato: file
Access_time: ora
modifica_time: "202110041123.11 "

Impostiamo Access_time come ora corrente utilizzando la funzione ora.

È inoltre possibile fornire tempo per i parametri Access_time e Modification_time nel formato (come stringa):

Aaaassico.Ss

Conclusione

Questa guida ti ha aiutato a capire come lavorare con il modulo di file Ansible in un playbook.