分享两个常用的脚本,适合快速部署虚拟机

虚拟机克隆完后,通常我使用这两个脚本来帮助快速部署,一个是修改主机名,一个是修改IP地址(IP地址修改比较适合只用一块网卡的虚拟机,修改eth0的IP地址)。

适合Redhat 6及CentOS 6的操作系统。

修改主机名:

#!/bin/bash

# Ivan Liao - Version 0.1

clear

# ---- prompt for new hostname, current hostname is default ----
oldName=`hostname -s`
read -p "Enter new Hostname, do not enter DNS suffix [$oldName]: " newName

# ---- confirm change ----
read -p "Change hostname to $newName? [ y or n ]: " ok

case $ok in
[Yy]*)
       echo "Start to change hostname..."
       ;;
[Nn]*)
       echo exiting without changes
     exit 1
       ;;
esac

# ---- make changes to /etc/hosts ----
# If it is a softlink, this will change it into a real file
[ ! -h /etc/hosts ] && perl -i -p -e "s/$oldName/$newName/g" /etc/hosts

# ---- make changes to /etc/sysconfig/network ----
[ ! -h /etc/hosts ] && perl -i -p -e "s/$oldName/$newName/g" /etc/sysconfig/network
[ ! -h /etc/hosts ] && perl -i -p -e "s/.localdomain//g" /etc/sysconfig/network

# ---- make changes to /etc/sysconfig/network-scripts files ----
for hostsFile in `find /etc/sysconfig/network-scripts -type f -print`
do
   perl -i -p -e "s/$oldName/$newName/g" $hostsFile
done

# ---- move or create /var/crash directory ----
if [ -d /var/crash/$oldName ]; then
   mv /var/crash/$oldName /var/crash/$newName
else
   mkdir /var/crash/$newName
   chmod 700 /var/crash/$newName
fi

# ---- finally, change hostname ----
hostname $newName

# ---- confirm changes ----
echo -n "Hostname has been changed to: "
hostname
echo ""
#echo -n "Now FQDN is: "
#hostname -f

修改IP地址:
#!/bin/bash

# Ivan Liao - Version 0.1

clear

rm -f /etc/sysconfig/network-scripts/ifcfg-eth0
rm -f /etc/sysconfig/networking/devices/ifcfg-eth0 
rm -f /etc/sysconfig/networking/profiles/default/ifcfg-eth0

macaddress=`ifconfig -a|grep eth1|awk ‘{print $NF}‘`

[ ! -h /etc/udev/rules.d/70-persistent-net.rules ] && perl -i -p -e "s/SUBSYSTEM.*eth0"//g" /etc/udev/rules.d/70-persistent-net.rules
[ ! -h /etc/udev/rules.d/70-persistent-net.rules ] && perl -i -p -e "s/eth1/eth0/g" /etc/udev/rules.d/70-persistent-net.rules

read -p "Enter new IP address: " ipaddress

# ---- confirm change ----
read -p "Change IP address to $ipaddress? [ y or n ]: " ok

case $ok in
[Yy]*)
       echo "Start to change IP address..."
       ;;
[Nn]*)
       echo exiting without changes
     exit 1
       ;;
esac

echo "HWADDR=$macaddress" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=$ipaddress" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "PREFIX=24" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "DEFROUTE=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPV4_FAILURE_FATAL=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPV6INIT=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "NAME=eth0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0

hn=`hostname`

echo "$ipaddress  $hn.localdomain $hn" >> /etc/hosts
echo "Please reboot system."

时间: 2024-10-07 05:17:56

分享两个常用的脚本,适合快速部署虚拟机的相关文章

烂泥:KVM利用LVM快照快速部署虚拟机

本文首发于烂泥行天下. 上一篇文章介绍了有关KVM利用LVM快照备份和恢复虚拟机的功能,这篇文章我们来介绍,如何利用LVM快照功能为KVM快速部署虚拟机. 部署虚拟机需要以下几个步骤: 1. 创建LVM快照 2. 修改虚拟机的XML配置文件 3. 通过virsh define命令定义虚拟机 4. 启动虚拟机,并修改相关网络设置 既然是利用LVM的快照功能,那么我们就先创建一个快照.如下: lvcreate -L 100M -s -n lvmsp2 /dev/vg1/lvmsp 有关KVM相关的文

分享两个常用的rem布局方式

关于rem 这种技术需要一个参考点,一般都是以<body>的“font-size”为基准. 比如我们设置body,html的字体大小为10px:那么1rem就是10px, 这样一来,我们设置字体大小相当于“14px”时,只需要将其值设置为“1.4em”. 1.手机淘宝一直用的方法:思路是通过js动态的获取 设备的DPR(设备像素比),根据dpr来改变标签 <meta name="viewport" content="width=device-width, i

美出动两款战略轰炸机 在南海演练快速部署ti

7.Laox大手笔冠名国际乒联日本公开赛,在日华企回馈社会第一家. 舒默说,"美国有切实的挑战,需要做实事",如果特朗普继续当"推特总统"则会成为一个失败的总统.核心提示:南部卡纳塔卡省内政厅长帕拉梅许瓦拉称"他们试着模仿西方人,不只是心态,甚至是穿着,因此发生些骚动,有些女孩遭到骚扰,的确有这样的事."运输囚犯的贸易要从英国名目繁多的刑罚说起.英国农业经济向商业贸易的转型过程中,贫富差距越来越大,犯罪率也日益增高,死刑成为了英国政府给各种各样的

Shell脚本快速部署Kubernetes集群系统

本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群.上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本. 运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,一方面提高自身脚本编写能力,另一方面推进运维自动化. 详细部署说明文档:http://lizhenliang.blog.51c

运维人员的解放----Docker快速部署

Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container).(我个人还是喜欢称虚拟机) Docker应用容器相对于 VM 有以下几个优点: 启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久 资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源 因为VM 的 Hypervi

数据归一化和两种常用的归一化方法

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性.原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价.以下是两种常用的归一化方法: 一.min-max标准化(Min-Max Normalization) 也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间.转换函数如下: 其中max为样本数据的最大

【转】数据归一化和两种常用的归一化方法

转自http://www.cnblogs.com/chaosimple/p/3227271.html 数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性.原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价.以下是两种常用的归一化方法: 一.min-max标准化(Min-Max Normalization) 也称为离差标准化

[转] 数据归一化和两种常用的归一化方法

原文链接:http://www.cnblogs.com/chaosimple/p/3227271.html 数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性.原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价.以下是两种常用的归一化方法: 一.min-max标准化(Min-Max Normalization) 也称为离差

分享 SqlServer中常用且实用的几个数值处理自定义函数

--数字处理的几个常用自定义Sql函数 --小数开头没有0和末尾多余0处理 CREATE function [dbo].[FormatFloat](@dec decimal(18,10)) returns varchar(30) as begin declare @inValue varchar(30); set @inValue = (CONVERT(decimal(18,10),@dec)); declare @returnValue varchar(30) if(@inValue='')