Red Hat Training

A Red Hat training course is available for RHEL 8

第39章 Nmstate の概要

nmstate は宣言型のネットワークマネージャー API です。nmstate パッケージは、RHEL の NetworkManager を管理するために、 libnmstate Python ライブラリー、およびコマンドラインユーティリティー nmstatectl を提供します。Nmstate を使用する場合、YAML または JSON 形式の命令を使用して想定されるネットワーク状態を記述します。

Nmstate には多くの利点があります。たとえば、以下のようになります。

  • 安定性と拡張可能なインターフェイスを提供して RHEL ネットワーク機能を管理する。
  • ホストおよびクラスターレベルでのアトミックおよびトランザクション操作をサポートする。
  • ほとんどのプロパティーの部分編集をサポートし、この手順で指定されていない既存の設定を保持する。
  • 管理者が独自のプラグインを使用できるようにプラグインサポートを提供する。

39.1. Python アプリケーションでの libnmstate ライブラリーの使用

libnmstate Python ライブラリーを使用すると、開発者は独自のアプリケーションで Nmstate を使用できます。

ライブラリーを使用するには、ソースコードにインポートします。

import libnmstate

このライブラリーを使用するには、nmstate パッケージをインストールする必要があることに注意してください。

例39.1 libnmstate ライブラリーを使用したネットワーク状態のクエリー

以下の Python コードは、libnmstate ライブラリーをインポートし、利用可能なネットワークインターフェイスとその状態を表示します。

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