GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar los ajustes de red con los roles del sistema Ansible

Este es el segundo artículo de una serie que utiliza funciones del sistema Ansible. En el artículo anterior, le presenté a Ansible y los roles del sistema y brindé algunos ejemplos. Los roles del sistema lo ayudan a administrar tareas a nivel del sistema operativo como SELinux, administrar la configuración de red, NTP, etc. En ese artículo, vio un ejemplo en el que cambió el modo SELinux usando system.role-selinux role. En este artículo, analizo el rol de la red en detalle para que pueda modificar las conexiones de red de la máquina remota con un solo libro de jugadas.

NetworkManager administra la configuración de la red, como la configuración de la interfaz de red y la conexión. Básicamente, es un demonio que monitorea y administra la configuración de la red. Utiliza un archivo en /etc/sysconfig/network-scripts para almacenarlos. nmcli es la utilidad que se usa para crear y editar archivos de conexiones desde un indicador de shell. Para listar las conexiones de su máquina local use:

$ nmcli dev status

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

En el resultado anterior, puede ver varias columnas. La primera columna, DISPOSITIVO , indica la interfaz de red. El TIPO columna muestra qué tipo de conexión es esta. El ESTADO columna indica el estado de la conexión, y la última, CONEXIÓN , es una colección de ajustes que se pueden configurar para un dispositivo. Cada conexión tiene un nombre o ID que la identifica.

Para mostrar una lista de todas las conexiones, puede usar:

$ nmcli con show

Usando el nmcli utilidad, puede agregar conexiones de red y asignar direcciones IPv4 o IPv6 para crear conexiones de red. Sin embargo, como sabe, desea automatizar tareas manuales que normalmente haría con nmcli . Desea administrar los nodos de la red mediante un libro de jugadas de Ansible.

En Ansible, tiene tres módulos importantes que lo ayudan a administrar los nodos:servicio, daemon y configuración del sistema. También puede utilizar estos módulos para gestionar redes. En el artículo anterior, analicé los roles del sistema Ansible. En system-roles, tiene el rhel-system-roles.network función, que es la forma más fácil de configurar y administrar la configuración de red en los nodos administrados.

Comience usando este sistema de red rol para configurar los ajustes de red en un nodo administrado.

Aquí tienes el server1.example.com máquina administrada. Ya creé la entrada del nodo administrado en el archivo de inventario.

Nota :Asegúrese de que su nodo administrado tenga dos conexiones Ethernet porque agrega una nueva conexión. Esa segunda interfaz de red debe estar disponible.

Antes de realizar cualquier operación, confirme que el servicio NetworkManager esté iniciado y habilitado en su nodo administrado. Haga esto usando un libro de jugadas. Para esta tarea, use el módulo de servicio en service.yml archivo.

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

Ejecute este libro de jugadas:

$ ansible-playbook service.yml

Si el libro de jugadas se ejecuta correctamente sin ningún error, el servicio se inicia y habilita en la máquina del nodo administrado.

El nombre de la interfaz secundaria es eno1 para que pueda encontrar la dirección MAC de esta interfaz. Debido a que está utilizando esta dirección MAC, su libro de jugadas encontrará la interfaz secundaria. Mostrar la dirección MAC de eno1 usando:

$ ip a

La dirección MAC de server1.example.com es 52:54:00:fe:2f:b8 . Usa esto en el libro de jugadas.

Ahora, después de la tarea de servicio, instala system-roles en el controlador:

$ yum install rhel-system-roles

Este comando instalará todas las funciones del sistema en el directorio predeterminado de la función.

Ahora escriba un libro de jugadas para agregar una nueva conexión en el nodo administrado:

---
- 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

Este es un libro de jugadas completo. Te explicaré cada parámetro paso a paso:

objetivo_mac - Esta es la dirección MAC de la segunda interfaz ethernet. Esto ayudará a encontrar la interfaz correcta en un nodo administrado.

conexión_de_red - Esta variable contiene información para nuevas conexiones:

  • nombre:nombre de la nueva conexión
  • tipo:nuevo tipo de conexión
  • mac:la variable target_mac
  • state:active la conexión usando el up opción
  • ip:deshabilite la opción DHCP y asigne una dirección IP usando este parámetro

Usé variables que se requieren para ejecutar el rol del sistema de red. Ahora ejecute este libro de jugadas:

$ ansible-playbook networkconfiguration.yml

Este libro de jugadas configurará una conexión de red estática con una dirección IP estática.

Para verificar la configuración, inicie sesión en server1.example.com y confirme la conexión recién agregada:

$ nmcli connection show

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

Intenta ping la dirección IP de la red-estática conexión, y si tiene éxito, entonces agregó con éxito la nueva conexión de red.

Verifique si una nueva conexión se agregó correctamente o no utilizando los comandos ad hoc de la máquina controladora:

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

Este comando le mostrará el mismo resultado que se muestra en los pasos anteriores.

Resumir

Este artículo muestra que puede configurar conexiones de red mediante roles del sistema Ansible. Este pequeño libro de jugadas reduce las tareas manuales y configura la conexión de red de muchas máquinas a la vez simplemente creando un grupo de hosts. Estos roles de red del sistema verifican muchos parámetros mientras ejecutan el libro de jugadas, confirman que NetworkManager se está ejecutando y prueban la conectividad en el propio libro de jugadas. Este es un gran ejemplo de cómo puede usar funciones del sistema para automatizar configuraciones en sus sistemas.


Linux
  1. Cómo usar Ansible para configurar el monitoreo del sistema con Prometheus

  2. Cómo configurar la virtualización en Redhat Linux

  3. ¿Cómo configurar Systemd para convertir un script simple con Standardio en un servicio de red?

  4. Cómo:Introducción a Ansible

  5. Cómo obtener estadísticas del sistema con node.js

Cómo configurar el puente de red en Ubuntu

Cómo configurar Linux como un enrutador estático

¿Cómo configurar los ajustes de VPN?

Cómo configurar PHP-FPM con NGINX

Cómo configurar los ajustes de BoxTrapper

Cómo configurar la dirección IP estática en el sistema Linux