Import Image requirements under a new "Creating and adding images to the Image service" block in the "Configure integration with other OpenStack components" section. Change-Id: I503f8c60c7579e7ae5daf30032eb0b047ad40531 Partial-bug: #1612278
4.3 KiB
Create and add images to the Image service
Bare Metal provisioning requires two sets of images: the deploy images and the user images. The deploy images are used by the Bare Metal service to prepare the bare metal server for actual OS deployment. Whereas the user images are installed on the bare metal server to be used by the end user. Below are the steps to create the required images and add them to the Image service:
The disk-image-builder can be used to create images required for deployment and the actual OS which the user is going to run.
Install diskimage-builder package (use virtualenv, if you don't want to install anything globally):
# pip install diskimage-builderBuild the image your users will run (Ubuntu image has been taken as an example):
Partition images
$ disk-image-create ubuntu baremetal dhcp-all-interfaces grub2 -o my-imageWhole disk images
$ disk-image-create ubuntu vm dhcp-all-interfaces -o my-image
The partition image command creates
my-image.qcow2,my-image.vmlinuzandmy-image.initrdfiles. Thegrub2element in the partition image creation command is only needed if local boot will be used to deploymy-image.qcow2, otherwise the imagesmy-image.vmlinuzandmy-image.initrdwill be used for PXE booting after deploying the bare metal withmy-image.qcow2.If you want to use Fedora image, replace
ubuntuwithfedorain the chosen command.Note
To build the deploy image take a look at the Building or downloading a deploy ramdisk image section.
Add the user images to the Image service
Load all the images created in the below steps into the Image service, and note the image UUIDs in the Image service for each one as it is generated.
Add the kernel and ramdisk images to the Image service:
$ glance image-create --name my-kernel --visibility public \ --disk-format aki --container-format aki < my-image.vmlinuzStore the image uuid obtained from the above step as
MY_VMLINUZ_UUID.$ glance image-create --name my-image.initrd --visibility public \ --disk-format ari --container-format ari < my-image.initrdStore the image UUID obtained from the above step as
MY_INITRD_UUID.Add the my-image to the Image service which is going to be the OS that the user is going to run. Also associate the above created images with this OS image. These two operations can be done by executing the following command:
$ glance image-create --name my-image --visibility public \ --disk-format qcow2 --container-format bare --property \ kernel_id=$MY_VMLINUZ_UUID --property \ ramdisk_id=$MY_INITRD_UUID < my-image.qcow2
Note
To deploy a whole disk image, a kernel_id and a ramdisk_id shouldn't be associated with the image. For example,
$ glance image-create --name my-whole-disk-image --visibility public \ --disk-format qcow2 \ --container-format bare < my-whole-disk-image.qcow2Add the deploy images to the Image service
Add the my-deploy-ramdisk.kernel and my-deploy-ramdisk.initramfs images to the Image service:
$ glance image-create --name deploy-vmlinuz --visibility public \ --disk-format aki --container-format aki < my-deploy-ramdisk.kernelStore the image UUID obtained from the above step as
DEPLOY_VMLINUZ_UUID.$ glance image-create --name deploy-initrd --visibility public \ --disk-format ari --container-format ari < my-deploy-ramdisk.initramfsStore the image UUID obtained from the above step as
DEPLOY_INITRD_UUID.