#!/bin/sh
set -x // 为了做debug
##############################################:
#pre for openstack local network env,pre for mutil node,and for migration.
#date:2012.10.23
#author:kikupotter
##############################################
if [ $# -ne 1 ] // 做一个判断,运行脚本的时候,看是在哪一台机子上运行。
then
echo "please specify one arg. node1, node2, ro master!"
exit 1
fi
#############################################
#main func. // 主函数部分,这部分没有写得很漂亮,简单的一个取了个名字,没有采用变量,比较罗嗦。
# sub func node1,node2,master.
pre_master(){
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.21
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
dns-nameservers 218.85.157.99
EOF
cat >/etc/hostname <<EOF
master
EOF
}
pre_node1(){
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.20
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
dns-nameservers 218.85.157.99
EOF
cat >/etc/hostname <<EOF
node1
EOF
}
pre_node2(){
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.23
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
dns-nameservers 218.85.157.99
EOF
cat >/etc/hostname <<EOF
node2
EOF
}
#END func.
############################################
# 这里做了一个case判断输入的第一个参数是属于哪一个节点的,对应节点,运行对应的子程序
case "${1}" in
master)
pre_master
;;
node1)
pre_node1
;;
node2)
pre_node2
;;
*)
echo "Please specify master ,ro nodeX"
exit
;;
esac
##############################################
######all node must do for migration########
#update system
apt-get update;apt-get upgrade
apt-get -y install vim
sleep 2
#hosts for dns. 这一步很重要,也可以用NDS来做。
cat > /etc/hosts <<EOF
127.0.0.1 localhost
192.168.0.21 master.cloud.com master
192.168.0.20 node1.cloud.com node1
192.168.0.23 node2.cloud.com node2
EOF
#NOTE: If you are going to use live migration functionality, pre-create system user/group id so they can map directly in cluster setup.
#这个是为了保证迁移的时候,权限上不出问题,虽然想NFS有用户映射功能,但是难免会出错还有效率上的问题。建议都建成一样的哦
addgroup --system --gid 119 kvm
addgroup --system --gid 118 libvirtd
addgroup --system --gid 117 nova
adduser --system --home /var/lib/libvirt --shell /bin/false --uid 119 --gid 119 --disabled-password libvirt-qemu
adduser --system --home /var/lib/libvirt/dnsmasq --shell /bin/false --uid 118 --gid 118 --disabled-password libvirt-dnsmasq
adduser --system --home /var/lib/nova --shell /bin/false --uid 117 --gid 117 --disabled-password nova
adduser nova libvirtd
reroot
set -x // 为了做debug
##############################################:
#pre for openstack local network env,pre for mutil node,and for migration.
#date:2012.10.23
#author:kikupotter
##############################################
if [ $# -ne 1 ] // 做一个判断,运行脚本的时候,看是在哪一台机子上运行。
then
echo "please specify one arg. node1, node2, ro master!"
exit 1
fi
#############################################
#main func. // 主函数部分,这部分没有写得很漂亮,简单的一个取了个名字,没有采用变量,比较罗嗦。
# sub func node1,node2,master.
pre_master(){
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.21
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
dns-nameservers 218.85.157.99
EOF
cat >/etc/hostname <<EOF
master
EOF
}
pre_node1(){
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.20
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
dns-nameservers 218.85.157.99
EOF
cat >/etc/hostname <<EOF
node1
EOF
}
pre_node2(){
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.23
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
dns-nameservers 218.85.157.99
EOF
cat >/etc/hostname <<EOF
node2
EOF
}
#END func.
############################################
# 这里做了一个case判断输入的第一个参数是属于哪一个节点的,对应节点,运行对应的子程序
case "${1}" in
master)
pre_master
;;
node1)
pre_node1
;;
node2)
pre_node2
;;
*)
echo "Please specify master ,ro nodeX"
exit
;;
esac
##############################################
######all node must do for migration########
#update system
apt-get update;apt-get upgrade
apt-get -y install vim
sleep 2
#hosts for dns. 这一步很重要,也可以用NDS来做。
cat > /etc/hosts <<EOF
127.0.0.1 localhost
192.168.0.21 master.cloud.com master
192.168.0.20 node1.cloud.com node1
192.168.0.23 node2.cloud.com node2
EOF
#NOTE: If you are going to use live migration functionality, pre-create system user/group id so they can map directly in cluster setup.
#这个是为了保证迁移的时候,权限上不出问题,虽然想NFS有用户映射功能,但是难免会出错还有效率上的问题。建议都建成一样的哦
addgroup --system --gid 119 kvm
addgroup --system --gid 118 libvirtd
addgroup --system --gid 117 nova
adduser --system --home /var/lib/libvirt --shell /bin/false --uid 119 --gid 119 --disabled-password libvirt-qemu
adduser --system --home /var/lib/libvirt/dnsmasq --shell /bin/false --uid 118 --gid 118 --disabled-password libvirt-dnsmasq
adduser --system --home /var/lib/nova --shell /bin/false --uid 117 --gid 117 --disabled-password nova
adduser nova libvirtd
reroot
而且单网卡实在让我无语了。看到的亲 ,一定要用双卡。单卡做迁移我都是看运气的。现在开始要收集这些问题还有资料,为了就业把,经验是很重要的,而且自己记性不好,经常忘东西。记下来为了,以后,大家一起加油哦。
转载于:https://blog.51cto.com/kikupotter/1035747