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

Este es el segundo artículo de una serie que utiliza roles 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 este artículo, vio un ejemplo en el que cambió el modo SELinux usando system.role-selinux papel. En este artículo, examino detalladamente el papel de la red para que pueda cambiar las conexiones de red de la máquina remota con solo un libro de jugadas.

NetworkManager administra los parámetros de 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 utilizada para crear y modificar archivos de conexión 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 diferentes columnas. La primera columna, DISPOSITIVO, indica la interfaz de red. el PEGAR La columna indica qué tipo de conexión es. el EXPRESAR columna indica el estado de la conexión, y la última, ENLACE, es un conjunto de parámetros que se pueden configurar para un dispositivo. Cada conexión tiene un nombre o un identificador que la identifica.

Para mostrar una lista de todas las conexiones que puede utilizar:

$ nmcli con show

Utilizando 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é las funciones del sistema de Ansible. En los roles del sistema, tiene la rhel-system-roles.network rol, que es la forma más fácil de configurar y administrar la configuración de red en los nodos administrados.

Primero, use este rol para configurar los ajustes de red en un nodo administrado.

Aquí tienes la server1.example.com máquina administrada. Ya he creado la entrada para el nodo administrado en el archivo de inventario.

Notar: asegúrese de que su nodo administrado tenga dos conexiones Ethernet porque está agregando una nueva conexión. Esta segunda interfaz de red debe estar disponible.

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

---
- 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 descubrirá la interfaz secundaria. Mostrar la dirección MAC de eno1 utilizando:

$ ip a

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

Ahora, después de la instalación de la tarea de servicio 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 guiaré a través de cada configuración 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
  • estado: activar la conexión mediante el up opción
  • ip: deshabilite la opción DHCP y asigne una dirección IP usando este parámetro

Usé las variables requeridas 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 comprobar 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

tratar ping la dirección IP del red estática conexión y, si tiene éxito, ha agregado con éxito la nueva conexión de red.

Verifique si una nueva conexión se agregó con éxito 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.

Índice

Conclusión

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 varias máquinas a la vez simplemente creando un grupo de hosts. Estos roles de red del sistema verifican muchas configuraciones mientras se ejecuta el libro de jugadas, confirman que NetworkManager se está ejecutando y prueban la conectividad dentro del propio libro de jugadas. Este es un gran ejemplo de cómo puede usar los roles del sistema para automatizar configuraciones en sus sistemas.

Artículos de interés

Subir