GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer les paramètres réseau avec les rôles système Ansible

Ceci est le deuxième article d'une série utilisant les rôles système Ansible. Dans l'article précédent, je vous ai présenté Ansible et les rôles système et fourni quelques exemples. Les rôles système vous aident à gérer les tâches au niveau du système d'exploitation telles que SELinux, la gestion des paramètres réseau, NTP, etc. Dans cet article, vous avez vu un exemple où vous avez modifié le mode SELinux à l'aide de system.role-selinux rôle. Dans cet article, j'examine en détail le rôle réseau afin que vous puissiez modifier les connexions réseau de la machine distante avec un seul playbook.

NetworkManager gère les paramètres réseau tels que la configuration de l'interface réseau ainsi que la connexion. Fondamentalement, c'est un démon qui surveille et gère les paramètres réseau. Il utilise un fichier dans /etc/sysconfig/network-scripts pour les stocker. nmcli est l'utilitaire utilisé pour créer et modifier des fichiers de connexion à partir d'une invite de shell. Pour lister les connexions de votre machine locale utilisez :

$ nmcli dev status

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

Dans la sortie ci-dessus, vous pouvez voir différentes colonnes. La première colonne, APPAREIL , indique l'interface réseau. Le TYPE colonne indique de quel type de connexion il s'agit. L'ÉTAT colonne indique l'état de la connexion, et la dernière, CONNEXION , est un ensemble de paramètres pouvant être configurés pour un appareil. Chaque connexion a un nom ou un ID qui l'identifie.

Pour afficher une liste de toutes les connexions, vous pouvez utiliser :

$ nmcli con show

Utilisation de nmcli , vous pouvez ajouter des connexions réseau et attribuer des adresses IPv4 ou IPv6 pour créer des connexions réseau. Cependant, comme vous le savez, vous souhaitez automatiser les tâches manuelles que vous feriez normalement avec nmcli . Vous souhaitez gérer les nœuds du réseau à l'aide d'un playbook Ansible.

Dans Ansible, vous disposez de trois modules importants qui vous aident à gérer les nœuds :les paramètres du service, du démon et du système. Vous pouvez également utiliser ces modules pour gérer les réseaux. Dans l'article précédent, j'ai discuté des rôles système Ansible. Dans system-roles, vous avez le rhel-system-roles.network rôle, qui est le moyen le plus simple de configurer et de gérer les paramètres réseau sur les nœuds gérés.

Commencez par utiliser ce système de réseau rôle pour configurer les paramètres réseau sur un nœud géré.

Ici vous avez le server1.example.com machine gérée. J'ai déjà créé l'entrée du nœud géré dans le fichier d'inventaire.

Remarque :Assurez-vous que votre nœud géré dispose de deux connexions Ethernet, car il ajoute une nouvelle connexion. Cette seconde interface réseau doit être disponible.

Avant d'effectuer toute opération, confirmez que le service NetworkManager est démarré et activé sur votre nœud géré. Pour ce faire, utilisez un playbook. Pour cette tâche, utilisez le module de service dans service.yml fichier.

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

Exécutez ce playbook :

$ ansible-playbook service.yml

Si le playbook s'exécute correctement sans aucune erreur, le service est démarré et activé sur la machine du nœud géré.

Le nom de l'interface secondaire est eno1 afin que vous puissiez trouver l'adresse MAC de cette interface. Parce que vous utilisez cette adresse MAC, votre playbook découvrira l'interface secondaire. Afficher l'adresse MAC de eno1 en utilisant :

$ ip a

L'adresse MAC de server1.example.com est 52:54:00:fe:2f:b8 . Utilisez ceci dans le playbook.

Maintenant, après la tâche de service, installez system-roles sur le contrôleur :

$ yum install rhel-system-roles

Cette commande installera tous les rôles système dans le répertoire par défaut du rôle.

Écrivez maintenant un playbook pour ajouter une nouvelle connexion sur le nœud géré :

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

Ceci est un livre de jeu complet. Je vais vous expliquer chaque paramètre étape par étape :

target_mac - Il s'agit de l'adresse MAC de la deuxième interface Ethernet. Cela vous aidera à trouver la bonne interface sur un nœud géré.

connexion_réseau - Cette variable contient des informations pour les nouvelles connexions :

  • name :nom de la nouvelle connexion
  • type :nouveau type de connexion
  • mac :la variable target_mac
  • state :activez la connexion en utilisant le up options
  • ip :désactivez l'option DHCP et attribuez une adresse IP à l'aide de ce paramètre

J'ai utilisé des variables requises pour exécuter le rôle de système réseau. Exécutez maintenant ce playbook :

$ ansible-playbook networkconfiguration.yml

Ce playbook configurera une connexion réseau statique avec une adresse IP statique.

Pour vérifier les paramètres, connectez-vous à server1.example.com et confirmez la connexion nouvellement ajoutée :

$ nmcli connection show

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

Essayez de ping l'adresse IP du réseau statique connexion, et si elle réussit, vous avez ajouté avec succès la nouvelle connexion réseau.

Vérifiez si une nouvelle connexion est ajoutée avec succès ou non à l'aide des commandes ad hoc de la machine contrôleur :

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

Cette commande affichera le même résultat que celui indiqué dans les étapes précédentes.

Récapitulez

Cet article montre que vous pouvez configurer des connexions réseau à l'aide des rôles système Ansible. Ce petit playbook réduit les tâches manuelles et configure la connexion réseau de plusieurs machines à la fois simplement en créant un groupe d'hôtes. Ces rôles réseau système vérifient de nombreux paramètres lors de l'exécution du playbook, confirment que NetworkManager est en cours d'exécution et testent la connectivité dans le playbook lui-même. Il s'agit d'un excellent exemple de la façon dont vous pouvez utiliser les rôles système pour automatiser les configurations sur vos systèmes.


Linux
  1. Comment utiliser Ansible pour configurer la surveillance du système avec Prometheus

  2. Comment configurer la virtualisation sur Redhat Linux

  3. Comment configurer Systemd pour transformer un script simple avec Standardio dans un service réseau ?

  4. Guide pratique :Premiers pas avec Ansible

  5. Comment obtenir des statistiques système avec node.js

Comment configurer le pont réseau dans Ubuntu

Comment configurer Linux en tant que routeur statique

Comment configurer les paramètres VPN ?

Comment configurer PHP-FPM avec NGINX

Comment configurer les paramètres de BoxTrapper

Comment configurer une adresse IP statique sur le système Linux