KVM script 脚本 automate 创建虚拟机vm

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM script 脚本 automate 创建虚拟机vm相关的知识,希望对你有一定的参考价值。

使用这个脚本可以预先设置安装ubuntu时候需要的参数, 可实现automate安装 。
https://github.com/christhai/Virtualization/blob/master/kvmScripts/makeUbuntuVM.sh

makeVM.sh

#! /bin/bash
 
# Using newest versions from apt
# Making desktop
 
if [ ! "$1" ]
then
echo "Usage: $0 vmNumber"
exit
fi
 
# apt-get update
 
vmNR=$1
host=192.168.122.$vmNR
user=mroot
pw=lightblue
dir=/home/s199425/kvmScripts
logDir=$dir/log
GB=$((20 + $vmNR)) # 20GB image ++
vm=control$vmNR # VM name
vnc=$((5900 + $vmNR))
vncNested=$((6900 + $vmNR))
 
virsh destroy $vm
virsh undefine $vm # Will be built from scratch
 
cd ../images
file=ubuntu14.04.amd64.${GB}G.img
/bin/rm $file
# qemu-img create -o compat=0.10 -f qcow2 $file ${GB}G
qemu-img create -f qcow2 $file ${GB}G
 
# Enters IP and name in /root/preseed/preseed.cfg
cat ../preseed/preseed.cfg.orig | sed s/192.168.122.4/192.168.122.$vmNR/ > ../preseed/preseed.tmp.cfg
cat ../preseed/preseed.tmp.cfg | sed s/control2/$vm/ > ../preseed/preseed.cfg
 
date > $logDir/startVM$vmNR
 
virt-install --name $vm --ram 1024 --vcpus=1 
--os-type=linux --initrd-inject=../preseed/preseed.cfg 
--disk path=../images/$file,device=disk,bus=ide,format=qcow2 
--bridge=virbr0 
--location=http://no.archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64 
--vnc --vncport=$vnc --vnclisten=0.0.0.0 
--extra-args "file=file:../preseed/preseed.cfg"

preseed.cfg  脚本参数设置如下:

[email protected]:~/Virtualization/preseed# grep -v ‘^#‘ /root/preseed/preseed.cfg | grep -v -e ‘^$‘ 
d-i debian-installer/locale string en_US
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layout string Norwegian
d-i     keyboard-configuration/variant  string  Norwegian
d-i netcfg/choose_interface select auto
d-i netcfg/disable_autoconfig boolean true
d-i netcfg/get_nameservers string 128.39.89.8
d-i netcfg/get_ipaddress string 192.168.122.24
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 192.168.122.1
d-i netcfg/confirm_static boolean true
d-i netcfg/get_hostname string control24
d-i netcfg/get_domain string vlab.cs.hioa.no
d-i netcfg/wireless_wep string
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Oslo
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string ntp.ubuntu.com
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i passwd/user-fullname string Mr Root
d-i passwd/username string mroot
d-i passwd/user-password password lightblue
d-i passwd/user-password-again password lightblue
d-i user-setup/encrypt-home boolean false
d-i tasksel/first multiselect OpenSSH server
d-i pkgsel/update-policy select unattended-upgrades
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i finish-install/reboot_in_progress note
xserver-xorg xserver-xorg/autodetect_monitor boolean true
xserver-xorg xserver-xorg/config/monitor/selection-method 
       select medium
xserver-xorg xserver-xorg/config/monitor/mode-list 
       select 1024x768 @ 60 Hz
d-i preseed/late_command string 
in-target chsh -s /bin/bash ; 
in-target echo GRUB_RECORDFAIL_TIMEOUT=2 >> /etc/default/grub ; 
in-target /usr/sbin/update-grub

How to use makeVM.sh

 1965  ./makeVM.sh 16
 1966  virsh list
 1967  ssh [email protected]
[email protected]:~/Virtualization/preseed# virsh list
 Id Name State
----------------------------------------------------
 76 control24 running
 79 control16 running

可以发现 安装之后,主机可以直接ssh到VM上,以实现更多操作。



本文出自 “SystemAdmin成长记” 博客,转载请与作者联系!

以上是关于KVM script 脚本 automate 创建虚拟机vm的主要内容,如果未能解决你的问题,请参考以下文章

new ActiveXObject("Scripting.FileSystemObject") 时抛出异常 .

kvm 创建虚拟机脚本(centos7)

[Notes] AWS Automation using script and AWS CLI

[UVa10188]Automated Judge Script

编写shell脚本实现一键创建KVM虚拟机

mac 使用 automator 创建全局快捷键