source: drbl-virt/sbin/drbl_xen_repush.sh @ 230

Last change on this file since 230 was 221, checked in by rock, 14 years ago

Bugfix: fix copy sequence

  • Property svn:executable set to *
File size: 3.1 KB
RevLine 
[184]1#!/bin/bash
2# Program:
[216]3#   Repush DRBL evironment (Xen environment)
4# Author:
[184]5#   Jazz, Rock {jazz, rock}@nchc.org.tw
6# Version:
7#    1.0
[216]8# History:
9#   2010/07/20  Rock    First release (1.0)
[184]10
11# [Source]
12source /opt/drbl-virt/conf/drbl-virt.conf
13source $Work_Path/functions_drbl_virt
14
15# [Main]
16
[185]17# = 1. Variables setup =
[184]18# == Get DRBL eth ==
19eths=""
20declare -i eth_nu=""
[216]21get_DRBL_eth
22
[184]23if [ $eth_nu -gt "1" ]; then
24    echo ""
25    echo "DRBL environment has muiltpule netwrok card(NIC)."
[216]26fi
27
[190]28# backup IP_HOST_TABLE
29if [ -e /etc/drbl/IP_HOST_TABLE.drbl-virt_bak ]; then
30    cp /etc/drbl/IP_HOST_TABLE /etc/drbl/IP_HOST_TABLE.$(date +%Y-%m-%d-%H-%M-%S).drbl-virt_bak
31    cp -f /etc/drbl/IP_HOST_TABLE.drbl-virt_bak /etc/drbl/IP_HOST_TABLE
[195]32    cp -f /etc/drbl/IP_HOST_TABLE.drbl-virt_bak /opt/drbl-virt/etc/IP_HOST_TABLE
[190]33else
34    cp /etc/drbl/IP_HOST_TABLE /etc/drbl/IP_HOST_TABLE.drbl-virt_bak
[195]35    cp /etc/drbl/IP_HOST_TABLE /opt/drbl-virt/etc/IP_HOST_TABLE
[216]36fi
[190]37
[201]38# backup mac address file
39cp /etc/drbl/macadr-eth*[0-9].txt /opt/drbl-virt/etc/
[200]40
[184]41for eth in $eths
[216]42do
43
[184]44    # == Get Host IP range/number  ==
45    Host_first_IP=""
46    Host_last_IP=""
47    # get eth network
48    eth_address=$(/opt/drbl/bin/drbl-get-ipadd $eth)
49    eth_netmask=$(/opt/drbl/bin/drbl-get-netmask $eth)
50    eth_network=$(/opt/drbl/bin/drbl-get-network $eth_address $eth_netmask)
51    get_Host_IP_range
[216]52
[184]53    # == Get VM number, IP range & prefix name ==
54    declare -i VM_IP_range=""
55    declare -i Host_last_IP_4=""
56    declare -i VM_Host_totoal_nu=""
57    VM_first_IP=""
58    VM_last_IP=""
59    VM_prefix_name=""
[190]60
[184]61    get_VM_IP_range_and_prefix_name
62    create_VM_IP_table
[216]63
[184]64    # == Generate MAC address  ==
65    # MAC address [00:16:3e:xx:xx:xx] is for Xen use
66    generate_Xen_MAC_address
[216]67
[185]68    # == Add VM IP to /etc/drbl/IP_HOST_TABLE  ==
[184]69    VM_IPs=$(cat /opt/drbl-virt/etc/IP_VM_$eth | awk '{print $1}')
[185]70    VM_IPs_nu=$(cat /opt/drbl-virt/etc/IP_VM_eth1 | awk '{print $1}' | wc -w)
[184]71    VM_hosts=$(cat /opt/drbl-virt/etc/IP_VM_$eth | awk '{print $2}')
72    VM_MACs=$(cat /opt/drbl-virt/etc/macadr-VM-$eth.txt)
[216]73
[185]74    # == Add Mac address to macadr-ethX.txt ==
75    if [ -e /etc/drbl/macadr-$eth.txt ]; then
[189]76    delete_duplicating_MAC
[185]77    fi
[187]78    cat /opt/drbl-virt/etc/macadr-VM-$eth.txt >> /etc/drbl/macadr-$eth.txt
[216]79done
[185]80
[216]81
[185]82# = 2. Re-deploy drbl client =
[216]83# == Change Xen Kernel ==
[188]84Xen_Kernel=$(cat $Work_Home/etc/Xen_Kernel)
[190]85#read -p "Xen_Kernel=$Xen_Kernel"
[216]86echo  "/opt/drbl/sbin/drblsrv-offline -s $Xen_Kernel"
87/opt/drbl/sbin/drblsrv-offline -s $Xen_Kernel
[185]88# == Re-delpoy drbl client ==
[216]89echo -e "\nRe-delpoy drbl client"
[185]90echo "/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf"
91/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf
92echo ""
[221]93
94
95# = 3. Copy xen kernel & initrd to /home/domains =
96if [ ! -e /home/domains ]; then
97    mkdir /home/domains
98fi
99cp -f /tftpboot/nbi_img/*xen* /home/domains
100cp -f /tftpboot/nbi_img/vmlinuz-pxe /home/domains
101cp -f /tftpboot/nbi_img/initrd-pxe.img /home/domains
102
103
104# = 4. Complete =
105echo -e "\n[Install completion]"
106echo "You can use $Work_Path/check_drbl_client to check DRBL Client !"
107echo "You alse can use $Work_Path/check_drbl_total_vm to check DRBL VM !"
Note: See TracBrowser for help on using the repository browser.