准备:一个模板机的磁盘文件及配置文件
功能:1.创建自定义配置单个虚拟机
2.批量创建自定义配置虚拟机
3.批量创建默认配置虚拟机
4.删除虚拟机(这里还可以修改,这里只实现了删除一个虚拟机)
*注意:我们要把配置文件复制一份,然后修改复制得到的,将其需要替换的用相应的字符串替换,mac地址只替换后面三组,具体替换成啥参考sed语句里的,下面的源配置用的是复制修改后的。
#!/usr/bin/bash
batch_selt_define (){
kvmname=openssl rand -hex 5
#随机产生新机子的配置文件和镜像文件name
sourceimg=/var/lib/libvirt/images/vm10.img
sourcexml=/etc/libvirt/qemu/vm10-1.xml
newimg=/var/lib/libvirt/images/
k
v
m
n
a
m
e
.
i
m
g
n
e
w
x
m
l
=
/
e
t
c
/
l
i
b
v
i
r
t
/
q
e
m
u
/
{kvmname}.img newxml=/etc/libvirt/qemu/
kvmname.imgnewxml=/etc/libvirt/qemu/{kvmname}.xml
cp $sourceimg $newimg #产生新机子的img文件
cp $sourcexml KaTeX parse error: Expected 'EOF', got '#' at position 17: …ewxml #̲产生新机子的xml文件 ##…{1}000000 #修改内存
newcpu=KaTeX parse error: Expected 'EOF', got '#' at position 5: 2 #̲修改cpu #修改新…kvmname#;s#kvmuuid#KaTeX parse error: Expected 'EOF', got '#' at position 8: newuuid#̲;s#kvmmen#newmen#;s#kvmcpu#KaTeX parse error: Expected 'EOF', got '#' at position 7: newcpu#̲;s#kvmimg#newimg#;s#kvmmac#$newmac#" $newxml
virsh define $newxml
virsh list --all
}
input () {
read -p "请输入你要创建的个数: " num
read -p “请输入你要创建的内存大小:” men
read -p “请输入你要创建的cpu个数:” cpu
}
cat << EOF
1.创建自定义配置单个虚拟机
2.批量创建自定义配置虚拟机
3.批量创建默认配置虚拟机
4.删除虚拟机
EOF
read -p "请输入你要选择的操作1|2|3|4 " var
case $var in
1)
read -p “请输入你要创建的内存大小:” men
read -p “请输入你要创建的cpu个数:” cpu
batch_selt_define $men
c
p
u
;
;
2
)
r
e
a
d
−
p
"
请
输
入
你
要
创
建
的
个
数
:
"
n
u
m
r
e
a
d
−
p
"
请
输
入
你
要
创
建
的
内
存
大
小
:
"
m
e
n
r
e
a
d
−
p
"
请
输
入
你
要
创
建
的
c
p
u
个
数
:
"
c
p
u
f
o
r
(
(
i
=
1
;
i
<
=
cpu ;; 2) read -p "请输入你要创建的个数: " num read -p "请输入你要创建的内存大小:" men read -p "请输入你要创建的cpu个数:" cpu for (( i=1;i<=
cpu;;2)read−p"请输入你要创建的个数:"numread−p"请输入你要创建的内存大小:"menread−p"请输入你要创建的cpu个数:"cpufor((i=1;i<=num;i++))
do
batch_selt_define $men
c
p
u
d
o
n
e
;
;
3
)
r
e
a
d
−
p
"
请
输
入
你
要
创
建
的
个
数
:
"
n
u
m
f
o
r
(
(
i
=
1
;
i
<
=
cpu done ;; 3) read -p "请输入你要创建的个数: " num for (( i=1;i<=
cpudone;;3)read−p"请输入你要创建的个数:"numfor((i=1;i<=num;i++))
do
batch_selt_define 1 1
done
;;
4)
virsh list --all
read -p “请输入要删除的主机名!” name
virsh undefine
n
a
m
e
r
m
−
r
f
/
v
a
r
/
l
i
b
/
l
i
b
v
i
r
t
/
i
m
a
g
e
s
/
name rm -rf /var/lib/libvirt/images/
namerm−rf/var/lib/libvirt/images/{name}.img
rm -rf /etc/libvirt/qemu/${name}.xml
esac