GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare un file in Ansible

Introduzione

Ansible è uno strumento Infrastructure as Code che consente di utilizzare un'unica posizione centrale (nodo di controllo Ansible) per monitorare e controllare un gran numero di server remoti (host).

Usa Ansible per impostare una serie di attività che gli host remoti possono eseguire, inclusa la creazione di nuovi file e directory.

Questo tutorial illustra diversi modi in cui puoi utilizzare Ansible per creare file su host remoti.

Prerequisiti

  • Un sistema che esegue Ubuntu 20.04
  • Accesso alla riga di comando/finestra del terminale
  • Ansible installato e configurato (consulta le nostre guide su Installazione di Ansible su Windows o Installazione di Ansible su Ubuntu)

Creazione di un Playbook Ansible

I playbook Ansible sono elenchi di attività che vuoi che i tuoi host remoti eseguano. Possono essere salvati e riutilizzati, consentendoti di automatizzare processi complessi.

Ogni comando che desideri inviare a un host remoto, inclusa la creazione di file e cartelle, è un'attività che devi includere in un playbook. Una volta eseguito un playbook, il tuo host remoto esegue tutte le attività in esso definite.

Per creare un playbook Ansible, usa il comando:

sudo nano /etc/ansible/playbook.yaml

Questo comando crea un file .yaml chiamato 'playbook' nella cartella di installazione di Ansible. Utilizzeremo le attività in playbook.yaml file per creare file e cartelle sui nostri host remoti.

L'utilizzo della funzione di dry run di Ansible consente agli utenti di eseguire un playbook senza apportare modifiche ai server. Utilizza la modalità di controllo integrata per verificare la presenza di errori in un playbook prima dell'esecuzione.

Creazione di un file vuoto

Il modo più veloce per creare un file vuoto è utilizzare il file di Ansible modulo.

Aggiungi la seguente configurazione al tuo playbook Ansible:

---

- hosts: all
  tasks:
  - name: Creating an empty file
    file:
      path: "/your path"
      state: touch

Il file sopra ha i seguenti componenti:

  • hosts : Definisce su quali host remoti dal tuo file di inventario Ansible desideri eseguire l'attività. Tutto significa che ogni host riceve il comando, ma puoi anche inserire il nome di una categoria host o di un singolo host.
  • tasks : Annuncia che l'host remoto deve eseguire un'attività.
  • name :consente di definire un nome per l'attività. Il nome è solo di riferimento e non ha alcuna influenza sull'attività stessa.
  • file :attiva il modulo file di Ansible per creare un nuovo file.
  • path :definisce il percorso per il nuovo file sul disco rigido dell'host remoto.
  • state :Simile al comando touch nel terminale Ubuntu, inserendo touch crea un file vuoto nella posizione che hai scelto.

Per eseguire il playbook, usa:

ansible-playbook /etc/ansible/playbook.yaml

Creazione di un file con contenuto

Se desideri creare un nuovo file con contenuto, puoi prima utilizzare il metodo sopra per creare un file vuoto, quindi utilizzare il blockinfile o lineinfile modulo per inserire contenuti.

Un modo più rapido consiste nell'usare la copy modulo. Anche se questo modulo viene utilizzato per copiare un file dal nodo di controllo all'host remoto, puoi includere il content parametro per aggiungere istantaneamente contenuto a un file vuoto.

Usa questa configurazione nel tuo playbook:

---

- hosts: all
  tasks:
  - name: Creating a file with content
    copy:
      dest: "/your path"
      content: |
        line 01
        line 02

Nel file abbiamo usato:

  • copy :attiva il modulo di copia di Ansible.
  • dest :Definisce il percorso per il tuo nuovo file.
  • content :Questo parametro aggiungerà line 01 e line 02 come contenuto del nuovo file.

Creazione di più file

Puoi creare più file utilizzando una singola attività in un playbook Ansible.

Utilizzare la configurazione seguente per creare più file:

---

- hosts: all
  tasks:
  - name: Create multiple files
    file: 
      path: "{{ item }}"
      state: touch
    with_items:
    - test01.txt
    - test02.txt
    - test03.txt
    - test04.txt

Nel file di configurazione sopra, abbiamo definito:

  • path :Il "{{ item }}" value significa che Ansible creerà un percorso separato per ogni rispettivo file. Per impostazione predefinita, questi file si trovano nella cartella Home dell'host remoto. Definisci un percorso diverso utilizzando /your_folder_path/"{{ item }}" .
  • with_items :questo parametro viene utilizzato per avviare un elenco di file da creare. Elenca tutti i file che vuoi. Nel nostro esempio, abbiamo creato un elenco di quattro file intitolato test .

Creazione di una directory

La creazione di una nuova directory utilizza la stessa configurazione di quando si crea un file vuoto. L'unica differenza è che sotto lo state parametro, si entra nella directory come valore:

---

- hosts: all
  tasks:
  - name: Creating a new directory
    file:
      path: "/your path"
      state: directory

Rimozione dei file

I playbook Ansible possono anche rimuovere i file esistenti. Per fare ciò, imposta lo state parametro su absent :

---

- hosts: all
  tasks:
  - name: Removing a file
    file:
      path: "/your path"
      state: absent

Se il file è già stato rimosso, questo comando non fa nulla.

Impostazione delle autorizzazioni dei file

Con tutti gli esempi precedenti, puoi anche impostare l'autorizzazione per nuovi file e cartelle. Per questo, devi usare la mode parametro.

Ci sono due modi per farlo:

  • Utilizzo del formato in modalità ottale: Puoi utilizzare numeri ottali, come 0644 o 0777. Non dimenticare lo 0 iniziale, poiché ometterlo può portare a risultati imprevisti.
  • Utilizzo del formato in modalità simbolica: Puoi utilizzare valori come u=rwx , g=rx o o=rx , dove u sta per proprietario , g sta per gruppo e o sta per altri . Le autorizzazioni sono definite come r per leggere , w per scrivi e x per esegui .

Ad esempio, puoi utilizzare il valore ottale 0755, mentre definisci il proprietario:

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: 0755
      owner: test

Puoi anche usare l'equivalente simbolico di 0755:

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: u=rwx,g=rx,o=rx
      owner: test

Ubuntu
  1. Come creare un Playbook Ansible

  2. Come creare uno scambio in Linux

  3. Come creare un utente Linux usando Ansible

  4. Come installare Ansible su Linux Mint 20

  5. Come creare un file temporaneo nello script della shell?

Come creare un file ISO in Ubuntu 18.04 LTS

Come creare un file in Linux usando Terminal

Come creare collegamenti sul desktop su Ubuntu

Come creare un file del sito web

Come creare un file Tar gz

Come creare un filesystem XFS