制作 Ubuntu 20.04 Server 的模板镜像
# 创建 Cloud Init 配置文件
cat >ubuntu2004-init.conf <<EOF
#cloud-config
apt:
primary:
- arches: [default]
uri: http://apt.x/ubuntu/
timezone: Asia/Shanghai
password: ubuntu
ssh_pwauth: False
runcmd:
- [ apt, -y, remove, cloud-init ]
EOF
# 将 Cloud Init 配置文件做成一个镜像文件以便后续当成光盘传入虚拟机导入指令
cloud-localds ubuntu2004-init.img ubuntu2004-init.conf
# 从内网下载原始基础镜像
wget https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
cp ubuntu-20.04-server-cloudimg-amd64.img ubuntu2004.img
# 磁盘大小加10G
qemu-img resize ubuntu2004.img +10G
# 导入基础镜像,制作出模板镜像
virt-install --os-variant ubuntu20.04 \
--name ubuntu2004 \
--memory 4096 \
--vcpus 2 \
--network bridge=br0 \
--disk ubuntu2004.img,device=disk,bus=virtio \
--disk ubuntu2004-init.img,device=cdrom \
--graphics none \
--import
# 关机
virsh shutdown ubuntu2004
# 拔出 Cloud Init 光盘镜像
virsh change-media ubuntu2004 sda --eject --config
# 禁止root用户远程使用帐号密码登录
virt-customize -a ubuntu2004.img --append-line /etc/ssh/sshd_config:"PermitRootLogin no"
使用模板镜像生成虚拟机
# 使用 clone 的方式从模板镜像直接生成虚拟机
virt-clone -o ubuntu2004 -n ubuntu2004-clone -f ubuntu2004-clone.img
# 通过直接修改镜像中的配置文件配置静态ip地址
virt-customize -a ubuntu2004-clone.img --run-command 'echo "network:\n version: 2\n ethernets:\n enp1s0:\n dhcp4: false\n addresses: [192.168.2.2/24]\n gateway4: 192.168.2.1\n nameservers:\n addresses: [192.168.2.250]" >/etc/netplan/50-cloud-init.yaml'
# 修改密码
virt-customize -a ubuntu2004-clone.img --password ubuntu:password:ubuntu
# 修改 root 密码
virt-customize -a ubuntu2004-clone.img --root-password password:root
# 设置 CPU 最多可以加到 8 颗,下次启动生效
virsh setvcpus ubuntu2004-clone --config --maximum 8
# 设置 CPU 为 2 颗,下次启动生效
virsh setvcpus ubuntu2004-clone 2 --config
# 设置 CPU 为 2 颗,立即生效(对有些操作系统有用)
virsh setvcpus ubuntu2004-clone 2 --live
# 设置内存最大可以加到 16G,需停机
virsh setmaxmem ubuntu2004-clone 16G
# 设置内存为 4G,下次启动生效
virsh setmem ubuntu2004-clone 4G --config
# 设置内存为 4G,立即生效(对有些操作系统有用)
virsh setmem ubuntu2004-clone 4G
磁盘管理
# 创建一块 5G 的磁盘
qemu-img create -f qcow2 ubuntu2004-clone-2.img 5G
# 插入磁盘到 /dev/vdb
virsh attach-disk ubuntu $PWD/ubuntu2004-clone-2.img vdb --subdriver=qcow2 --persistent
# 拔出磁盘
virsh detach-disk ubuntu $PWD/ubuntu2004-clone-2.img --persistent
# 扩展磁盘大小
qemu-img resize $PWD/ubuntu2004-clone-2.img +5G