虚拟机的快照
在/var/lib/libvirt/images/目录下找到进行快照的xx虚拟机的硬盘文件,以westos虚拟机为例
第一步:创建虚拟机的镜像快照文件
##建立快照,create创建,-f格式qcow2,-b 源虚拟机磁盘文件
[root@foundation70 images]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/westos.qcow2 /var/lib/libvirt/images/node.qcow2
Formatting ‘/var/lib/libvirt/images/node.qcow2’, fmt=qcow2 size=6442450944 backing_file=’/var/lib/libvirt/images/westos.qcow2’ encryption=off cluster_size=65536 lazy_refcounts=off
##查看出现node.qcow2 快照文件
[root@foundation70 images]# ls
node.qcow2 rh124-desktop-vdb.qcow2 rh124-server-vdb.ovl
rh124-desktop-vda.ovl rh124-desktop.xml rh124-server-vdb.qcow2
rh124-desktop-vda.qcow2 rh124-server-vda.ovl rh124-server.xml
rh124-desktop-vdb.ovl rh124-server-vda.qcow2 westos.qcow2
第二步:打开虚拟机管理器
选择第四个镜像安装
添加第一步创建好的node镜像文件路径
添加你选择的内存大小和cpu的个数
选择镜像虚拟机的名称
快照虚拟机建立完成
快照脚本自动安装
快照的脚本内容
><font color=black>qemu-img create \
-f qcow2 \
-b /var/lib/libvirt/images/$1.qcow2 /var/lib/libvirt/images/$2.qcow2 &> /dev/null
virt-install \
--name $2 \
--memory 1024 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
--network source=br0,model=virtio \
--import &> /dev/null &
其中$1表示结束后第一个字符串(作快照的虚拟机的名字),$2表示结束后第二个字符串(快照后新的虚拟机的名字)
–name————快照虚拟机的名字
–memory————内存的大小
–vcpus————cpu的个数
–disk————硬盘的路径,bus————硬盘运行模式
–network———网卡,source——连接方式,model————网卡的运行模式
–import ————导入
&> /dev/null————将所有输出扔到垃圾箱(/dev/null)
& ————————后台运行,步占用终端
全自动化安装
在进行虚拟机的全自动化安装之前,我们需要下载system-config-kickstart软件;system-config-kickstart是一款制作kickstart文件的图形化工具
我们可以选择在虚拟机中运行,并将其共享到网络上
第一步:使用yum命令安装system-config-kickstart文件
然后打开该文件进行配置
选择语言,键盘模式,时区位置,输入超级用户密码
HTTP安装方式,在server填入网络yum源的ip,在Directory填入路径
设置分盘,其中/分区需要选择fill all unused space on disk,充满剩余所有的内存
添加网卡的名字及分配ip的方式
将防火墙设置为关闭状态
然后将生成的文件保存到/var/www/html/文件下
该文件时http超文本传输的共享文件夹,只有在该目录下能使用http超文本传输进行访问以及传输
第二步:修改/var/www/html/ks.cfg文件内容,使该文件内容可以被使用
修改时区,在最后加
%post ——————##虚拟机建立后需要做的事情
touch /mnt/file
%end
%packages———— ##软件包
@base —————— ##软件组
dhcp——————— ##dhcp软件
%end
退出后保存,并使用该命令查看ksvalidator ks.cfg有无语法错误
下面是kickstart生成的ks.cfg及自己修改添加后的文件
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$3Ff/whVm$Oa1EGV5EB4GLa0aSng5tW.
# Use network installation
url --url="http://172.25.254.8/westos"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --enforcing
# Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=200
part swap --fstype="swap" --size=500
part / --fstype="xfs" --grow --size=1
%post
touch /mnt/file
%end
%packages
@base
dhcp
%end
第三步:关闭防火墙开启dhcp服务并进行测试
[root@localhost dhcp]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2019-07-26 02:12:20 CST; 24s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 5326 (dhcpd)
Status: “Dispatching packets…”
CGroup: /system.slice/dhcpd.service
└─5326 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -gr…
Jul 26 02:12:20 localhost.localdomain dhcpd[5326]: you want, please write …
Jul 26 02:12:20 localhost.localdomain dhcpd[5326]: in your dhcpd.conf file…
Jul 26 02:12:20 localhost.localdomain dhcpd[5326]: to which interface virb…
Jul 26 02:12:20 localhost.localdomain dhcpd[5326]:
Jul 26 02:12:20 localhost.localdomain dhcpd[5326]: Listening on LPF/eth0/52:5…
Jul 26 02:12:20 localhost.localdomain dhcpd[5326]: Sending on LPF/eth0/52:5…
Jul 26 02:12:20 localhost.localdomain dhcpd[5326]: Sending on Socket/fallba…
Jul 26 02:12:20 localhost.localdomain systemd[1]: Started DHCPv4 Server Daemon.
Jul 26 02:12:30 localhost.localdomain dhcpd[5326]: DHCPREQUEST for 172.25.254…
Jul 26 02:12:30 localhost.localdomain dhcpd[5326]: DHCPACK on 172.25.254.82 t…
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost dhcp]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2019-07-26 01:44:20 CST; 28min ago
Docs: man:firewalld(1)
Main PID: 586 (code=exited, status=0/SUCCESS)
Jul 26 00:48:58 localhost.localdomain systemd[1]: Starting firewalld - dynami…
Jul 26 00:48:59 localhost.localdomain systemd[1]: Started firewalld - dynamic…
Jul 26 01:44:20 localhost.localdomain systemd[1]: Stopping firewalld - dynami…
Jul 26 01:44:20 localhost.localdomain systemd[1]: Stopped firewalld - dynamic…
Hint: Some lines were ellipsized, use -l to show in full.
在网页端输入http://172.25.254.170/ks.cfg查看是否该文件被共享出来
下面的内容为全自动化脚本的内容
test -z "$1" &&{
echo "Error:Please input VMNAME following scritps!!"
exit
}
virt-install \
--name $1 \
--location http://172.25.254.170/westos \
--memory 1024 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,size=6,bus=virtio \
--network source=br0,model=virtio \
--extra-args "ks=http://172.25.254.66/ks.cfg" &> /dev/null &
test————判断语句
-z——————0
&&——————如果第一个字符串=0,执行ehco后的语句
–name————快照虚拟机的名字
-location ————用网络方式进行安装
–memory————内存的大小
–vcpus————cpu的个数
–disk————硬盘的路径,size——硬盘大小,bus————硬盘运行模式
–network———网卡,source——连接方式,model————网卡的运行模式
–import ————导入
&> /dev/null————将所有输出扔到垃圾箱(/dev/null)
& ————————后台运行,步占用终端