Skip to content

Latest commit

 

History

History

ironic

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Ironic

Prerequisites

sudo pkg install python
git clone https://github.com/openstack/ironic.git
cd ironic/
git checkout tags/18.2.1 -b v18.2.1

Then create virtual environment for testing:

python3.8 -m venv .venv
source .venv/bin/activate

Upgrade pip to the latest version:

python -m pip install --upgrade pip wheel
sudo pkg install rust

Build and Install Ironic Packages

pip install .

Config Generation

sudo pkg install postgresql14-client
pip install tox
tox -egenconfig
tox -egenpolicy

Database

Setup MySQL server.

sudo pkg install mysql80-server
sudo sysrc mysql_enable=yes
sudo service mysql-server start
sudo mysqladmin -u root password 'password'

Create essential database for ironic.

CREATE DATABASE ironic;

Configuration

cp etc/ironic/ironic.conf.sample etc/ironic/ironic.conf.local

sed -i "" "s/#auth_strategy = keystone/auth_strategy = noauth/" etc/ironic/ironic.conf.local
sed -i "" "s/#enabled_hardware_types = .*/enabled_hardware_types = fake-hardware/" etc/ironic/ironic.conf.local
sed -i "" "s/#enabled_deploy_interfaces = .*/enabled_deploy_interfaces = fake/" etc/ironic/ironic.conf.local
sed -i "" "s/#enabled_boot_interfaces = .*/enabled_boot_interfaces = fake/" etc/ironic/ironic.conf.local
sed -i "" "s/#enabled_management_interfaces = .*/enabled_management_interfaces = fake,ipmitool/" etc/ironic/ironic.conf.local
sed -i "" "s/#enabled_power_interfaces = .*/enabled_power_interfaces = fake,ipmitool/" etc/ironic/ironic.conf.local
sed -i "" "s/#sync_power_state_interval = 60/sync_power_state_interval = 604800/" etc/ironic/ironic.conf.local
sed -i "" "s/#connection = .*/connection = mysql+pymysql://root:password@localhost/ironic" etc/ironic/ironic.conf.local
sed -i "" "s/#rpc_transport = oslo/rpc_transport = json-rpc/" etc/ironic/ironic.conf.local
pip install pymysql
ironic-dbsync --config-file etc/ironic/ironic.conf.local create_schema

Kickstart Service

sudo pkg install ipmitool
ironic-api -d --config-file etc/ironic/ironic.conf.local
ironic-conductor -d --config-file etc/ironic/ironic.conf.local

Verify Installation

pip install python-openstackclient python-ironicclient
export OS_AUTH_TYPE=none
export OS_ENDPOINT=http://controller:6385/
$ baremetal driver list          
+---------------------+---------------------------+          
| Supported driver(s) | Active host(s)            |          
+---------------------+---------------------------+          
| fake-hardware       | osf-1.internal.zespre.com |          
+---------------------+---------------------------+          
$ baremetal node list
<empty>