虚拟机的脚本安装
[root@foundation44 ~]# virt-install \ 脚本内容
> --cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \
> --ram 1024 \ #内存
> --cpus 1 \
> --disk /var/lib/libvirt/images/zz.qcow2,bus=virtio,size=9 \ #zz:为虚拟机的名称
> --name zz \
> --network bridge=br0,model=virtio & #虚拟网卡
##创建脚本文件
[root@foundation44 ~]#vim file.sh
##脚本内容
#!/bin/bash
virt-install \
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \
--ram 1024 \
--cpus 1 \
--disk /var/lib/libvirt/images/zz.qcow2,bus=virtio,size=9 \
--name zz \
--network bridge=br0,model=virtio &
##执行脚本文件
[root@foundation44 ~]#sh file.sh
模拟恢复虚拟机
cd /var/lib/libvirt/images/
mv vmname.qcow2 /mnt/ #硬盘 vmname:虚拟机名称
mv /etc/libvirt/qemu/vmname.xml /mnt #硬件信息文件(位于/etc/libvirt/qemu)
#注意:这里在定义和生成.xml时,当前文件夹(mnt)必须存在有硬盘文件.qcow2与前端管理文件.xml
硬盘文件.qcow2也必须在原来的文件中(/var/lib/libvirt/images/),因为创建前端文件时,
前端文件回到相应位置寻找后端硬盘文件.qcwo2
模拟恢复过程
cd /mnt
virsh create vmname.xml #用硬件信息文件启动虚拟机(临时的)
virsh define vmname.xml #用硬件信息文件启动虚拟机(永久的)
#在操作过程中会报错
[kiosk@foundation44 Desktop]$ virsh create chason.xml
error: Failed to create domain from chason.xml
error: Cannot access storage file '/var/lib/libvirt/images/chason.qcow2' (as uid:4294967295, gid:4294967295): No such file or directory
#解决方案
mv /mnt/vmname.qcow2 /var/lib/libvirt/images/ #将硬盘文件放到原来的文件夹中
虚拟机快照
虚拟机快照:在虚拟机安装过程中,硬盘文件.qcpw2是最主要的,要是没了硬盘文件,虚拟机就挂了,
所以有时候为了保证虚拟机安装时不会误删,可以进行虚拟机快照
qemu-img create -f qcow2 -b vmname.qcow2 newvmname.qcow2 #vmname.qcow2:母盘 newname:照片
快照安装虚拟机脚本
#!/bin/bash
qemu-img create -f qcow2 -b \
/var/lib/libvirt/images/$1.qcow2 /var/lib/libvirt/images/$2.qcow2
virt-install \
--name $2 \
--ram 1024 \
--cpus 1 \
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
--network bridge=br0,model=virtio \
--import &
自动安装虚拟机
1.先在真机搭建dhcpd服务,并开启dhcpd服务
2.在虚拟机(或真机)用yum源下载:yum install system-config-kickstart.noarch -y
[root@desktop144 ~]# system-config-kickstart
3.进行图形选择,将 ks.cfg放在/var/www/html中,并进行编辑
[root@desktop144 html]# ksvalidator ks.cfg #检查语法错误
[root@desktop144 html]# systemctl stop firewalld #关防火墙
[root@desktop144 html]# systemctl start httpd #开启httpd服务
[root@desktop144 html]# systemctl status httpd
在真机上写脚本
[kiosk@foundation44 Desktop]$ vim zidong.sh #写脚本
脚本内容:
#!/bin/bash
virt-install \
--name $1 \
--ram 1024 \
--cpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=9 \
--network bridge=br0,model=virtio \
--location http://172.25.254.44/rhel7.0 \ #真机IP跟html/目录路径
--extra-args ks=http://172.25.254.144/ks.cfg & #ks.cfg所处电脑的IP
执行脚本
[root@foundation44 Desktop]# sh zidong.sh dd #执行脚本
虚拟机的reset脚本
#!/bin/bash
virsh destory $1
rm -rf /var/lib/libvirt/images/$1.qcow2
qemu-img create -f qcow2 -b /var/lib/libvirt/images/$2.qcow2 /var/lib/libvirt/images/$1.qcow2
virsh start $1
virt-viewer $1 &
虚拟机管理命令
virt-manager #开启虚拟机管理器
[root@foundation44 ~]# virsh list #显示正在运行的虚拟机
Id Name State
----------------------------------------------------
1 desktop running
2 server running
4 ww running
[root@foundation44 ~]# virsh start ww #打开虚拟机
error: Domain is already active
[root@foundation44 ~]# virsh shutdown ww #正常关闭虚拟机
Domain ww is being shutdown
[root@foundation44 ~]# virsh list
Id Name State
----------------------------------------------------
1 desktop running
2 server running
4 ww running
[root@foundation44 ~]# virsh destroy vmname #强行关闭虚拟机
[root@foundation44 ~]# virt-viewer vmname #显示虚拟机
[root@foundation44 ~]# virsh undefine vmname #删除虚拟机
进程的信号
1.常用信号级别
1 #进程重新加载配置
2 #删除进程在内存中的数据
9 #强行结束单个进程(不可被阻塞)
15 #正常关闭进程(可能会被阻塞)
18 #运行暂停的进程
19 #暂停某个进程(不能被阻塞)
20 #把进程打入后台
kill -信号 进程pid
killall -信号 进程的名字
pkill -u username -信号 #删除用户的进程