Nmstate. Декларативное управление сетевыми настройками
2026-09-12
·
1 мин. для прочтения
1 Nmstate. Декларативное управление сетевыми настройками
Nmstate. Декларативное управление сетевыми настройками.
Содержание
1.1 Общая информация
- Репозиторий: https://github.com/nmstate/nmstate
- Библиотека и утилита командной строки для декларативного управления сетевыми настройками хоста.
- Описание в текстовом файле (YAML или JSON).
- Реализует декларативный подход.
- В качестве основного бэкенда используется NetworkManager.
1.2 Nmstate и NetworkManager
1.2.1 Императивный подход (nmcli)
Что нужно сделать:
nmcli connection add type vlan con-name vlan10 ifname ens18.10 dev ens18 id 10 ipv4.addresses 10.10.10.2/24 ipv4.method manualНе идемпотентно (если вы запустите эту команду дважды, она выдаст ошибку).
1.2.2 Декларативный подход (nmstate)
Какой результат нужно получить:
interfaces: - name: ens18.10 type: vlan state: up vlan: base-iface: ens18 id: 10 ipv4: enabled: true address: - ip: 10.10.10.2 prefix-length: 24Идемпотентность (Если профиль уже существует — ничего не произойдет. Если его нет — он будет создан).
1.3 Установка
sudo dnf -y install nmstate
1.4 Миграция на nmstate
- Процесс миграции сводится к экспорту текущих настроек в YAML и переходу на управление через файлы.
- В RHEL 9/10 классические скрипты
/etc/sysconfig/network-scriptsне поддерживаются. - Настройки хранятся в файлах NetworkManager (
/etc/NetworkManager/system-connections/).
1.4.1 Экспорт текущей конфигурации
- Выполните команду:
nmstatectl show > current-network.yaml
