You are here

fake_pxe as pm_type in RHOSP13 (TripleO + OpenStack Queens)

So, in RHOSP13 fake_pxe is being deprecated to change in RHOSP14 for manual-management, the problem is that is just in between the migration, so there is not a clean way to use fake_pxe in RHOSP13.
Other change is in the installation of undercloud, the option enabled_drivers is now DEPRECATED an changed by enabled_hardware_types.

What now, in order to being able to use fake_pxe as a pm_type first install the undercloud without the options enabled_drivers, only use enabled_hardware_types and add at the end manual-management, like this:

...
#enabled_drivers=pxe_drac,pxe_ilo,pxe_ipmitool
enabled_hardware_types=redfish,ipmi,idrac,ilo,manual-management
...

After that just install the undercloud using the common way.

[stack@director01 ~]$ openstack undercloud install
...
#############################################################################
Undercloud install complete.

The file containing this installation's passwords is at
/home/stack/undercloud-passwords.conf.

There is also a stackrc file at /home/stack/stackrc.

These files are needed to interact with the OpenStack services, and should be
secured.

#############################################################################

[stack@director01 ~]$

Next change manually the ironic.conf file located in /etc/ironic/ironic.conf to enable the DEPRECATED option enabled_drivers and add fake as a new driver.

enabled_drivers=pxe_drac,pxe_ilo,pxe_ipmitool,fake
enabled_hardware_types=redfish,ipmi,idrac,ilo,manual-management

And restart ironic-conductor service:

(undercloud) [stack@director01 ~]$ sudo systemctl restart openstack-ironic-conductor

check the drivers:

(undercloud) [stack@director01 ]$ openstack baremetal driver list
+---------------------+------------------------+
| Supported driver(s) | Active host(s) |
+---------------------+------------------------+
| idrac | director01 |
| ilo | director01 |
| ipmi | director01 |
| manual-management | director01 |
| pxe_drac | director01 |
| pxe_ilo | director01 |
| pxe_ipmitool | director01 |
| redfish | director01 |
+---------------------+------------------------+
Now can we add a instackenv.json file, like this.

(undercloud) [stack@director01 ~]$ cat instackenv-controller01.json
{
"nodes":[
{
"mac":["controller1_mac"],
"name":"nuc-controller01",
"arch":"x86_64",
"capabilities":"profile:control,node:controller-0,boot_option:local",
"pm_type":"fake"
}
]
}

If you don't do this or try to use manual-management pm_type at this moment you will get an error similar to this one:

(undercloud) [stack@director01 ~]$ openstack overcloud node import ~/instackenv-controller01.json
Started Mistral Workflow tripleo.baremetal.v1.register_or_update. Execution ID: 6ce7871c-d9d0-448e-9b46-78ced387fa48
Waiting for messages on queue 'tripleo' with no timeout.

No valid host was found. Reason: No conductor service registered which supports driver fake. (HTTP 400)
Exception registering nodes: No valid host was found. Reason: No conductor service registered which supports driver fake. (HTTP 400)

Import the new node definition to ironic and run introspection:

(undercloud) [stack@director01 ~]$ openstack overcloud node import ~/instackenv-compute01.json
Started Mistral Workflow tripleo.baremetal.v1.register_or_update. Execution ID: 434cfe01-740d-4d58-b504-6f291ab12823
Waiting for messages on queue 'tripleo' with no timeout.

1 node(s) successfully moved to the "manageable" state.
Successfully registered node UUID 62ce7d2c-03ae-4c6e-8c4a-13e817f26fa3
(undercloud) [stack@director01 ~]$
(undercloud) [stack@director01 ~]$ openstack baremetal introspection start --wait nuc-controller01
Waiting for introspection to finish...
+------------------+-------+
| UUID | Error |
+------------------+-------+
| nuc-controller01 | None |
+------------------+-------+

But as I said, fake driver is not going to be supported in RHOSP14 so in version 13, is in the middle of the migration and we can introspect the node using fake driver, but we are not going to be able to install, if we tried so, we will get and error like this one:

(undercloud) [stack@director01 ~]$ openstack action execution output show a637a01a-5f66-48a0-9e25-96700240c17e
{
"result": "Invalid node data: unknown pm_type (ironic driver to use): manual"
}

So in order to solve this we need to change the driver type directly in the database, first find the password in ironic.conf file

(undercloud) [stack@director01 ~]$ grep mysql /etc/ironic/ironic.conf
#mysql_engine = InnoDB
connection=mysql+pymysql://ironic:38315b04050cd6ad074ae75855f7c4367299b61a@192.168.10.9/ironic
# set this to no value. Example: mysql_sql_mode= (string
#mysql_sql_mode = TRADITIONAL
#mysql_enable_ndb = false

Then look for the drivers configured.

MariaDB [ironic]> select name,driver from nodes;
+------------------+--------+
| name | driver |
+------------------+--------+
| nuc-controller01 | fake |
| nuc-compute01 | fake |
| nuc-compute02 | fake |
+------------------+--------+
3 rows in set (0.00 sec)
MariaDB [ironic]> update nodes set driver = "manual-management" where name = "nuc-controller01";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [ironic]> update nodes set driver = "manual-management" where name = "nuc-compute01";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [ironic]> update nodes set driver = "manual-management" where name = "nuc-compute02";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [ironic]> select name,driver from nodes;
+------------------+--------+
| name | driver |
+------------------+--------+
| nuc-controller01 | manual-management |
| nuc-compute01 | manual-management |
| nuc-compute02 | manual-management |
+------------------+--------+
1 rows in set (0.00 sec)

After all this you can now safely continue with the common installation process, just remember when performing Overcloud deployment, check the node status with the ironic node-list command. Wait until the node status changes from deploying to deploy wait-callback and then manually power the nodes.

Tags: