<div dir="ltr"><div id="magicdomid1143" class="" style="margin:0px;padding:0px;color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:12px;line-height:16px"><div id="magicdomid1192" class="" style="margin:0px;padding:0px">At present, the only configuration in which ironic is tested is as part of a complete  OpenStack cloud. While this is also the most common usage, there has  been significant interest in running Ironic outside of OpenStack contexts as an independent service for provisioning hardware in trusted environments. This work was done initially as a proof-of-concept to determine the viability of that use case.<br></div><div id="magicdomid1195" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1196" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">Bifrost is a set of Ansible playbooks that automates the task of deploying a base image onto a set of known hardware using Ironic. It provides modular utility for one-off operating system deployment with as few operational requirements as reasonably possible. Our intention is to utilize this to further develop tooling around and testing of Ironic in the context of a standalone installation.</span></div><div id="magicdomid1197" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1198" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">How it works:</span></div><div id="magicdomid1199" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1200" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">Bifrost works by installing Ironic with no other OpenStack services on a node, coupled with the minimum required infrastructure (DHCP, TFTP, HTTP) to utilize the Ironic-Python-Agent method of deploying a node. We intend to add support for additional deployment methods as time goes on. </span></div><div id="magicdomid1201" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1202" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">After installation, a hardware inventory file is read, and all the hardware is enrolled with Ironic. This is also used to generate node-specific config-drives containing SSH keys and static network configuration, which are written out during deployment.</span></div><div id="magicdomid1203" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1204" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">Post-deployment, the deployed machines are configured to boot from their local disks. The Bifrost node can be completely removed, and all machines will remain operational.</span></div><div id="magicdomid1205" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1206" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">If by chance, you don't have any hardware available to test Bifrost on, a testing mode exists which can leverage virtual machines on a Linux system.  This will be used to provide CI for Bifrost, and, we hope, functional testing of Ironic in the near future. Checkout the README for more information.</span></div><div id="magicdomid1207" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1208" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">The README can be found at </span><span class="" style="margin:0px;padding:1px 0px"><a href="https://github.com/juliakreger/bifrost/blob/master/README.rst" style="margin:0px;padding:0px">https://github.com/juliakreger/bifrost/blob/master/README.rst</a></span></div><div id="magicdomid1209" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1210" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">Special thanks to:</span></div><div id="magicdomid1211" class="" style="margin:0px;padding:0px"><br style="margin:0px;padding:0px"></div><div id="magicdomid1212" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">David Shrewsbury</span></div><div id="magicdomid1213" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">Monty Taylor</span></div><div id="magicdomid1214" class="" style="margin:0px;padding:0px"><span class="" style="margin:0px;padding:1px 0px">Devananda van der Veen</span></div></div></div>