##你好!世界
###安装虚拟机
安装虚拟机的时候勾上网卡选项
ip a 查看IP地址,链接上终端软件xshell等
忘记勾选,可以编辑网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp #改成dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e97ec6f4-50db-4474-a67e-4c921058d661
DEVICE=ens33
ONBOOT=yes #no改成yes

重启网卡systemctl restark network 再ip a 查看IP地址,链接上终端软件xshell等

###配置本地yum源

1
2
mv /etc/yum.repo.d/* /home
vi /etc/yum.repo.d/a.repo

###repo内容如下

1
2
3
4
5
[a]
name=a
baseurl=file:///media
enabled=1
gpgcheck=0

###挂载安装软件,kvm安装虚拟机
将镜像文件上传到opt目录下

1
2
3
4
5
6
7
mount /dev/cdrom /media
yum install -y libvirt virt-install qemu-kvm vim
systemctl start libvirtd.service
systemctl status libvirtd.service
systemctl stop firewalld
systemctl disable firewalld
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

###在vnc连接虚拟机安装虚拟机,过程省略
名字按实际情况修改

1
2
3
4
virsh list --all
virsh destroy centos7
virsh domrename centos7 ao
virsh list --all

###更改磁盘格式

1
2
3
cd /opt
qemu-img convert -f raw -O qcow2 centos.raw centos.qcow2
virsh edit ao

###更改以下内容

1
2
3
4
5
6
7
8
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/> #raw改成qcow2
<source file='/opt/centos.qcow2'/> #raw改成qcow2
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>

###开机验证 virsh start ao
###快照管理
名字按实际情况修改

1
2
3
4
virsh snapshot-create-as ao
virsh snapshot-list ao
virsh snapshot-revert ao 167093632
virsh snapshot-delete ao --snapshotname 1670936324

###自动化克隆完整虚拟机web01

1
2
3
4
ll -h
virt-clone --auto-clone -o ao -n web01
ll -h
virsh dumpxml web01|grep qcow2

###脚本

1
2
3
mkdir -p /server/scripts
cd /server/scripts
vim link_clone.sh

###内容如下

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
new_vm=$1
qemu-img create -f qcow2 -b /opt/centos.qcow2 /opt/${new_vm}.qcow2
virsh dumpxml ao >/tmp/${new_vm}.xml
sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml
sed -i '/<uuid>/d' /tmp/${new_vm}.xml
sed -i '/<mac address/d' /tmp/${new_vm}.xml
sed -ri "s#(<source file=')(.*)('/>)#\1/opt/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml
virsh define /tmp/${new_vm}.xml
virsh start ${new_vm}

###sh link_clone.sh 新名字