renben-openstack-制作镜像操作
openstack镜像制作(用虚拟机192.168.124.6)
制作centos7镜像,OpenStack支持qcow2 ios等多种镜像规格
(1)创建镜像的硬盘
(2)删除镜像的唯一性,封装压缩
在找一个虚拟机,专门用来做镜像,需要开启虚拟化
yum install -y libvirt qemu-kvm libguestfs-tools
qemu-img create -f qcow2 /tmp/centos.qcow2 20G
yum install virt-install -y
systemctl start libvirtd
systemctl enable libvirtd
modprobe kvm
virt-install --virt-type kvm --name centos --ram 1024 --disk /tmp/centos.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=centos7.0 --location=/tmp/CentOS-7- x86_64-Minimal-1708.iso
通过TightVNC Viewer连接kvm主机(ip:192.168.124.6),然后开始安装即可,如下
等几分钟安装完成选则reboot
然后在linux主机执行如下,启动虚拟机
virsh start centos
再通过vnc连接
输入账号密码登陆进去
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT设置为yes
去掉uuid这行
service network restart 重启服务
ip addr 查看ip地址,显示如下
在kvm的物理机上登陆虚拟机
ssh root@192.168.122.170 账号:root 密码:root
做如下修改:
sed 's/.*UseDNS.*/UseDNS no/g' /etc/ssh/sshd_config -i
sed 's/^#PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config -i
sed 's/GSSAPIAuthentication.*/GSSAPIAuthentication no/g' /etc/ssh/sshd_config -i
关闭selinux iptables
sed 's/^SELINUX.*/SELINUX=disabled/g' /etc/selinux/config -i
iptables -F
systemctl stop firewalld
ystemctl disable firewalld
vim /etc/default/grub
grub_cmdline_linux 这行添加如下一段
console=ttys0,115200n8
变成如下
GRUB_CMDLINE_LINUX="crashkernel=auto console=ttys0,115200n8 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
yum install vim net-tools wget lrzsz unzip -y
把cloud.zip上传到192.168.122.170这个机器上
解压
unzip cloud.zip
mv centos-cloud-init.sh cloud-init.sh
chmod 755 cloud-init.sh
chmod +x cloud-init.sh
sed -i 's/\r//g' cloud-init.sh
mv cloud-init.sh /usr/bin/
echo ' /bin/bash /usr/bin/cloud-init.sh' >> /etc/rc.d/rc.local
注:cloud-init.sh解释
在云平台中,创建云主机的时候希望能够对主机进行一些初始化操作,如配置ip,主机名,密码,ssh登录等
编辑网卡配置文件
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
一定要删除MAC和UUID
删除网卡规则文件
rm -f /etc/udev/rules.d/70-persistent-net.rules
清除相关记录
yum clean all
rm -rf /var/log/yum.log
rm -rf /var/lib/yum/*
rm -rf /root/install.log
rm -rf /root/install.log.syslog
rm -rf /root/anaconda-ks.cfg
rm -rf /var/log/anaconda*
rm -rf /etc/udev/rules.d/70-persistent-net.rules
关机
history -c; init 0;
然后在kvm物理机上执行如下命令
virt-sysprep -d centos #清理机器信息
cd /tmp/
virt-sparsify --compress ./centos.qcow2 ./centos7.qcow2
压缩镜像,压缩之后的镜像centos7.qcow2保存到桌面,可以上传到openstack