二、镜像制作
1、环境准备
A、硬件环境
服务器类型 :
VMware
虚拟机
服务器系统 :
CentOS7.1503
服务器网络 :桥接模式
服务器
IP :192.168.1.11
B、软件环境
hypervisor :qemukvm1.5.3141.el7_4.4
镜像网络模式 :Bridge
镜像版本 :CentOS7.1
VNC
客户端 :VNCViewer6.17.1113Windows64bit
yum install -y qemu-kvm libvirt libvirt-python \
libguestfs-tools virt-install
启动服务
systemctl enable libvirtd && systemctl start libvirtd
3、网络设置
由于用的是
VMware
虚拟机,启动的镜像也采用
bridge
模式会使后续的远程连接调试更加方便
添加网桥
br0
需修改
ifcfgens33
与
ifcfgbr0(dhcp
模式
),
配置如下
:
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"
cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE="bridge"
BOOTPROTO="dhcp"
DEVICE="br0"
ONBOOT="yes"
4、创建磁盘
(
创建将来的
Openstack
镜像
)
qemu-img create -f qcow2 /tmp/CentOS67.qcow2 30G
5、启动虚拟机
virt-install --name CentOS67 --vcpu 4 --ram 4096 \
--disk path=/tmp/CentOS67.qcow2 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \--os-type=linux --os-variant=rhel6 \
--cdrom=/data/img/CentOS-6.7-x86_64-minimal.iso
注意:cdrom
后面的镜像需要从
CentOS
官网下载
6、连接
vnc
进行系统安装系统初始化
查看
vnc
端口
virsh # vncdisplay CentOS67
:0
外部连接的
vnc
端口为
590x
例如上面就为
5900
,以
192.168.1.11:5900
连接之后进行安装系统
如果要实现分区自动伸缩,必须在安装系统的时候手动将文件系统格式配置成
ext4 lvm
不支持自动
伸缩功能
安装完系统之后就开始一 一实现功能
7、基础软件包
yum install -y ntp vim wget net-tools tcpdump strace \
sysstat iotop pciutils lsof telnet iftop lrzsz \
unzip dos2unix ipmitool psmisc tree
8、基础优化配置
echo "
* soft nproc 655360
* hard nproc 655360
* soft nofile 655360
* hard nofile 655360" >>/etc/security/limits.conf
sed -i -e "/UseDNS/c UseDNS no" /etc/ssh/sshd_config
sed -i -e "/StrictHostKeyChecking/c StrictHostKeyChecking no\nUserKnownHo
stsFile /dev/null" /etc/ssh/ssh_config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#
关闭
SElinux
echo "net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0" >> /etc/sysctl.conf
sysctl -p
service postfix stop
service iptables stop
chkconfig --del iptables
#
禁用防火墙
chkconfig --del postfix
9、磁盘分区,自动
resizefs(
虚拟机启动时自动将额外
分区扩展到
/data )
redhat
系统 可以通过
cloud-utils-growpart
工具来实现,安装即可用
非
lvm
才可用
yum install -y epel-release
yum install cloud-utils-growpart
10、访问
instance use ssh public key (cloudinit),
安
装即可用
A、安装
cloudint
默认安装之后会把
ssh
密码登陆关掉需手动开启
yum install cloud-init -y
B、开启
ssh
密码登陆
修改
/etc/cloud/cloud.cfg
users:
- default
disable_root: 0
ssh_pwauth: 1
修改
/etc/ssh/sshd_config
sed -i '/^#Port/c Port 22' /etc/ssh/sshd_config
sed -i '/^PasswordAuthentication/c PasswordAuthentication yes' /etc/ssh/s
shd_config
安装
ssh
客户端
yum install -y openssh-clients
C、安装
qemuguestagent
yum install -y qemu-guest-agent
D、接受
userdata
和
metadata
保证虚拟机能连接到
openstack
元数据即可,一般情况用
dhcp
元数据,所以用不到
zeroconf route
,
需将
zeroconf
禁用掉,否则
zeroconf router
在虚拟机开机时会自动生成路由
169.254.0.0/16 0.0.0.0
导致无法与元数据通信
编辑
vim /etc/sysconfig/network-scripts/ifup-eth
注释掉以下部分
if
[ -z "${NOZEROCONF}" -a "${ISALIAS}" = "no" -a "${REALDEVICE}" != "lo"
];
then
ip route add 169.254.0.0/16 dev ${REALDEVICE} metric $((1000 + $(cat
/sys/class/net/${REALDEVICE}/ifindex))) scope link
fi
或者
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
重启网络
service network restart
11、没有硬件
MAC address information
centos6
中
udev rule
会在服务器启动时生成
mac
地址信息,如果不清的话
eth0
网卡将无法正常使用
做完以上操作 清除
mac
信息
rm -f /etc/udev/rules.d/70-persistent-net.rules
如果网卡配置不是按照上面配的,网卡配置中也可能有
mac
地址 需要删掉
以上完成,就可以清除掉操作信息,关闭虚拟机导入上传镜像
12、清除操作痕迹
history -c
关闭虚拟机
poweroff
压缩镜像
,
便于传输
qemu-img convert -c -O qcow2 CentOS67.qcow2 CentOS67_convert.qcow2
13、测试镜像
镜像创建完先在
vmvare
上启动虚拟机测试一下
,
用创建的镜像启动虚拟机
cp CentOS67_convert.qcow2 CentOS67_convert_test.qcow2
qemu-img resize CentOS67_convert_test.qcow2 +30G
#
扩容镜像 验证镜像分区自动扩展功能,首次启动之后虚拟还需重启一次才会扩容分区
virt-install --name centos67 --vcpu 2 --ram 4096 \
--disk /tmp/CentOS67_convert_test.qcow2 \
--import --network bridge=br0,model=virtio \
--graphics vnc,listen=0.0.0.0 --noautoconsole
启动之后一一验证功能,验证没问题之后,上传至
openstack
14、上传镜像到OpenStack云平台
拷贝镜像到
Openstack
控制节点
转化成
raw
格式
Openstack glance nova
后端用
ceph
的话
raw
格式最快
qemu-img convert -f qcow -O raw CentOS67_convert_test.qcow2 CentOS67.raw
上传至
Openstack
source ~/keystonerc_admin
glance image-create --name centos6.7 \
--file CentOS67.raw --dish-format raw \
--container-format bare --is-public
true
--progress
15、参考文献
https://docs.openstack.org/imageguide/openstackimages.html
https://docs.openstack.org/imageguide/centosimage.html
写在最后:
神话是人生的隐喻,每个人身上,都隐藏着自己独特的英雄力量(神话学大师 坎贝尔)
你每天学习一点点,每天只进步1%,一年以后你的水平值是多少呢?
37.78(1.01×365=37.78)
相信概率,不要相信运气,在过程中提升概率
《礼记·中庸》:凡事豫则立,不豫则废。言前定则不跲,事前定则不困,行前定则不疚,道前定则不穷
详情请见,微信公众号: