The purpose of this page is to go into some detail and provide the linkage to how the Foreman/QuickStack tools interact. It will go from initiating a deploy through the tools to show the interactions and files that are called.
Initial Deployment
Deployment is done via deploy.sh. Deploy.sh does the following:
Detects the networking setup
-
The parameters include global parameters later configured in Foreman, and a "nodes" yaml dictionary which describes the baremetal/VM topology
Deploy uses Vagrant to bring up VMs
1 VM is used as Foreman, other VMs can be provided when doing a virtual deployment
For each VM,
bgs_vagrant is cloned into /tmp/ (/tmp/bgs_vagrant is Foreman VM, while other nodes are /tmp/controller1, etc)
Vagrant uses provisioners to configure the VM (done inside of the Vagrantfile under /tmp/<node>)
-
VMs are installed with a different Ansible playbook/ Vagrant provisioning (by editing the Vagrantfile in /tmp/controller1, etc)
Initial Provisioning Foreman VM
bootsrap.sh installs, configures and executes
Khaleesi
Khaleesi is an Ansible based framework that is capable of installing Foreman and deploying nodes
bootsrap.sh initiates execution of
opnfv.yml playbook
-
The OPNFV install role will install Foreman using
Astapor
-
Astapor also contains the QuickStack puppet modules which ar cloned into the Foreman VM
-
The opnfv-seeds.rb contains Foreman configuration (hostgroups, puppet modules, etc)
-
The role then uses the
foreman.py library to issue a Foreman
API call to reboot and build the nodes with PXE
The role will then wait for SSH access to the node
The role will then wait for puppet to complete and the node to be put into Active ("A") state in Foreman, indicating deploy is complete