如何在Linux(CentOS/RHEL 7)中使用kickstart配置具有绑定功能的VLAN
在本文中,我将分享"为基于PXE的网络安装使用绑定配置VLAN"的步骤。
本文是在使用RHEL 7时编写的,因此可以肯定地说它也全面介绍了CentOS7. 尽管对于SuSE和OpenSuSE,它们使用autoyast.xml,所以本文不适用于此。
什么是Kickstart安装?
Kickstart安装提供了部分或者完全自动化安装过程的方法。
Kickstart文件包含对安装程序通常会询问的所有问题的答案,例如我们希望系统使用哪个时区,应如何对驱动器进行分区或者应安装哪些软件包。
因此,在安装开始时提供准备好的Kickstart文件,使我们可以自动执行安装,而无需用户干预。
当在大量系统上一次部署Red Hat Enterprise Linux时,这特别有用。
Kickstart文件可以保存在单个服务器系统上,并在安装过程中由单个计算机读取。
这种安装方法可以支持使用单个Kickstart文件在多台机器上安装Red Hat Enterprise Linux,使其成为网络和系统管理员的理想选择。
我将分享两种使用Bond配置VLAN的方法。
一种是使用kickstart,另一种是手动,但也可以自动进行PXE安装。
方法1:使用Kickstart配置具有绑定的VLAN
另请阅读:
RHEL 7的示例Kickstart配置文件
我希望我们已经有一台能正常工作的PXE服务器,我们打算使用该服务器在设置上执行网络安装。
网络支持各种参数。
基于GUI的kickstart配置器的选项非常有限,因此我更喜欢使用CLI手动定义值。
配置程序将无法为我们提供足够的语法来配置带有Bond的VLAN。
以下语法用于在RHEL 7中配置具有Bond的VLAN:
# Network Information network --bootproto=static --device=<Parent_Device> --ip=<VLAN_Interface_IP> --netmask=<VLAN_Interface_NetMask> --onboot=on --noipv6 --activate --vlanid=<VLAN_ID> --interfacename=<VLAN_Interface_Name>
其中
--device Provide the device name to which you wish to tag the VLAN Interface. The traffic for VLAN interface will communicate through this device --ip Provide the VLAN interface IP --netmask Provide the VLAN NetMask --onboot To keep the VLAN interface enabled post reboot --no-ipv6 Disable IPv6 --activate Activate the interface immediately after setting the configuration --vlanid Provide the VLAN ID. The configuration file will be created based on the ID provided.
例如:我有一个绑定设备" bond0",我希望为其创建一个带有VLAN标记的接口,其中包含以下详细信息
VLAN IP: 192.151.21.130 VLAN NetMask: 255.255.255.192 VLAN ID: 565
因此,使用bond配置vlan的示例语法如下所示:
network --bootproto=static --device=bond0 --ip=192.151.21.130 --netmask=255.255.255.192 --onboot=on --noipv6 --activate --vlanid=565 --interfacename=vlan565
验证kickstart.conf
在触发网络安装之前,请先验证kickstart.conf,这很重要,否则安装可能会中断,可以使用ksvalidator来完成。
这个工具是pykickstart
rpm的一部分。
我们可以使用yum安装rpm(如果不可用)
说明:
在RHEL系统上,我们必须具有RHN的活动订阅,或者我们可以配置本地脱机存储库," yum"程序包管理器可以使用该本地存储库安装所提供的rpm及其依赖项。
# yum install pykickstart -y
我们可能会在下面看到警告,因为我们已经两次定义了设备名称,但是可以忽略该名称,因为它不会影响安装。
# ksvalidator kickstart.conf A network device with the name bond0 has already been defined.
我们可以忽略此警告并继续安装PXE。
提示:
我个人更喜欢通过绑定手动配置VLAN,而不是上面的步骤,因为我有一些糟糕的经验,其中安装失败或者VLAN配置无法有效工作。
方法2:使用%post配置具有绑定的VLAN
我们也可以使用%post部分来配置带有Bond的VLAN以进行PXE安装。
我编写了一个脚本,该脚本收集所有值以使用Bond配置VLAN并创建网络配置文件。
因此,要使用Bond配置VLAN,我们还可以编写一些脚本来自动化并创建类似于以下内容的VLAN配置文件(我们可以忽略任何不适合环境的可选值)
# cat /tmp/ifcfg-vlan565 VLAN="yes" TYPE="Vlan" DEVICE="vlan565" PHYSDEV="bond0" VLAN_ID="565" BOOTPROTO="none" IPADDR="192.151.21.130" NETMASK="255.255.255.192" IPV6INIT="no" NAME="vlan565" ONBOOT="yes" NM_CONTROLLED="no" NOZEROCONF="yes"
接下来,使用kickstart文件的%post
部分将其复制到/etc/sysconfig/network-scripts
中。
这样一来,网络安装将不会受到影响,vlan配置文件也将可用于NetworkManager
。
%post --interpreter=/bin/bash --log=/var/log/kickstart_post.log echo "Copying vlan configuration file" cp -rvf /tmp/ifcfg-vlan565 /etc/sysconfig/network-scripts/ %end
安装目标节点后,我们可以检查/var/log/kickstart_post.log以获取%post部分的状态。