裸金属服务需要使用部署镜像与用户镜像,前者包含ironic-python-agent服务用于在部署裸金属服务过程中控制和部署裸金属实例节点,后者供最终用户使用。以下所有操作在OpenStack控制节点执行,后续使用镜像都以Centos镜像为例。
- 获取x86、ARM Guest镜像。
|
wget https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2003.qcow2 --no-check-certificate
wget https://cloud.centos.org/centos/7/images/CentOS-7-aarch64-GenericCloud-2003.qcow2 --no-check-certificate
|
- 将裸金属实例的用户镜像添加到Glance镜像服务。
|
glance image-create --name CentOS-7-x86_64-GenericCloud-2003 --visibility public --disk-format qcow2 --container-format bare < ./CentOS-7-x86_64-GenericCloud-2003.qcow2
glance image-create --name CentOS-7-aarch64-GenericCloud-2003 --visibility public --disk-format qcow2 --container-format bare < ./CentOS-7-aarch64-GenericCloud-2003.qcow2
|
- 获取x86部署镜像。
|
wget --no-check-certificate https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos7-stable-train.initramfs -o ipa-x86.initramfs
wget --no-check-certificate https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos7-stable-train.kernel -o ipa-x86.kernel
|
- 将x86部署镜像添加到Glance镜像服务。
|
openstack image create ipa-x86-kernel --public --disk-format aki --container-format aki --file ipa-x86.kernel
openstack image create ipa-x86-initrd --public --disk-format ari --container-format ari --file ipa-x86.initramfs
|
- 编译arm部署镜像。
利用ironic-python-agent-builder编译arm部署镜像,因ironic-python-agent-builder最新版本已不支持python2(支持Python2的最高版本为1.1.0),建议在其他arm环境上升级python3(以下以python3.9为例),进行部署镜像编译。
- 安装ironic-python-agent-builder。
|
pip install ironic-python-agent-builder==5.2.0
|
- 安装diskimage-builder。
|
pip install diskimage-builder==3.28.0
|
- 安装setuptools。
- 配置环境变量。
|
export ARCH=aarch64
export DIB_REPOREF_ironic_python_agent=stein-eol
export DIB_REPOREF_requirements=stein-eol
export DIB_RELEASE=7
export DIB_PYTHON_EXEC="/usr/bin/python3"
export DIB_DEV_USER_USERNAME=devuser
export DIB_DEV_USER_PWDLESS_SUDO=YES
export DIB_DEV_USER_PASSWORD=PASSWORD
git config --global http.sslverify false
|
为方便理解,本文将涉及到的密码全部以“PASSWORD”代替,请用户根据实际情况进行修改。此处PASSWORD为部署引导过程中小系统的登录密码,可自定义密码,默认登录账号为devuser。
- 修改构建工具。
- 创建/etc/resolv.conf文件。
touch /etc/resolv.conf
- 修改01-00-centos-python3文件。
vi /usr/local/lib/python3.9/site-packages/diskimage_builder/elements/yum/pre-install.d/01-00-centos-python3
修改区域已在下图标记出来,请对比修改。

- 修改98-source-repositories文件。
vi /usr/local/lib/python3.9/site-packages/diskimage_builder/elements/source-repositories/extra-data.d/98-source-repositories
修改区域已在下图标记出,请对比修改。

- 修改install-packages文件。
vi /usr/local/lib/python3.9/site-packages/diskimage_builder/elements/yum/bin/install-packages
修改区域已在下图标记出来,请对比修改。

- 编译部署镜像。
ironic-python-agent-builder -o ipa-aarch64 -e "devuser dynamic-login dhcp-all-interfaces deploy-baremetal" --release 7 centos-minimal --extra-args=-x
编译完成后,会生成ipa-aarch64.initramfs与ipa-aarch64.kernel两个文件,这两个文件就是aarch64部署镜像,将这两个文件上传到OpenStack控制节点。
- 将aarch64部署镜像添加到Glance镜像服务。
|
openstack image create ipa-aarch64-kernel --public --disk-format aki --container-format aki --file ipa-aarch64.kernel
openstack image create ipa-aarch64-initrd --public --disk-format ari --container-format ari --file ipa-aarch64.initramfs
|