#!/bin/bash # Program: # Create PXE PV VM # Author: # Jazz, Rock {jazz, rock}@nchc.org.tw # Version: # 1.0 # History: # 2010/08/27 Rock First release (1.0) # [Source] source /opt/drbl-virt/conf/drbl-virt.conf source $Work_Path/functions_drbl_virt #source ./functions_drbl_PXE_PV-VM_create # [Declation] # = 1. Varibales declation = vm_name="" vm_cpu="1" vm_ram="128" #vm_host="" vm_mac="" vm_dir="/home/domains" # = 2. Functions declation = Usage(){ echo "Usage: drbl_PXE_PV-VM_create_all [options]" echo "Options: " echo "-c|--cpu cpu number (default: 1)" echo "-r|--ram ram size(M) (default: 128)" echo "Examples: " echo "drbl_PXE_PV-VM_create_all -c 2 -r 512" } # [Main] check_root # = 1. Parse parameters = if [ $# -eq 0 ]; then Usage && exit fi while [ $# -gt 0 ]; do case "$1" in -c|--cpu) shift if [ -z "$(echo $1 |grep ^-.)" ]; then if [ -n "$(echo $1)" ]; then vm_cpu=$1 fi shift fi ;; -r|--ram) shift if [ -z "$(echo $1 |grep ^-.)" ]; then if [ -n "$(echo $1)" ]; then vm_ram=$1 fi shift fi ;; # -h|--host) # shift # if [ -z "$(echo $1 |grep ^-.)" ]; then # if [ -n "$(echo $1)" ]; then # vm_host=$1 # else # echo "-h host_value is null" # Usage && exit 2 # fi # shift # fi # ;; -*) echo "$0 $1 invalid option" >&2 echo "" Usage >&2 exit 2 ;; *) Usage >&2 exit 2 ;; esac done # = 2. Create all VM configuration = IP_VM_files=$(ls $Work_Home/etc/IP_VM_eth[0-9]) # create directory to store vm config file if [ ! -e $vm_dir ]; then mkdir $vm_dir fi for IP_VM_file in $IP_VM_files do VM_nu=$(wc -l $IP_VM_file |awk '{print $1}') for (( i=1 ; i<=$VM_nu ; i++ )) do VM_name=$(sed -n "${i}p" $IP_VM_file | awk '{print $2}') $Work_Path/drbl_PXE_PV-VM_create -v $VM_name -c $vm_cpu -r $vm_ram done done