Created
July 7, 2015 02:57
-
-
Save youyo/2fd1d74ff939e634be29 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash -u | |
| if [ $# -ne 11 ]; then | |
| echo -e "Usage:\t${0} HOSTNAME PASSWORD VCPU MEMORY SWAP DISK IPADDRESS NETMASK GATEWAY OS-TYPE[centos6,centos7] NIC[1,2]" | |
| exit 99 | |
| fi | |
| HOSTNAME=${1?need hostname} | |
| PASSWORD=${2?need password} | |
| VCPU=${3?need vcpu} | |
| MEMORY=${4?need memory} | |
| SWAP=${5?need swap} | |
| DISK=${6?need disk} | |
| IPADDRESS=${7?need ipaddress} | |
| NETMASK=${8?need netmask} | |
| GATEWAY=${9?need gateway} | |
| OSTYPE=${10?need gateway} | |
| NIC=${11?need gateway} | |
| NAMESERVER='8.8.8.8,8.8.4.4' | |
| IMAGE_ROOT='/var/lib/libvirt/images' | |
| LOCATION_CENTOS6="${IMAGE_ROOT}/CentOS-6.6-x86_64-bin-DVD1.iso" | |
| LOCATION_CENTOS7="${IMAGE_ROOT}/CentOS-7-x86_64-DVD-1503-01.iso" | |
| KS_URL="http://kickstart.youyo.info/kickstart/${OSTYPE}/${HOSTNAME}/${IPADDRESS}/${NETMASK}/${GATEWAY}/${PASSWORD}/${SWAP}/${NIC}/${NAMESERVER}" | |
| function transform_osvariant(){ # ostype | |
| OSVARIANT=${1} | |
| case ${OSVARIANT} in | |
| centos6) | |
| echo rhel6 | |
| ;; | |
| centos7) | |
| echo rhel7 | |
| ;; | |
| *) | |
| echo "undefined ostype." | |
| exit 99 | |
| ;; | |
| esac | |
| } | |
| function commit_location(){ | |
| LOCATION=${1} | |
| case ${LOCATION} in | |
| centos6) | |
| echo ${LOCATION_CENTOS6} | |
| ;; | |
| centos7) | |
| echo ${LOCATION_CENTOS7} | |
| ;; | |
| *) | |
| echo "undefined location." | |
| exit 99 | |
| ;; | |
| esac | |
| } | |
| function instance_install(){ # $1=>ostype,$2=>nic | |
| OSVARIANT=`transform_osvariant ${1}` | |
| LOCATION=`commit_location ${1}` | |
| case ${2} in | |
| 1) | |
| virt-install \ | |
| --connect qemu:///system --name ${HOSTNAME} --hvm --virt-type kvm \ | |
| --ram ${MEMORY} --vcpus ${VCPU} --arch x86_64 --os-type linux --os-variant ${OSVARIANT} \ | |
| --disk path=${IMAGE_ROOT}/${HOSTNAME}.qcow2.img,size=${DISK},format=qcow2 \ | |
| --network bridge=br0 \ | |
| --graphics vnc,listen=127.0.0.1,keymap=ja --serial pty --console pty --noautoconsole --wait -1 \ | |
| --location=${LOCATION} --noreboot --autostart \ | |
| --extra-args "ks=${KS_URL} console=tty0 console=ttyS0,115200n8 edd=off keymap=ja ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} dns=8.8.8.8" #--debug | |
| ;; | |
| 2) | |
| virt-install \ | |
| --connect qemu:///system --name ${HOSTNAME} --hvm --virt-type kvm \ | |
| --ram ${MEMORY} --vcpus ${VCPU} --arch x86_64 --os-type linux --os-variant ${OSVARIANT} \ | |
| --disk path=${IMAGE_ROOT}/${HOSTNAME}.qcow2.img,size=${DISK},format=qcow2 \ | |
| --network bridge=br0 --network bridge=br1 \ | |
| --graphics vnc,listen=127.0.0.1,keymap=ja --serial pty --console pty --noautoconsole --wait -1 \ | |
| --location=${LOCATION} --noreboot --autostart \ | |
| --extra-args "ks=${KS_URL} console=tty0 console=ttyS0,115200n8 edd=off keymap=ja ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} dns=8.8.8.8 ksdevice=eth0" #--debug | |
| ;; | |
| *) | |
| echo "undefined nic" | |
| exit 99 | |
| ;; | |
| esac | |
| } | |
| # run | |
| instance_install ${OSTYPE} ${NIC} | |
| exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment