本发明涉及云计算技术领域,特别是一种云计算自动部署宿主机存储网络IP动态转化成静态的方法。
背景技术:
在云计算领域宿主机自动部署之后动态IP转化成静态网络设置方法,目前大部分是利用ifconfig命令获取动态网卡的网络信息,然后获取ip地址,掩码位数来计算子网掩码的数值,最后通过vim的编辑命令,手动添加到配置文件当中,然后重启网络生效。对于这种方法尤其弊端,需要手动获取IP地址信息并修改对应的网络配置文件,在部署节点比较多的情况下,会出现大量重复手动确认网络信息并修改配置文件的情况,很容易出现配置错误,导致网络通信问题,从而影响云计算自动部署宿主机安装部署的速度。而本方法的使用,有效的降低了配置错误出现,甚至不出现,同时减少配置的工作时间。
技术实现要素:
本发明解决的技术问题在于一种云计算自动部署宿主机存储网络动态ip转化静态ip的方法,解决云计算自动部署宿主机存储网络动态IP不稳定,以及手动修改成固定IP容易出现配置错误,耗费大量配置工作的问题。
本发明解决上述技术问题的技术方案是,
所述的方法包括如下步骤:
步骤1:宿主机存储网卡获取DHCP动态IP地址;
步骤2:识别宿主机存储网卡名称;
步骤3:获取存储网卡动态IP地址信息;
步骤4:创建静态IP地址配置文件;
步骤5:设置静态存储网络IP地址;
步骤6:将网络配置信息持久化到网络配置文件中,最终将宿主机的网络从DHCP自动获取方式变成静态网络配置。
所述的方法利用PXE的远程部署宿主机,并设置宿主机指定网卡获取存储网络。
所述的宿主机存储网卡获取动态IP,是在云计算宿主机自动部署过程当中通过DHCP方式分发IP地址的方式获取动态IP地址信息;
所述的IP地址信息包括IP地址、网关地址、网段、域名解析服务器。
所述的创建静态IP地址文件,指的是根据网络类型,通过touch命令创建新的ifcfg-*文件。
所述的静态网络配置,是指获取网络配置信息后,通过网络配置程序将网络配置信息持久化到网络配置文件中;重新加载网卡,将静态配置生效。
本发明的方法结合了参数自定义传递和系统网卡识别的方法,通过具体网络信息的传递,以及相关网络条件的自动判断,自动进行网路从动态IP到静态网络的转换,有效解决通过人为的获取网络信息并设置到配置文件当中所遇到的容易配置错误,大量繁杂的配置工作,工作效率比较低的问题,实现原理简单、可靠,很方便集成到云计算平台中。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
具体实施方式
根据流程图1所示,本发明的步骤是:
(1)宿主机存储网卡获取dhcp动态IP地址
(2)识别宿主机存储网卡名称
具体实现采用linux下网络所有的网络接口可以在/sys/class/net下发现,不管接口类型。
通过如下命令截取操作系统识别的网卡名称:
ls/sys/class/net/|grep e|awk′NR==3{print$1}′
并传递给赋值参数DHCP_CARD
(3)获取存储网卡动态IP地址信息
具体实现采用linux下网络命令ip addr获取网卡的信息:
ip addr|grep″dynamic$DHCP_CARD″
例如:
3:enpls0f1:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500
qdisc mq state UP qlen 1000
link/ether 00:a0:d1:eb:5e:65brd ff:ff:ff:ff:ff:ff
inet 192.168.2.43/24brd 192.168.2.255scope global enpls0f1
valid_lft forever preferred_lft forever
inet6fe80::2a0:dlff:feeb:5e65/64scope link
valid_lft forever preferred_lft forever
则当前网络节点的IP地址是:192.168.2.43/24
再通过脚本的截取命令获取网络的IP地址:
ip addr|grep″dynamic$DHCP_CARD″|awk′{print$2}′|cut-d″/″-f 1子网掩码:
ip addr|grep″dynamic$DHCP_CARD″|awk′{print$2}′|cut-d″/″-f2网关:
`echo$DHCP_IP|awk-F.′{print$1″f.″$2″.″$3}′`.254
(4)创建静态IP配置文件
通过touch命令创建相关的文件
touch/etc/sysconfig/network-scripts/ifcfg-$DHCP_CARD
(5)设置静态存储网络IP地址
转换当前配置文件的网络模式:
sed-i′s/dhcp/static/g′$ETHCONF
去掉IPV6设置,去除UUID
sed-i-e′s/∧UUID/#UUID/g′-e″s/∧IPV6INIT/#IPV6INIT/g″-e
″s/∧NETBOOT/#NETBOOT/g″$ETHCONF
设置IP相关信息到当前网络配置文件当中:
echo-e
″IPADDR=$DHCP_IP\nNETMASK=255.255.255.0\nGATEWAY=`echo
$DHCP_IP|awk-F.′{print$1″.″$2″.″$3}′`.254″>>$ETHCONF。