Chapitre 43. Introduction à Nmstate

Nmstate est une API déclarative de gestion de réseau. Le paquetage nmstate fournit la bibliothèque Python libnmstate et un utilitaire en ligne de commande, nmstatectl, pour gérer NetworkManager sur RHEL. Lorsque vous utilisez Nmstate, vous décrivez l'état attendu du réseau à l'aide d'instructions formatées YAML ou JSON.

Le Nmstate présente de nombreux avantages. Par exemple, il :

  • Fournit une interface stable et extensible pour gérer les capacités du réseau RHEL
  • Prise en charge des opérations atomiques et transactionnelles au niveau de l'hôte et du cluster
  • Permet la modification partielle de la plupart des propriétés et préserve les paramètres existants qui ne sont pas spécifiés dans les instructions
  • La prise en charge des plug-ins permet aux administrateurs d'utiliser leurs propres plug-ins

43.1. Utilisation de la bibliothèque libnmstate dans une application Python

La bibliothèque Python libnmstate permet aux développeurs d'utiliser le Nmstate dans leurs propres applications

Pour utiliser la bibliothèque, importez-la dans votre code source :

import libnmstate

Notez que vous devez installer le paquetage nmstate pour utiliser cette bibliothèque.

Exemple 43.1. Interroger l'état du réseau à l'aide de la bibliothèque libnmstate

Le code Python suivant importe la bibliothèque libnmstate et affiche les interfaces réseau disponibles et leur état :

import json
import libnmstate
from libnmstate.schema import Interface

net_state = libnmstate.show()
for iface_state in net_state[Interface.KEY]:
    print(iface_state[Interface.NAME] + ": "
          + iface_state[Interface.STATE])