制作openstack Linux镜像之cloud-init初始化

一、硬件及软件准备

:1、物理机一台:要求支持硬件虚拟化,将centos7的mini版本安装在物理机上,如果实在找不到多余的机器可以在windows上安装vmware。然后在vmware上创建centos7的虚拟机。2、CentOS7.5的镜像
3、下载VMware workstation 15

二、制作过程

如果使用VMware,注意必须开启硬件虚拟化功能

 1、检查系统是否支持KVM

1 egrep "(vmx|svm)" /proc/cpuinfo

2、安装远程桌面访问依赖

1  yum -y install libX11 xorg-x11-server-utils xorg-x11-proto-devel dbus-x11 xorg-x11-xauth xorg-x11-drv-ati-firmware  xorg-x11-xinit

3、重启系统生效

1 reboot

4、安装KVM

1 yum install -y virt-manager virt-install libvirt* libguestfs-tools *VNC* qemu-kvm

5、开机启动libvirtd

1 systemctl enable libvirtd
2 systemctl start libvirtd

6、 创建openstack linux系统镜像,大小为20G

1 qemu-img create -f qcow2 centos.qcow2 20G

7、使用virt-manager安装系统,注意磁盘和网络选择virtio虚拟模式

8、安装操作系统

三、配置虚拟机

1、启用电源管理工具

1 yum install -y acpid
2 systemctl enable acpid

2、安装cloud-init

一个实例必须与元数据服务进行交互,以便在启动时执行几个任务。例如,实例必须获取ssh公钥并运行用户数据脚本。

1 yum install -y epel-release.noarch #有的不需要
2 yum install -y cloud-init

3、配置/etc/cloud/cloud.cnf文件

1 users:
2   - name: admin
3     (...)

4、安装cloud-utils-growpart和cloud-initramfs-growroot以允许分区自动调整大小

   注意:在映像中支持功能的最简单方法是将cloud-utils包(包括用于扩展分区的growpart工具)、cloud-initramfs-growroot包(支持在第一次引导时调整根分区大小)和cloud-init包安装到映像中,使用这些安装后,图像在引导时执行发根分区大小调整

            如果不能安装cloud-initramfs-tools,Robert Plestenjak有一名为linux-rootfs-ze的github项目,她包含使用growpart最新ramdisk的脚本,以便引导时适当调整映像大小

           如果可以安装cloud-utils和cloud-init包,我们建议在创建时,创建一个ext3或ext4分区(不由LVM管理)

1 yum install -y cloud-utils-growpart cloud-initramfs-growroot

5、禁用zeroconf

对于元数据服务的实例,必须禁用默认的zeroconf路由

1 echo "NOZEROCONF=yes" >> /etc/sysconfig/network

6、配置控制台

编辑/etc/default/grub文件并配置该 GRUB_CMDLINE_LINUX选项。删除 rhgb quiet并添加到该选项:console=tty0 console=ttyS0,115200n8

1 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200n8"

7、运行以下命令保存更改

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.14.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.14.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-605f01abef434fb98dd1309e774b72ba
Found initrd image: /boot/initramfs-0-rescue-605f01abef434fb98dd1309e774b72ba.img
done

8、关机

1 poweroff

四,后期处理

1、删除静态信息 必去,MAC UUID 规则等

虚拟以太网卡的MAC地址会记录在一些文件中,例如/etc/sysconfig/network-scripts/ifcfg-eth0和/etc/udev/rules.d/70-persistent-net.rules。每次映像启动时,虚拟以太网卡将具有不同的MAC地址,因此必须从配置文件中删除该信息。

virt-sysprep -d centos

2、取消定义libvirt域

1 virsh undefine centos

五、总结

到目前,centos镜像已经安装完成,带入到平台后,发现硬盘不会自动扩容,后续还需继续探讨

可参考openstack官网:https://docs.openstack.org/image-guide/centos-image.html

猜你喜欢

转载自www.cnblogs.com/Felic/p/10047958.html
今日推荐