您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Linux主机并更换IP地址

添加时间:2016-3-6 17:32:14  添加: 思海网络 
问题分析:

根据开发组同事反应,通过VCenter对RHEL6.0以下版本的系统进行克隆的时候,无法使用高级选项进行IP的指定操作,从而通过CloudStack对新的实例指定IP也是不能实现的,而且,不能够使用DHCP服务器解决该问题,否则会导致新虚拟机IP地址跟指定IP的不一致,也可能导致整个系统中IP地址分配的混乱。

解决思路:

给RHEL6.0以下系统制作的模板均指定一个固定的保留IP地址,比如192.168.3.0/24网段中,保留192.168.3.240~192.168.3.250给此类模板系统。

不管是通过VCenter克隆虚拟机还是CloudStack新建实例,只要是通过该固定IP地址启动的所有虚拟机,均会成功以原有IP地址启动,并正常跟网段内其他IP地址通讯,需要保证同一时间不允许同一IP地址的模板同时启动。

下文以模板固定IP为:10.196.18.250的系统,在控制节点,如cloudstackmanagement节点上面/etc/hosts中进行解析:

10.196.18.250        vm250

1.启动vm250 ,通过检测机制判断其启动成功,程序中去对10.196.18.250进行简单的连接测试,ping 通即可。

2.在启动实例的过程中,同时将IP地址信息写入本地目录中,按照如下格式保存:

假设文件名为:ifcfg-eth0.001,内容为如下

DEVICE=eth0

ONBOOT=on

BOOTPROTO=static

IPADDR=10.196.28.208

NETMASK=255.255.255.0

GATEWAY=10.196.28.254

3.调用脚本文件:ChangeIP.sh ,该脚本文件完成两项任务:

【1】将ifcfg-eth0.Id 拷贝到vmId指定目录中,重命名为ifcfg-eth0

【2】通过cloudstack management 登陆vmId,重启网络服务,使得新的网络配置文件生效。

使用方法:./ChangeIP.sh  id_of_ifcfg-eth0  id_of_vm

如:./ChangeIP.sh  001 250  ,将ifcfg-eth0.001 文件拷贝纸vm250系统中,并重新启动网络服务,使得新实例的最终IP地址为10.196.28.208



代码如下:
#!/bin/bash
#deion: change ip on instances
#Usage: ./ChangeIP.sh fileId vmId
# flush the caches of remote hosts
>~/.ssh/known_hosts
#define the network configfile location
dist=/etc/sysconfig/network-s/ifcfg-eth0
# define a function which copy the new ifcfg-eth0 file
# from cloudstack management or from other host to new
# instance boot from vm_fixip without interactive
function scp_file(){
expect -c "
set timeout -1
spawn -noecho scp $1 $2
expect "yes/no"
send "yesr"
expect "password:"
send "passwordr"
expect eof
"
}
scp_file ifcfg-eth0.$1 root@vm$2:$dist
# this function named res_new means restart network
# on new instance loading from new network config file
# without interactive
function res_net(){
expect -c "
set timeout -1
spawn -noecho ssh $1 $2
expect "password:"
send "passwordr"
expect eof
"
}
res_net root@vm$2 "service network restart > /dev/null 2>&1 &"
sleep 2
exit 0

关键字:Linux、主机、IP地址
分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站