非交互方式远程登录linux主机并更换IP地址

问题分析:

根据开发组同事反应,通过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 #description: 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-scripts/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 \"yes\r\" expect "password:"send \"password\r\" 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 \"password\r\" expect eof " } res_net  root@vm$2 "service network restart > /dev/null 2>&1 &"sleep 2 exit 0

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索cloudstack
, cloudstack技术沙龙
, 文件
, 实例
, 系统
, 地址
, expect
, changeip
, VM instance
250
远程主机ip地址、武科大新交互ip地址、新时代交互英语ip地址、ssh 远程执行交互命令、java ssh远程交互,以便于您获取更多的相关知识。

时间: 2024-08-01 12:34:43

非交互方式远程登录linux主机并更换IP地址的相关文章

远程登录linux主机更换IP地址

 问题分析: 根据开发组同事反应,通过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

在Windows上使用putty远程登录Linux服务器的简单教程

  Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在IDC机房的,所以我平时登录linux系统都是通过远程登录的.Linux系统中是通过ssh服务实现的远程登录功能.默认ssh服务开启了22端口,而且当我们安装完系统时,这个服务已经安装,并且是开机启动的.所以不需要我们额外配置什么就能直接远程登录linux系统.ssh服务的配置文件为 /etc/ssh/sshd_config,你可以修改这个配置文件来实现你想要的ssh服务.比如你可以更改启动端口为36000. 如果你是

Ubuntu下通过sftp/SSH远程登录linux系统

SSH远程登录linux系统 步骤如下: 1.在需要远程访问的计算机的"新立得"里面安装openssh-server.这台计算机是远程计算机,你当前使用的计算机是本地计算机.如果使用Ubuntu或者其他Linux版本,已经安装了连接到远程计算机的软件. 2.远程计算机软件安装完毕.在本地计算机的终端里面输入: ssh username@address 其中username是远程计算机的账户名称,address是远程计算机的IP地址或者域名. 平日你希望以keir登录192.168.1.

Xshell登录linux主机出现WARNING!解决办法

使用Xshell登录Linux主机时出现了一行警告,警告如下: WARNING! The remote SSH server rejected X11 forwarding request. 解决办法: 1.编辑/etc/ssh/sshd_config 设置X11Forwarding yes 2.配置Xshell连接属性,如下图勾取消掉即可.

OpenSSH最流行的文件传输和远程登录Linux应用程序

OpenSSH是最流行的文件传输和远程登录Linux应用程序之一,它提供了多种在客户端和服务器之间建立加密的远程终端和文件传输连接的方式. OpenSSH Secure http://www.aliyun.com/zixun/aggregation/16458.html">Copy (SCP) 和 Secure FTP (SFTP) 程序是FTP的安全替代品, 同时Secure Shell (SSH) 常常被用作是TELNET的一个默认替代程序.OpenSSH 并不局限于Linux系统:

《Linux防火墙(第4版)》——1.5 主机名和IP地址

1.5 主机名和IP地址 人们喜欢使用词语来命名事物,例如命名一个计算机为mycomputer.mydomain.example.com.从技术上严格来说,这个命名并不指这台计算机,而是这台计算机中的网络接口.如果这台计算机有多个网卡,每个网卡将拥有不同的名字以及地址,看上去可能是在不同的网络和不同的子域中. 主机名的各部分间使用点进行分割.例如mycomputer.mydomain.example.com,最左边的部分mycomputer,是主机名,而.mydomain..example以及.

Linux如何禁止特定ip地址访问

  Linux系统中,如果你需要禁止特定ip地址访问来保证系统的安全,只需通过操作iptalbes来实现,下面小编就给大家介绍下Linux如何禁止某个ip地址访问,感兴趣的朋友可以来了解下. 一.概述 这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问.这两个配置文件的格式如下: #服务进程名:主机列表:当规则匹配时可选的命令操作 server_name:hosts-list[:command] /etc/hosts.allow控制可以访问本机的IP地址,/et

oracle函数:获取Internet主机名和ip地址

    Oracle包utl_inaddr    作用:用于取得局域网或Internet环境中的主机名和IP地址.    1.utl_inaddr.get_host_address 环境中IP地址    如果查询失败,则提示系统错误    查询www.qq.com的IP地址    select UTL_INADDR.get_host_address('www.qq.com') from dual;    查询本机IP地址    select UTL_INADDR.get_host_address

Linux技术:用IP地址的用途理解Loopback接口

1.问题 IP地址到底是属于主机的还是属于网卡的?这个问题有点太学院派了,现实中,只要懂得IP地址的概念以及IP路由,基本上没有问题.IP作为一个网络层协议,它更多的意义在于寻址而不是标识主机,因此你可以认为IP是属于网卡的. 然而不同的人对于IP地址有不同的看法,程序员看来,IP地址是属于主机的,因为他们总是用一个套接字来表示一个服务,套接字中的IP地址表示一台主机,协议和端口号表示了该主机上的一个特定进程:对于网络工程师而言,他们会认为IP地址是属于一个网段的,也就是编写于网卡上的,如果一台