制作 CentOS 7 的模板镜像
# 创建 Cloud Init 配置文件
cat >centos7-init.conf <<EOF
#cloud-config
timezone: Asia/Shanghai
password: centos
ssh_pwauth: False
runcmd:
- [ yum, -y, remove, cloud-init ]
EOF
# 将 Cloud Init 配置文件做成一个镜像文件以便后续当成光盘传入虚拟机导入指令
cloud-localds centos7-init.img centos7-init.conf
# 从内网下载基础镜像并解压
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2.xz
cp CentOS-7-x86_64-GenericCloud.qcow2 centos7.qcow2
# 磁盘大小加10G
qemu-img resize centos7.qcow2 +10G
virt-install --os-variant centos7.0 \
--name centos7 \
--memory 4096 \
--vcpus 2 \
--network bridge=br0 \
--disk centos7.qcow2,device=disk,bus=virtio \
--disk centos7-init.img,device=cdrom \
--graphics none \
--import
# 关机
virsh shutdown centos7
# 拔出 Cloud Init 光盘镜像
virsh change-media centos7 sda --eject --config
# 禁止root用户远程使用帐号密码登录
virt-customize -a centos7.qcow2 --append-line /etc/ssh/sshd_config:"PermitRootLogin no"
使用模板镜像生成虚拟机
# 使用 clone 的方式从模板镜像直接生成虚拟机
virt-clone -o centos7 -n centos7-clone -f centos7-clone.qcow2
# 通过直接修改镜像中的配置文件配置静态ip地址
virt-customize -a centos7-clone.qcow2 --run-command 'echo -e "DEVICE=eth0\nONBOOT=yes\nTYPE=Ethernet\nBOOTPROTO=static\nIPADDR=192.168.2.2\nNETMASK=255.255.255.0\nGATEWAY=192.168.2.1\nDNS1=192.168.2.250" >/etc/sysconfig/network-scripts/ifcfg-eth0'
# 修改 root 密码
virt-customize -a centos7-clone.qcow2 --root-password password:root
# 设置 CPU 最多可以加到 8 颗,下次启动生效
virsh setvcpus centos7-clone --config --maximum 8
# 设置 CPU 为 2 颗,下次启动生效
virsh setvcpus centos7-clone 2 --config
# 设置 CPU 为 2 颗,立即生效(对有些操作系统有用)
virsh setvcpus centos7-clone 2 --live
# 设置内存最大可以加到 16G,需停机
virsh setmaxmem centos7-clone 16G
# 设置内存为 4G,下次启动生效
virsh setmem centos7-clone 4G --config
# 设置内存为 4G,立即生效(对有些操作系统有用)
virsh setmem centos7-clone 4G
磁盘管理
# 创建一块 5G 的磁盘
qemu-img create -f qcow2 centos7-clone-2.img 5G
# 插入磁盘到 /dev/vdb
virsh attach-disk ubuntu $PWD/centos7-clone-2.img vdb --subdriver=qcow2 --persistent
# 拔出磁盘
virsh detach-disk ubuntu $PWD/centos7-clone-2.img --persistent
# 扩展磁盘大小
qemu-img resize $PWD/centos7-clone-2.img +5G
网友评论