分享两个常用的脚本,适合快速部署虚拟机
2014-09-07 14:20
260 查看
虚拟机克隆完后,通常我使用这两个脚本来帮助快速部署,一个是修改主机名,一个是修改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."
适合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."
相关文章推荐
- 小脚本一则---CDH的批量部署中,如果是从ESXI的VCENTER的模板生成的虚拟机,如何快速搞定网络网络卡配置?
- 常用ASP脚本程序集锦(适合初学者)
- linux 常用技巧脚本分享
- Microsoft Hyper-V Server 2012快速上手之用脚本创建一台完整的虚拟机
- 25个好用的Shell脚本常用命令分享
- 单机环境下快速部署一台hyper-v虚拟机 推荐
- 最常用SQL快速参考(其中某些部分只适合Oracle)
- shell实现自动备份mysql、整站数据的两个脚本分享
- 用MDT 2012为企业部署windows 7(九)--介绍Control目录下两个脚本,简化部署过程
- Microsoft Hyper-V Server 2012快速上手之用脚本创建一台完整的虚拟机 推荐
- 微软私有云分享(R2)3-部署虚拟机默认是美国?
- xen-tools虚拟机快速部署
- openstack单机ubuntu虚拟机环境安装部署经验及源码结构简单介绍(适合入门者)
- openstack单机ubuntu虚拟机环境安装部署经验及源码结构简单介绍(适合入门者)
- 【两个小脚本,用来实现快速挂载(附加)和分离VHD文件】
- [分享]兼容IE和FF的js脚本做法(比较常用)
- linux 常用技巧脚本分享
- 用MDT 2012为企业部署windows 7(九)--介绍Control目录下两个脚本,简化部署过程
- gxpt之快速部署jar到jboss的bat脚本
- hadoop大集群实施--比较实用的思路(设备选型、是否使用虚拟机、快速部署安装、自动复制节点等)