nmstatectl
是一款基于声明式模型的网络配置工具,允许用户通过YAML文件定义目标网络状态,由系统自动处理具体实现。该方式可显著减少人工配置错误,提升网络环境的一致性与可靠性。
先决条件
- 操作系统:已安装NetworkManager且支持nmstate插件的Linux发行版(RHEL/CentOS 8+、Fedora等)
- 网络接口:本文以enp7s0以太网接口为例
- 目标配置:
- IPv4 静态地址:192.0.2.1/24 默认网关:192.0.2.254 DNS 服务器:192.0.2.200
- IPv6 静态地址:2001:db8:1::1/64
- 默认网关:2001:db8:1::fffe
- DNS 服务器:2001:db8:1::ffbb
- 公共配置 DNS 搜索域:yunweixia.com
配置实施步骤
1.编写声明式YAML配置文件
创建~/create-ethernet-profile.yml文件,内容如下:
--- interfaces: - name: enp7s0 type: ethernet state: up # 启用接口 ipv4: enabled: true address: - ip: 192.0.2.1 # IPv4 地址 prefix-length: 24 # 子网掩码等效写法 dhcp: false # 禁用 DHCPv4 ipv6: enabled: true address: - ip: 2001:db8:1::1 # IPv6 地址 prefix-length: 64 autoconf: false # 禁用 SLAAC dhcp: false # 禁用 DHCPv6 routes: config: - destination: 0.0.0.0/0 # IPv4 默认路由 next-hop-address: 192.0.2.254 # 网关地址 next-hop-interface: enp7s0 # 可选(通常可省略) - destination: ::/0 # IPv6 默认路由 next-hop-address: 2001:db8:1::fffe dns-resolver: config: search: - yunweixia.com # DNS 搜索域 server: - 192.0.2.200 # IPv4 DNS - 2001:db8:1::ffbb # IPv6 DNS
2.应用配置至系统
执行以下命令应用配置(需root权限):
原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/nmstatectl-network-config-yaml-state-validation-workflow.html