Update the Ironic documentation
Change-Id: I2d4fcd51cd81567f22ccee85213e24508b0bd25d
This commit is contained in:
parent
445a0cb009
commit
ad03b3a2ce
@ -6,26 +6,12 @@ Ironic in Kolla
|
||||
|
||||
Overview
|
||||
~~~~~~~~
|
||||
Currently Kolla can deploy the Ironic services:
|
||||
|
||||
- ironic-api
|
||||
- ironic-conductor
|
||||
- ironic-dnsmasq
|
||||
- ironic-inspector
|
||||
|
||||
As well as a required PXE service, deployed as ironic-pxe.
|
||||
|
||||
Current status
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The Ironic implementation is "tech preview", so currently instances can only be
|
||||
deployed on baremetal. Further work will be done to allow scheduling for both
|
||||
virtualized and baremetal deployments.
|
||||
Ironic works well in Kolla, though it is not currently tested as part of Kolla
|
||||
CI, so may be subject to instability.
|
||||
|
||||
Pre-deployment Configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Enable Ironic role in ``/etc/kolla/globals.yml``:
|
||||
Enable Ironic in ``/etc/kolla/globals.yml``:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
@ -33,18 +19,124 @@ Enable Ironic role in ``/etc/kolla/globals.yml``:
|
||||
|
||||
.. end
|
||||
|
||||
Beside that an additional network type ``vlan,flat`` has to be added to a list of
|
||||
tenant network types:
|
||||
In the same file, define a range of IP addresses that will be available for use
|
||||
by Ironic inspector, as well as a network to be used for the Ironic cleaning
|
||||
network:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
neutron_tenant_network_types: "vxlan,vlan,flat"
|
||||
ironic_dnsmasq_dhcp_range: "192.168.5.100,192.168.5.110"
|
||||
ironic_cleaning_network: "public1"
|
||||
|
||||
.. end
|
||||
|
||||
Configuring Web Console
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ironic inspector also requires a deploy kernel and ramdisk to be placed in
|
||||
``/etc/kolla/config/ironic/``. The following example uses coreos which is
|
||||
commonly used in Ironic deployments, though any compatible kernel/ramdisk may
|
||||
be used:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ curl https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe.vmlinuz \
|
||||
-o /etc/kolla/config/ironic/ironic-agent.kernel
|
||||
|
||||
$ curl https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem.cpio.gz \
|
||||
-o /etc/kolla/config/ironic/ironic-agent.initramfs
|
||||
|
||||
.. end
|
||||
|
||||
Deployment
|
||||
~~~~~~~~~~
|
||||
Run the deploy as usual:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ kolla-ansible deploy
|
||||
|
||||
.. end
|
||||
|
||||
|
||||
Post-deployment configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
A script named `init-runonce` is supplied as part of kolla-ansible to
|
||||
initialise the cloud with some defaults (only to be used for demo purposes):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
tools/init-runonce
|
||||
|
||||
.. end
|
||||
|
||||
Add the deploy kernel and ramdisk to Glance. Here we're reusing the same images
|
||||
that were fetched for the Inspector:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack image create --disk-format aki --container-format aki --public \
|
||||
--file /etc/kolla/config/ironic/ironic-agent.kernel deploy-vmlinuz
|
||||
|
||||
openstack image create --disk-format ari --container-format ari --public \
|
||||
--file /etc/kolla/config/ironic/ironic-agent.initramfs deploy-initrd
|
||||
|
||||
.. end
|
||||
|
||||
Create a baremetal flavor:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack flavor create --ram 512 --disk 1 --vcpus 1 my-baremetal-flavor
|
||||
openstack flavor set my-baremetal-flavor --property \
|
||||
resources:CUSTOM_BAREMETAL_RESOURCE_CLASS=1
|
||||
|
||||
.. end
|
||||
|
||||
Create the baremetal node and associate a port. (Ensure to substitute correct
|
||||
values for the kernel, ramdisk, and MAC address for your baremetal node)
|
||||
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack baremetal node create --driver ipmi --name baremetal-node \
|
||||
--driver-info ipmi_port=6230 --driver-info ipmi_username=admin \
|
||||
--driver-info ipmi_password=password \
|
||||
--driver-info ipmi_address=192.168.5.1 \
|
||||
--resource-class baremetal-resource-class --property cpus=1 \
|
||||
--property memory_mb=512 --property local_gb=1 \
|
||||
--property cpu_arch=x86_64 \
|
||||
--driver-info deploy_kernel=15f3c95f-d778-43ad-8e3e-9357be09ca3d \
|
||||
--driver-info deploy_ramdisk=9b1e1ced-d84d-440a-b681-39c216f24121
|
||||
|
||||
openstack baremetal port create 52:54:00:ff:15:55 --node 57aa574a-5fea-4468-afcf-e2551d464412
|
||||
|
||||
.. end
|
||||
|
||||
Booting the baremetal
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
You can now use the following sample command to boot the baremetal instance:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack server create --image cirros --flavor my-baremetal-flavor \
|
||||
--key-name mykey --network public1 demo1
|
||||
|
||||
.. end
|
||||
|
||||
Notes
|
||||
~~~~~
|
||||
|
||||
Debugging DHCP
|
||||
--------------
|
||||
The following `tcpdump` command can be useful when debugging why dhcp
|
||||
requests may not be hitting various pieces of the process:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
tcpdump -i <interface> port 67 or port 68 or port 69 -e -n
|
||||
|
||||
.. end
|
||||
|
||||
Configuring the Web Console
|
||||
---------------------------
|
||||
Configuration based off upstream `Node web console
|
||||
<https://docs.openstack.org/ironic/latest/admin/console.html#node-web-console>`__.
|
||||
|
||||
@ -59,29 +151,6 @@ Set ironic_console_serial_speed in ``/etc/kolla/globals.yml``:
|
||||
|
||||
.. end
|
||||
|
||||
Post-deployment configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Configuration based off upstream `Ironic installation Documentation
|
||||
<https://docs.openstack.org/ironic/latest/install/index.html>`__.
|
||||
|
||||
Again, remember that enabling Ironic reconfigures nova compute (driver and
|
||||
scheduler) as well as changes neutron network settings. Further neutron setup
|
||||
is required as outlined below.
|
||||
|
||||
Create the flat network to launch the instances:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
neutron net-create --tenant-id $TENANT_ID sharednet1 --shared \
|
||||
--provider:network_type flat --provider:physical_network physnet1
|
||||
|
||||
neutron subnet-create sharednet1 $NETWORK_CIDR --name $SUBNET_NAME \
|
||||
--ip-version=4 --gateway=$GATEWAY_IP --allocation-pool \
|
||||
start=$START_IP,end=$END_IP --enable-dhcp
|
||||
|
||||
.. end
|
||||
|
||||
And then the above ID is used to set ``cleaning_network`` in the neutron
|
||||
section of ``ironic.conf``.
|
||||
|
||||
Deploying using virtual baremetal (vbmc + libvirt)
|
||||
--------------------------------------------------
|
||||
See https://brk3.github.io/post/kolla-ironic-libvirt/
|
||||
|
Loading…
x
Reference in New Issue
Block a user