Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
Kolla Ansible
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Very Demiurge Very Mindful
Kolla Ansible
Commits
ad03b3a2
Commit
ad03b3a2
authored
6 years ago
by
Paul Bourke
Browse files
Options
Downloads
Patches
Plain Diff
Update the Ironic documentation
Change-Id: I2d4fcd51cd81567f22ccee85213e24508b0bd25d
parent
445a0cb0
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/source/reference/ironic-guide.rst
+111
-42
111 additions, 42 deletions
doc/source/reference/ironic-guide.rst
with
111 additions
and
42 deletions
doc/source/reference/ironic-guide.rst
+
111
−
42
View file @
ad03b3a2
...
...
@@ -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,55 +19,138 @@ 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:
Configuration based off upstream `Node web console
<https://docs.openstack.org/ironic/latest/admin/console.html#node-web-console>`__.
.. code-block:: console
Serial speed must be the same as the serial configuration in the BIOS settings.
Default value: 115200bps, 8bit, non-parity.If you have different serial speed.
$ curl https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe.vmlinuz \
-o /etc/kolla/config/ironic/ironic-agent.kernel
Set ironic_console_serial_speed in ``/etc/kolla/globals.yml``:
$ 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
..
code-block:: yaml
..
end
ironic_console_serial_speed: 9600n8
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
Configuration based off upstream `Ironic installation Documentation
<https://docs.openstack.org/ironic/latest/install/index.html>`__.
tools/init-runonce
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.
.. end
Create the flat network to launch the instances:
Add the deploy kernel and ramdisk to Glance. Here we're reusing the same images
that were fetched for the Inspector:
.. code-block:: console
neutron net-create --tenant-id $TENANT_ID sharednet1 --shared
\
--
provider:network_type flat --provider:physical_network physnet1
openstack image create --disk-format aki --container-format aki --public
\
--
file /etc/kolla/config/ironic/ironic-agent.kernel deploy-vmlinuz
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
openstack image create --disk-format ari --container-format ari --public \
--file /etc/kolla/config/ironic/ironic-agent.initramfs deploy-initrd
.. end
And then the above ID is used to set ``cleaning_network`` in the neutron
section of ``ironic.conf``.
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>`__.
Serial speed must be the same as the serial configuration in the BIOS settings.
Default value: 115200bps, 8bit, non-parity.If you have different serial speed.
Set ironic_console_serial_speed in ``/etc/kolla/globals.yml``:
.. code-block:: yaml
ironic_console_serial_speed: 9600n8
.. end
Deploying using virtual baremetal (vbmc + libvirt)
--------------------------------------------------
See https://brk3.github.io/post/kolla-ironic-libvirt/
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment