我在 Kickstart 安装后脚本中有以下命令:
firewall-offline-cmd --new-zone=management
firewall-offline-cmd --zone=management --add-service=ssh --add-service=snmp
firewall-offline-cmd --zone=management --change-interface=eth1
nmcli device modify eth1 connection.zone management
firewalld
从我的阅读来看,当 NetworkManager 出现时似乎无法进行这些更改,因此我添加了nmcli
更改区域的命令。但它没有生效。安装完成并重新启动服务器后,接口仍位于默认区域。之后我可以运行该nmcli
命令,它将生效。
我在网上找不到关于这个问题的任何信息,除了可能本文,但需要付费。
答案1
我也遇到过这个问题。我通过以下方法解决了它:
echo 'ZONE=management' >> /etc/sysconfig/network-scripts/ifcfg-eth1
我更喜欢一些更优雅的东西,但暂时已经决定这么做了。
答案2
长话短说:“不要使用它,它不起作用”
解决
- 在安装过程中,或者执行 %post 脚本时,不会启用锁,所需的服务也不会运行。该环境是 anaconda 执行环境,当用户将其 chroot 到已安装的机器时,将使用相同的运行环境和 mount-bind-d 伪文件系统。
- 由于在执行 anaconda 时缺少这样的设置环境,nmcli 执行会出现问题。kickstart 的 %post 部分并非全部正常工作,因为它在功能齐全的运行机器上工作,您可能会遇到此问题。
- 更好的方法是在机器重启后运行它,并在安装后完全正常运行。如果您愿意,也可以将其放入某种首次启动逻辑(首次启动 systemd 单元)中。
所以 nmcli 是实现网络配置自动化的优秀工具。除了安装之外,你可以将其用于任何目的。