Red Hat Training

A Red Hat training course is available for RHEL 8

第 44 章 Nmstate 简介

nmstate 是一个声明性网络管理器 API。nmstate 软件包提供了 libnmstate Python 库和一个命令行实用程序 nmstatectl 来管理 RHEL 上的 NetworkManager。使用 Nmstate 时,您可以使用 YAML 或 JSON 格式的指令描述预期的网络状态。

nmstate 有很多优点。例如,它:

  • 提供稳定且可扩展的接口来管理 RHEL 网络功能
  • 支持主机和集群级别的原子和事务操作
  • 支持对大多数属性进行部分编辑,并保留在说明中没有指定的现有设置
  • 提供插件支持,使管理员能够使用自己的插件

44.1. 在 Python 应用程序中使用 libnmstate 库

libnmstate Python 库可让开发人员在他们自己的应用程序中使用 Nmstate

要使用库,请在源代码中导入它:

import libnmstate

请注意,您必须安装 nmstate 软件包才能使用这个库。

例 44.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])