18893f0d08
Change-Id: I3aa9bcf81a961f2eac5068ab243001f0b03738f6 Closes-bug: #1526346 |
||
---|---|---|
.. | ||
ironic_fa_deploy | ||
README.rst | ||
requirements.txt | ||
setup.cfg | ||
setup.py |
Fuel Agent driver for Ironic
ironic-fa-deploy
package adds support of Fuel Agent to
OpenStack Ironic. Ironic1 is baremetal provisioning service
with support of multiple hardware types. Ironic architecture is able to
work with deploy agents. Deploy agent is a service that does
provisioning tasks on the node side. Deploy agent should be integrated
into bootstrap ramdisk image. ironic-fa-deploy
contains
pluggable drivers code for Ironic that uses Fuel Agent as deploy agent.
Current implementation requires and tested with Ironic Liberty release.
There are two drivers: fuel_ipmitool
and
fuel_ssh
. fuel_ipmitool
uses "ipmitool"
utility for node power control and management via standard Ironic
interfaces and Fuel Agent via Ironic deploy driver's interface.
fuel_ssh
intended for virtual developers' environments.
Node enrollment process with Fuel Agent
fuel_ipmitool
driver used in example.
- Enable the driver, add
fuel_ipmitool
to the list ofenabled_drivers
in[DEFAULT]
section of/etc/ironic/ironic.conf
. - Generate RSA key pair for SSH access to bootstrap system on the node.
- Create bootstrap files with Fuel Agent via
fuel-bootstrap-image-builder
script fromfuel-main
2 project, public key should be injected into bootstrap system. We should obtain three files as result: kernel, initrd image and root FS image. - Upload kernel, initrd image and root FS image to the Glance image service.
Note
Fuel Agent driver requires OpenStack Swift or Ceph RADOS Gateway as Glance backend.
Create a node in Ironic with
fuel_ipmitool
driver and associate port with the node:ironic node-create -d fuel_ipmitool ironic port-create -n <node uuid> -a <MAC address>
Set IPMI address and credentials as described in the Ironic documentation 3.
Set Fuel Agent related driver's parameters for the node:
ironic node-update <node uuid> add driver_info/deploy_kernel=KERNEL \ driver_info/deploy_ramdisk=INITRD \ driver_info/deploy_squashfs=ROOTFS \ driver_info/fuel_key_filename=PRIVATE_KEY
Replace KERNEL, INITRD, ROOTFS with Glance UUIDs of deploy images, PRIVATE_KEY with path to private key file.
Place disks scheme in Nailgun format to the metadata of Glance instance image with
mos_disk_info
key, example:glance image-update <image uuid> --property mos_disk_info='[{"name": "sda", "extra": [], "free_space": 11000, "type": "disk", "id": "vda", "size": 11000, "volumes": [{"mount": "/", "type": "partition", "file_system": "ext4", "size": 10000}]}]'
After steps above the node is ready for deploying. User can invoke
nova boot
command for deploying an instance image.
TODO:
- Add custom boot interface and refactor the drivers code with boot interface4.
- Add cleaning support.
- Add RAID support via Ironic RAID interface.