Jump to: navigation, search

Difference between revisions of "Ironic"

(adding dib section)
 
(140 intermediate revisions by 25 users not shown)
Line 1: Line 1:
 +
= OpenStack Bare Metal Provisioning Program =
  
{| border="1" cellpadding="2" cellspacing="0"
+
OpenStack bare metal provisioning a.k.a '''Ironic''' is an integrated OpenStack program which aims to provision bare metal machines instead of virtual machines, forked from the Nova baremetal driver. It is best thought of as a bare metal hypervisor API and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI in order to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality. For a general overview please see: [https://docs.openstack.org/ironic/latest/user/index.html Introduction to Ironic].
| [https://github.com/openstack/ironic Source code
+
 
 +
= Latest Documentation =
 +
 
 +
This wiki is updated by volunteers as time permits. For the latest documentation, it is highly advisable to refer to the project documentation which is generated from the embedded documentation. Please see: [https://docs.openstack.org/ironic/latest/ latest ironic documentation].
 +
 
 +
= Projects =
 +
 
 +
Ironic is governed by the OpenStack Technical Committee. The complete list of deliverables (and associated tags) that are officially under the Ironic umbrella is available [http://governance.openstack.org/reference/projects/ironic.html here].
 +
 
 +
Some of the deliverables (or projects) are described below.
 +
 
 +
== ironic ==
 +
 
 +
The '''ironic''' project includes the ironic-api and ironic-conductor processes.
 +
 
 +
{| border="1" cellpadding="2"
 +
| Official name
 +
| '''OpenStack Bare Metal Provisioning'''
 +
|-
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/ironic
 +
|-
 +
| Documentation
 +
| https://docs.openstack.org/ironic/latest/
 +
|-
 +
| Bug tracker
 +
| https://storyboard.openstack.org/#!/project/943
 +
|-
 +
| Feature tracker
 +
| https://storyboard.openstack.org/#!/project/943
 +
|-
 +
| Specifications
 +
| http://specs.openstack.org/openstack/ironic-specs
 +
|-
 +
| Weekly meetings
 +
| https://wiki.openstack.org/wiki/Meetings/Ironic
 +
|-
 +
| Testing
 +
| https://wiki.openstack.org/wiki/Ironic/Testing
 +
|-
 +
| Drivers
 +
| https://wiki.openstack.org/wiki/Ironic/Drivers
 +
|}
 +
 
 +
== python-ironicclient ==
 +
 
 +
'''python-ironicclient''' is a package that includes the python client and CLI.
 +
 
 +
{| border="1" cellpadding="2"
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/python-ironicclient
 +
|-
 +
| Bug tracker
 +
| https://storyboard.openstack.org/#!/project/959
 +
|-
 +
| Feature tracker
 +
| https://storyboard.openstack.org/#!/project/959
 +
|-
 +
| Documentation
 +
| https://docs.openstack.org/python-ironicclient/latest/
 +
|}
 +
 
 +
== ironic-python-agent ==
 +
 
 +
'''ironic-python-agent''' is a small python application that is meant to be embedded in a deployment ramdisk.
 +
 
 +
{| border="1" cellpadding="2"
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/ironic-python-agent
 +
|-
 +
| Bug tracker
 +
| https://storyboard.openstack.org/#!/project/947
 +
|-
 +
| Documentation
 +
| https://docs.openstack.org/ironic-python-agent/latest/
 +
|-
 +
| Wiki page
 +
| https://wiki.openstack.org/wiki/Ironic-python-agent
 +
|}
 +
 
 +
== ironic-inspector ==
 +
 
 +
'''ironic-inspector''' is a hardware introspection tool.
 +
 
 +
{| border="1" cellpadding="2"
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/ironic-inspector
 +
|-
 +
| Bug Tracker
 +
| https://storyboard.openstack.org/#!/project/944
 +
|-
 +
| Feature tracker
 +
| https://storyboard.openstack.org/#!/project/944
 +
|-
 +
| Documentation
 +
| https://docs.openstack.org/ironic-inspector/latest/
 +
|}
 +
 
 +
== bifrost ==
 +
 
 +
'''bifrost''' consists of Ansible play books for running Ironic standalone (without other OpenStack components).
 +
 
 +
{| border="1" cellpadding="2"
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/bifrost
 
|-
 
|-
| [https://review.openstack.org/#/q/status:open+project:openstack/ironic,n,z Code review board]
+
| Bug tracker
 +
| https://storyboard.openstack.org/#!/project/941
 
|-
 
|-
| [https://bugs.launchpad.net/ironic Bug tracker] 
+
| Documentation
 +
| https://docs.openstack.org/bifrost/latest/
 +
|}
 +
 
 +
== networking-baremetal ==
 +
 
 +
'''networking-baremetal''' is a Neutron plugin that covers bare metal use cases; it provides deep Ironic/Neutron integration.
 +
 
 +
{| border="1" cellpadding="2"
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/networking-baremetal
 
|-
 
|-
| [https://blueprints.launchpad.net/ironic Blueprints]
+
| Bug tracker
 +
| https://storyboard.openstack.org/#!/project/955
 +
|}
 +
 
 +
== ironic-lib ==
 +
 
 +
'''ironic-lib''' is a common library of functions used exclusively by the projects under the [http://governance.openstack.org/reference/projects/ironic.html Ironic governance].
 +
 
 +
{| border="1" cellpadding="2"
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/ironic-lib
 
|-
 
|-
| [http://docs.openstack.org/developer/ironic/ Developer docs]
+
| Bug tracker
 +
| https://storyboard.openstack.org/#!/project/946
 
|-
 
|-
| [[Meetings/Ironic|Weekly meetings]]
+
| Documentation
 +
| https://docs.openstack.org/ironic-lib/latest/
 
|}
 
|}
  
__TOC__
+
== ironic-ui ==
  
= Ironic: Bare Metal provisioning for OpenStack =
+
'''ironic-ui''' is a horizon plugin for ironic.
  
'''Ironic is under rapid initial development, forked from [[Baremetal|Nova's Baremetal driver.]]''' If you're looking for something that works today, go there :)
+
{| border="1" cellpadding="2"
 +
| Source code
 +
| https://git.openstack.org/cgit/openstack/ironic-ui
 +
|-
 +
| Bug Tracker
 +
| https://storyboard.openstack.org/#!/project/952
 +
|-
 +
| Documentation
 +
| https://docs.openstack.org/ironic-ui/latest/
 +
|}
  
If you'd like to join the development, start by [http://docs.openstack.org/developer/ironic/ reading the developer docs here], and then join us in the  <code>#openstack-ironic</code> on [http://irc.freenode.net irc.freenode.net]!
+
= People =
  
=== Building Documentation Locally ===
+
'''PTL''': Julia Kreger (TheJulia)
  
If you want to build the ironic docs for yourself locally, follow these steps:
+
'''Core teams''': https://wiki.openstack.org/wiki/Ironic/CoreTeam
  
create a vm
+
'''Cross-project liaisons''': https://wiki.openstack.org/wiki/CrossProjectLiaisons
  #using vagrant 1.2.2 with a virtualbox backend
 
  vagrant init precise32
 
  #enable networking with the host
 
    vi Vagrantfile
 
    add
 
      config.vm.network :forwarded_port, guest: 80, host: 4567
 
  vagrant up
 
 
shell into the vm
 
  vagrant ssh
 
 
install dependencies
 
  sudo apt-get update
 
  sudo apt-get install -y git apache2 python-pip python-dev swig libssl-dev python-pip libmysqlclient-dev libxml2-dev libxslt-dev libxslt1-dev python-mysqldb
 
  sudo pip install virtualenv setuptools-git flake8 tox
 
  sudo easy_install nose
 
 
get the ironic repo
 
  cd ~
 
  git clone git://github.com/openstack/ironic.git
 
 
create a file enabling ironic.localhost in apache
 
  sudo vi /etc/apache2/sites-enabled/100-ironic
 
  # contents
 
  <VirtualHost *:80>
 
      ServerName ironic.localhost
 
      DocumentRoot /opt/source/ironic/doc/build/html
 
   
 
          <Directory /opt/source/ironic/doc/build/html>
 
                  Options Indexes FollowSymLinks MultiViews
 
                  AllowOverride None
 
                  Order allow,deny
 
                  allow from all
 
          </Directory>
 
  </VirtualHost>
 
  # change the DocumentRoot and the Directory to point the the ironic repo, if you are using
 
  # vagrant and the ironic repo is the the vagrant user's home directory the code is fine
 
 
create a venv inside the ironic repo
 
  cd ironic
 
  tox -evenv -- echo 'done'
 
 
activate the newly created venv
 
  source .tox/venv/bin/activate
 
 
from inside the venv
 
  python setup.py build_sphinx
 
  # as I run this I get 20 warnings, ignore the warnings
 
exit the venv
 
  deactivate
 
 
restart apache
 
  sudo service apache2 restart
 
 
on your host:
 
  add ironic.localhost to /etc/hosts with:
 
  sudo sed -i 's/\(127.0.0.1\s*localhost\)/\1 ironic.localhost/' /etc/hosts
 
 
point your browser to http://ironic.localhost:4567
 
 
You should be reading your newly build documentation.
 
  
=== Try it on Devstack ===
+
= Status =
  
To install Ironic using Devstack follow the following steps:
+
Ironic was first available as an incubated project in the "Icehouse" release. The following "Juno" release saw improved integration with Nova, as well as many stability and feature improvements. Ironic completed the project graduation review at the end of the "Juno" cycle, and began "Kilo" development cycle as an officially integrated OpenStack project.
  
1. Obtain the latest copy of Devstack:
+
Release notes for Ironic are available at http://docs.openstack.org/releasenotes/ironic/.
  git clone git://github.com/openstack-dev/devstack.git
 
  
2. Go to the Devstack source tree and create a localrc file with at least the following options:
+
Information on the latest status of Ironic's test suite can be found here: https://wiki.openstack.org/wiki/Ironic/Testing.
  # Enable Ironic API and Ironic Conductor
 
  enable_service ir-api
 
  enable_service ir-cond
 
 
 
  # Enable Neutron which is required by Ironic and disable nova-network.
 
  disable_service n-net
 
  enable_service q-svc
 
  enable_service q-agt
 
  enable_service q-dhcp
 
  enable_service q-l3
 
  enable_service q-meta
 
  enable_service neutron
 
 
 
  # You can replace "password" with your own one.
 
  ADMIN_PASSWORD=password
 
  MYSQL_PASSWORD=password
 
  RABBIT_PASSWORD=password
 
  SERVICE_PASSWORD=password
 
  
3. Run installation of Devstack:
+
For a list of current drivers and the status of their CI testing, see the [https://wiki.openstack.org/wiki/Ironic/Drivers wiki page we maintain] and the [http://stackalytics.com/report/driverlog?project_id=openstack%2Fironic Stackalytics page which tracks third-party CI].
  ./stack.sh
 
  
4. Wait until everything gets installed.
+
= Etherpads =
 +
 
 +
Our project teams frequently share ideas and coordinate by using etherpads, some of which stick around for a while. Those are listed here.
 +
* [https://etherpad.openstack.org/p/IronicWhiteBoard General-purpose "white board"]
 +
* [https://etherpad.openstack.org/p/IronicReviewDay Coordination point during "review days"]
 +
 
 +
= IRC =
 +
 
 +
Discussion of the project also takes place in '''#openstack-ironic''' on irc.oftc.net. This is a great place to jump in and start your ironic adventure. The channel is very welcoming to new users - no question is a wrong question!
 +
 
 +
= Developers =
 +
 
 +
Guidelines for developers can be found here: https://wiki.openstack.org/wiki/Ironic/Developer_guidelines
 +
Please note that for any non-trivial change that is not a fix for a particular bug, you have to go through the [https://wiki.openstack.org/wiki/Ironic/Specs_Process specs review process]
 +
 
 +
 
 +
= Pixie Boots, the Ironic drummer bear =
 +
 
 +
Pixie Boots is the mascot of the "'''Bear Metal'''" Provisioning Program for OpenStack, a.k.a Ironic. It was drawn by [http://lucasgom.es Lucas Alvares Gomes] and two versions of it are available: One colored and one outlined. An icon shadowcut of pixie boots is also available, courtesy of [https://plus.google.com/u/0/+MichaelKrotscheck Michael Krotscheck]. Feel free to use the images to make t-shirts or any other paraphernalia.
 +
 
 +
High-resolution PNGs versions are available by clicking on the images below:
 +
 
 +
<gallery>
 +
Ironic_mascot_color.png|Colored
 +
Ironic_mascot_outline.png|Outlined
 +
bear metal.svg|Icon
 +
</gallery>
 +
 
 +
You can also download the Inkscape SVG vector file: [https://wiki.openstack.org/wiki/File:Ironic_mascot.svg Ironic_mascot.svg]
 +
 
 +
All images are licensed [http://creativecommons.org/licenses/by-sa/4.0/ CC BY-SA].
 +
 
 +
Pixie Boots rockin': \m/ ʕ•͡ᴥ•ʔ \m/
 +
 
 +
= Misc. =
 +
 
 +
* [[Ironic/IPv6|Ironic + IPv6]]
 +
 
 +
= Outside the OpenStack Bare Metal Provisioning Program =
 +
 
 +
== Out-of-tree Ironic drivers ==
 +
 
 +
Drivers that can be used with Ironic but that aren't in the [https://git.openstack.org/cgit/openstack/ironic ironic] repository, may be found in the [https://git.openstack.org/cgit/openstack/ironic-staging-drivers ironic-staging-drivers] repository.
 +
== Vendor-specific tools ==
 +
 
 +
Third-party vendors are encouraged to share their tools/scripts which might help people using their hardware with '''ironic'''.  These tools are not maintained by the ironic core team and are not under the governance of the OpenStack Technical Committee. Vendors themselves should be contacted for features requests/bug fixes.
 +
 
 +
{| border="1" cellpadding="2"
 +
| Developer doc
 +
| https://wiki.openstack.org/wiki/Ironic/ThirdPartyVendorToolsDeveloperDoc
 +
|-
 +
| List of third party vendor tools
 +
| https://wiki.openstack.org/wiki/Ironic/ThirdPartyVendorToolsList
 +
|}
  
5. Ironic API service is listening on http://YOUR_IP:6385
 
  
=== Using Disk Image Builder ===
+
[[category: baremetal]]
 +
[[category: ironic]]

Latest revision as of 08:56, 31 May 2021

OpenStack Bare Metal Provisioning Program

OpenStack bare metal provisioning a.k.a Ironic is an integrated OpenStack program which aims to provision bare metal machines instead of virtual machines, forked from the Nova baremetal driver. It is best thought of as a bare metal hypervisor API and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI in order to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality. For a general overview please see: Introduction to Ironic.

Latest Documentation

This wiki is updated by volunteers as time permits. For the latest documentation, it is highly advisable to refer to the project documentation which is generated from the embedded documentation. Please see: latest ironic documentation.

Projects

Ironic is governed by the OpenStack Technical Committee. The complete list of deliverables (and associated tags) that are officially under the Ironic umbrella is available here.

Some of the deliverables (or projects) are described below.

ironic

The ironic project includes the ironic-api and ironic-conductor processes.

Official name OpenStack Bare Metal Provisioning
Source code https://git.openstack.org/cgit/openstack/ironic
Documentation https://docs.openstack.org/ironic/latest/
Bug tracker https://storyboard.openstack.org/#!/project/943
Feature tracker https://storyboard.openstack.org/#!/project/943
Specifications http://specs.openstack.org/openstack/ironic-specs
Weekly meetings https://wiki.openstack.org/wiki/Meetings/Ironic
Testing https://wiki.openstack.org/wiki/Ironic/Testing
Drivers https://wiki.openstack.org/wiki/Ironic/Drivers

python-ironicclient

python-ironicclient is a package that includes the python client and CLI.

Source code https://git.openstack.org/cgit/openstack/python-ironicclient
Bug tracker https://storyboard.openstack.org/#!/project/959
Feature tracker https://storyboard.openstack.org/#!/project/959
Documentation https://docs.openstack.org/python-ironicclient/latest/

ironic-python-agent

ironic-python-agent is a small python application that is meant to be embedded in a deployment ramdisk.

Source code https://git.openstack.org/cgit/openstack/ironic-python-agent
Bug tracker https://storyboard.openstack.org/#!/project/947
Documentation https://docs.openstack.org/ironic-python-agent/latest/
Wiki page https://wiki.openstack.org/wiki/Ironic-python-agent

ironic-inspector

ironic-inspector is a hardware introspection tool.

Source code https://git.openstack.org/cgit/openstack/ironic-inspector
Bug Tracker https://storyboard.openstack.org/#!/project/944
Feature tracker https://storyboard.openstack.org/#!/project/944
Documentation https://docs.openstack.org/ironic-inspector/latest/

bifrost

bifrost consists of Ansible play books for running Ironic standalone (without other OpenStack components).

Source code https://git.openstack.org/cgit/openstack/bifrost
Bug tracker https://storyboard.openstack.org/#!/project/941
Documentation https://docs.openstack.org/bifrost/latest/

networking-baremetal

networking-baremetal is a Neutron plugin that covers bare metal use cases; it provides deep Ironic/Neutron integration.

Source code https://git.openstack.org/cgit/openstack/networking-baremetal
Bug tracker https://storyboard.openstack.org/#!/project/955

ironic-lib

ironic-lib is a common library of functions used exclusively by the projects under the Ironic governance.

Source code https://git.openstack.org/cgit/openstack/ironic-lib
Bug tracker https://storyboard.openstack.org/#!/project/946
Documentation https://docs.openstack.org/ironic-lib/latest/

ironic-ui

ironic-ui is a horizon plugin for ironic.

Source code https://git.openstack.org/cgit/openstack/ironic-ui
Bug Tracker https://storyboard.openstack.org/#!/project/952
Documentation https://docs.openstack.org/ironic-ui/latest/

People

PTL: Julia Kreger (TheJulia)

Core teams: https://wiki.openstack.org/wiki/Ironic/CoreTeam

Cross-project liaisons: https://wiki.openstack.org/wiki/CrossProjectLiaisons

Status

Ironic was first available as an incubated project in the "Icehouse" release. The following "Juno" release saw improved integration with Nova, as well as many stability and feature improvements. Ironic completed the project graduation review at the end of the "Juno" cycle, and began "Kilo" development cycle as an officially integrated OpenStack project.

Release notes for Ironic are available at http://docs.openstack.org/releasenotes/ironic/.

Information on the latest status of Ironic's test suite can be found here: https://wiki.openstack.org/wiki/Ironic/Testing.

For a list of current drivers and the status of their CI testing, see the wiki page we maintain and the Stackalytics page which tracks third-party CI.

Etherpads

Our project teams frequently share ideas and coordinate by using etherpads, some of which stick around for a while. Those are listed here.

IRC

Discussion of the project also takes place in #openstack-ironic on irc.oftc.net. This is a great place to jump in and start your ironic adventure. The channel is very welcoming to new users - no question is a wrong question!

Developers

Guidelines for developers can be found here: https://wiki.openstack.org/wiki/Ironic/Developer_guidelines Please note that for any non-trivial change that is not a fix for a particular bug, you have to go through the specs review process


Pixie Boots, the Ironic drummer bear

Pixie Boots is the mascot of the "Bear Metal" Provisioning Program for OpenStack, a.k.a Ironic. It was drawn by Lucas Alvares Gomes and two versions of it are available: One colored and one outlined. An icon shadowcut of pixie boots is also available, courtesy of Michael Krotscheck. Feel free to use the images to make t-shirts or any other paraphernalia.

High-resolution PNGs versions are available by clicking on the images below:

You can also download the Inkscape SVG vector file: Ironic_mascot.svg

All images are licensed CC BY-SA.

Pixie Boots rockin': \m/ ʕ•͡ᴥ•ʔ \m/

Misc.

Outside the OpenStack Bare Metal Provisioning Program

Out-of-tree Ironic drivers

Drivers that can be used with Ironic but that aren't in the ironic repository, may be found in the ironic-staging-drivers repository.

Vendor-specific tools

Third-party vendors are encouraged to share their tools/scripts which might help people using their hardware with ironic. These tools are not maintained by the ironic core team and are not under the governance of the OpenStack Technical Committee. Vendors themselves should be contacted for features requests/bug fixes.

Developer doc https://wiki.openstack.org/wiki/Ironic/ThirdPartyVendorToolsDeveloperDoc
List of third party vendor tools https://wiki.openstack.org/wiki/Ironic/ThirdPartyVendorToolsList