GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare le impostazioni di rete con i ruoli di sistema Ansible

Questo è il secondo articolo di una serie che utilizza i ruoli di sistema Ansible. Nell'articolo precedente, ti ho presentato Ansible e i ruoli di sistema e ho fornito alcuni esempi. I ruoli di sistema ti aiutano a gestire attività a livello di sistema operativo come SELinux, gestire le impostazioni di rete, NTP, ecc. In quell'articolo, hai visto un esempio in cui hai cambiato la modalità SELinux usando system.role-selinux ruolo. In questo articolo, esaminerò in dettaglio il ruolo di rete in modo che tu possa modificare le connessioni di rete della macchina remota con un singolo playbook.

NetworkManager gestisce le impostazioni di rete come la configurazione dell'interfaccia di rete e la connessione. Fondamentalmente, è un demone che monitora e gestisce le impostazioni di rete. Utilizza un file in /etc/sysconfig/network-scripts per conservarli. nmcli è l'utilità utilizzata per creare e modificare i file di connessione da un prompt della shell. Per elencare le connessioni della tua macchina locale usa:

$ nmcli dev status

DEVICE		TYPE		STATE			CONNECTION
eno0		ethernet	connected		eno0
eno1		ethernet	disconnected		---
virbr0		bridge		connected		virbr0

Nell'output sopra, puoi vedere varie colonne. La prima colonna, DEVICE , indica l'interfaccia di rete. Il TIPO la colonna mostra che tipo di connessione è questa. Lo STATO la colonna indica lo stato della connessione e l'ultima, CONNESSIONE , è una raccolta di impostazioni che possono essere configurate per un dispositivo. Ogni connessione ha un nome o un ID che la identifica.

Per visualizzare un elenco di tutte le connessioni, puoi utilizzare:

$ nmcli con show

Usando il nmcli utilità, è possibile aggiungere connessioni di rete e assegnare indirizzi IPv4 o IPv6 per creare connessioni di rete. Tuttavia, come sai, vuoi automatizzare le attività manuali che normalmente faresti con nmcli . Vuoi gestire i nodi di rete utilizzando un playbook Ansible.

In Ansible, hai tre moduli importanti che ti aiutano a gestire i nodi:servizio, demone e impostazioni di sistema. Puoi anche utilizzare questi moduli per gestire le reti. Nell'articolo precedente, ho discusso dei ruoli di sistema di Ansible. In system-roles, hai il rhel-system-roles.network ruolo, che è il modo più semplice per configurare e gestire le impostazioni di rete sui nodi gestiti.

Inizia utilizzando questo sistema di rete ruolo per configurare le impostazioni di rete su un nodo gestito.

Qui hai il server1.example.com macchina gestita. Ho già creato la voce del nodo gestito nel file dell'inventario.

Nota :assicurati che il tuo nodo gestito abbia due connessioni Ethernet perché aggiunge una nuova connessione. Quella seconda interfaccia di rete deve essere disponibile.

Prima di eseguire qualsiasi operazione, verificare che il servizio NetworkManager sia avviato e abilitato sul nodo gestito. Fallo usando un playbook. Per questa attività, utilizza il modulo di servizio in service.yml file.

---
- name: playbook for starting and enabling the NetworkManager
  hosts: server1.example.com
  tasks:
  -    Name: start the service
       service:
         name: NetworkManager
         state: started
         enabled: true

Esegui questo playbook:

$ ansible-playbook service.yml

Se il playbook viene eseguito correttamente senza errori, il servizio viene avviato e abilitato sulla macchina del nodo gestito.

Il nome dell'interfaccia secondaria è eno1 così puoi trovare l'indirizzo MAC di questa interfaccia. Poiché stai utilizzando questo indirizzo MAC, il tuo playbook scoprirà l'interfaccia secondaria. Visualizza l'indirizzo MAC di eno1 utilizzando:

$ ip a

L'indirizzo MAC di server1.example.com è 52:54:00:fe:2f:b8 . Usalo nel playbook.

Ora, dopo l'attività di servizio, installa system-roles sul controller:

$ yum install rhel-system-roles

Questo comando installerà tutti i ruoli di sistema nella directory predefinita del ruolo.

Ora scrivi un playbook per aggiungere una nuova connessione sul nodo gestito:

---
- name: playbook for configuring second interface
  hosts: server1.example.com
  vars:
     target_mac: “52:54:00:fe:2f:b8”
     network_connection:
          -  name: static-network
             type: ethernet
             mac: “{{ target_mac }}”
             state: up
             ip :
               dhcp: no
               address:
                    -  192.168.0.5/24
  roles:
   -    rhel-system-roles.network

Questo è un playbook completo. Ti spiegherò ogni parametro passo dopo passo:

target_mac - Questo è l'indirizzo MAC della seconda interfaccia ethernet. Questo aiuterà a scoprire l'interfaccia corretta su un nodo gestito.

connessione_rete - Questa variabile contiene informazioni per nuove connessioni:

  • nome:nome della nuova connessione
  • tipo:nuovo tipo di connessione
  • mac:la variabile target_mac
  • stato:attiva la connessione utilizzando il up opzione
  • ip:disabilita l'opzione DHCP e assegna un indirizzo IP utilizzando questo parametro

Ho usato le variabili necessarie per eseguire il ruolo del sistema di rete. Ora esegui questo playbook:

$ ansible-playbook networkconfiguration.yml

Questo playbook configurerà una connessione di rete statica con un indirizzo IP statico.

Per verificare le impostazioni, accedi a server1.example.com e conferma la connessione appena aggiunta:

$ nmcli connection show

NAME		UUID		TYPE		DEVICE
eno0		adc52c70-…	ethernet	eno0   
static-network	1be30687-…	ethernet	eno1   
virbr0		0a9de672-…	bridge		virbr0

Prova a ping l'indirizzo IP della rete-statica connessione e, se ha esito positivo, hai aggiunto correttamente la nuova connessione di rete.

Verifica se una nuova connessione è stata aggiunta correttamente o meno utilizzando i comandi ad hoc dalla macchina controller:

$ ansible server1.example.com  -m shell -a 'nmcli con show'

Questo comando ti mostrerà lo stesso output mostrato nei passaggi precedenti.

Concludi

Questo articolo mostra che puoi configurare le connessioni di rete usando i ruoli di sistema Ansible. Questo piccolo playbook riduce le attività manuali e configura la connessione di rete di molte macchine contemporaneamente semplicemente creando un gruppo di host. Questi ruoli di rete del sistema controllano molti parametri durante l'esecuzione del playbook, confermano che NetworkManager è in esecuzione e verificano la connettività nel playbook stesso. Questo è un ottimo esempio di come puoi utilizzare i ruoli di sistema per automatizzare le configurazioni sui tuoi sistemi.


Linux
  1. Come utilizzare Ansible per impostare il monitoraggio del sistema con Prometheus

  2. Come configurare la virtualizzazione su Redhat Linux

  3. Come configurare Systemd per trasformare un semplice script con Standardio in un servizio di rete?

  4. Procedura:per iniziare con Ansible

  5. Come ottenere statistiche di sistema con node.js

Come configurare il bridge di rete in Ubuntu

Come configurare Linux come router statico

Come configurare le impostazioni VPN?

Come configurare PHP-FPM con NGINX

Come configurare le impostazioni di BoxTrapper

Come configurare l'indirizzo IP statico su un sistema Linux