GNU/Linux >> Linux Esercitazione >  >> Linux

Un'introduzione ai fatti Ansible

Ansible fatti sono dati raccolti sui nodi di destinazione (nodi host da configurare) e restituiti ai nodi controller. I fatti Ansible sono archiviati in formato JSON e vengono utilizzati per prendere decisioni importanti sulle attività in base alle loro statistiche. I fatti sono in un ansible_facts variabile, che è gestita da Ansible Engine. I fatti ansible svolgono un ruolo importante nella sincronizzazione con gli host in base ai dati in tempo reale .

[ Potrebbe piacerti anche: Un'introduzione a Ansible Tower ]

Cosa sono esattamente i fatti Ansible e come vengono utilizzati?

I fatti ansible sono i dati e le proprietà di sistema specifici dell'host a cui ci si connette. Un fatto può essere l'indirizzo IP, le informazioni sul BIOS, le informazioni sul software di un sistema e persino le informazioni sull'hardware. Fatti attendibili aiutano l'amministratore a gestire gli host in base alla loro condizione attuale piuttosto che intraprendere le azioni direttamente senza avere alcuna informazione sullo stato del sistema.

Ecco uno scenario:devi installare il server web Apache su tutti i tuoi host Linux. Sai che gli host basati su Red Hat Enterprise Linux (RHEL) funzionano con Red Hat Package Manager (RPM) e yum/dnf . Altre distribuzioni Linux utilizzano i propri gestori di pacchetti e quindi non sarebbe possibile eseguire la stessa attività su sistemi diversi senza modifiche e riferimento a tali differenze. Anche i nomi dei pacchetti differiscono tra le distribuzioni. Ad esempio, sui sistemi RHEL, il pacchetto del server Web Apache è httpd, mentre in altre distribuzioni è denominato apache2.

Ecco un playbook di Ansible per dimostrare il problema:

- hosts: all
  tasks:
  - package:
      name: "httpd"
      state: present
    when ansible_facts["os_name"] == "RedHat"
  - package:
      name: "apache2"
      state: present
    when ansible_facts["os_name"] == "Ubuntu"

Qui, lo script raccoglierà informazioni sul sistema utilizzando i fatti Ansible e quindi eseguirà l'operazione di conseguenza. Quando si installa su sistemi RHEL, salta automaticamente il pacchetto basato su Ubuntu e viceversa. Allo stesso modo, puoi utilizzare i fatti Ansible per eseguire un'operazione se il sistema ha una quantità minima di risorse disponibili.

In breve, utilizzando Ansible fact, un amministratore di sistema può rendere Ansible più intelligente specificando parametri per quando eseguire attività e quando non farlo.

Accesso ai fatti

Ansible fact utilizza il setup modulo per raccogliere fatti ogni volta prima di eseguire i playbook.

Utilizzo dei comandi ad hoc di Ansible

1. Accedi ai fatti Ansible utilizzando comandi ad hoc

La setup il modulo recupera tutti i dettagli dagli host remoti ai nostri nodi controller e li scarica direttamente sul nostro schermo affinché i fatti siano visibili agli utenti.

ansible all -m setup

2. Filtrare un valore specifico dai fatti Ansible

Qui, l'setup il modulo viene utilizzato per recuperare i fatti sul sistema e, inoltre, utilizzerà il filtro argomento per visualizzare il valore dai fatti Ansible.

ansible all -m setup -a "filter=ansible_cmdline"

Nota :i fatti Ansible vengono recuperati solo quando si lavora con i playbook. Per accedere ai fatti di Ansible utilizzando comandi ad hoc, usa il setup modulo.

Utilizzo del playbook Ansible

Per accedere alle variabili dei fatti di Ansible nel playbook di Ansible, dobbiamo utilizzare il nome effettivo senza utilizzare ansible parola chiave.

ansible_facts["ansible_system"] ❌

ansible_facts["sistema"] ✔️

Il gather_facts modulo dal playbook Ansible esegue il setup modulo per impostazione predefinita all'inizio di ogni playbook per raccogliere informazioni sugli host remoti.

3. Accedere ai fatti utilizzando il playbook Ansible

Recupera i fatti di Ansible e mostrali utilizzando un playbook.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts

4. Accedere a un fatto specifico utilizzando un playbook Ansible

Recuperare i fatti Ansible, filtrarli e visualizzarli utilizzando un playbook.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts["cmdline"]

Fatti Ansible e tipo di dati

I fatti Ansible sono archiviati in formato JSON e possono essere inseriti in tre categorie principali:

Elenco :Memorizza l'elenco degli elementi e le informazioni memorizzate sono scritte tra parentesi quadre [] . Questi sono per lo più fatti che possono avere più valori, ad esempio system_capablities . Si accede all'elenco tramite parentesi quadre e specificando l'indice.

    ansible_facts["all_ipv6_addresses"][1]
    ansible_facts["all_ipv6_addresses"][2]

Dizionario :archivia i dati come una raccolta di coppie chiave-valore e le informazioni vengono archiviate tra parentesi graffe {} . Questi sono principalmente i fatti che hanno sotto-fatti al loro interno, ad esempio, memory_mb . È possibile accedere al dizionario utilizzando l'operatore punto.

    ansible_facts.memory_mb.real

Testo non sicuro Ansible :Questo tipo di variabile non ha alcuna sottoparte e memorizza i dati direttamente, ad es. machine . È possibile accedere direttamente a Ansible Unsafe Text utilizzando il nome del fatto.

    ansible_facts["machine"]

Usa type_debug filtro per controllare il tipo di dati per i fatti Ansible.

- hosts: all
  tasks:
  - debug:
      var: ansible_facts["all_ipv6_addresses"]|type_debug
  - debug:
      var: ansible_facts["memory_mb"]|type_debug
  - debug:
      var: ansible_facts["machine"]|type_debug

type_debug filter richiede il tipo di dati per il fatto specificato senza stampare il valore per il fatto.

[ Cerchi ulteriori informazioni sull'automazione dei sistemi? Inizia con The Automated Enterprise, un libro gratuito di Red Hat. ] 

Concludi

I fatti ansible sono dati sul sistema che si desidera configurare. Questi fatti rendono intelligente il tuo sistema Ansible fornendo le condizioni per quando elaborare alcune attività. Puoi anche elaborare non specificando o utilizzando i fatti Ansible, ma ciò renderebbe il lavoro come amministratore di sistema più frenetico poiché lo script potrebbe non riuscire o modificare alcuni dei file che non avrebbero mai dovuto essere modificati.

Per ulteriori informazioni sui fatti Ansible, consultare la documentazione ufficiale.


Linux
  1. Introduzione a GNU Autotools

  2. Linguaggio di programmazione C - Introduzione

  3. Un'introduzione al comando diff

  4. Introduzione a Docker

  5. Ansible:sudo senza password

Un'introduzione a bpftrace per Linux

Introduzione a Python Panda

Come creare e utilizzare fatti personalizzati in Ansible

Un'introduzione a Vivaldi Browser su Linux

Introduzione alla piattaforma di automazione Ansible

Una breve introduzione ad Ansible Vault