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