User Tools

Site Tools


foreman_quickstack_tool_interaction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
foreman_quickstack_tool_interaction [2015/06/17 21:09]
Tim Rozet created
foreman_quickstack_tool_interaction [2015/06/17 21:55] (current)
Tim Rozet
Line 4: Line 4:
  
 ===== Initial Deployment ===== ===== Initial Deployment =====
 +Deployment is done via deploy.sh. ​ Deploy.sh does the following:
 +  * Detects the networking setup
 +  * Gathers parameters to be used to deploy OPNFV via an [[https://​github.com/​trozet/​bgs_vagrant/​blob/​master/​opnfv_ksgen_settings.yml | inventory file]]
 +  * 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, [[https://​github.com/​trozet/​bgs_vagrant | 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>​)
 +  * deploy.sh will configure the [[https://​github.com/​trozet/​bgs_vagrant/​blob/​master/​Vagrantfile | Vagrantfile]] to use [[https://​github.com/​trozet/​bgs_vagrant/​blob/​master/​bootstrap.sh | bootstrap.sh]] to install Foreman
 +  * 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 [[https://​github.com/​trozet/​khaleesi | Khaleesi]]
 +  * Khaleesi is an Ansible based framework that is capable of installing Foreman and deploying nodes
 +  * bootsrap.sh initiates execution of [[https://​github.com/​trozet/​khaleesi/​blob/​opnfv/​playbooks/​opnfv.yml | opnfv.yml]] playbook
 +  * The opnfv.yml playbook then calls the [[https://​github.com/​trozet/​khaleesi/​blob/​opnfv/​roles/​foreman/​opnfv-install/​tasks/​main.yml | opnfv install role]] which will install Foreman
 +  * The OPNFV install role will install Foreman using [[https://​github.com/​trozet/​astapor | Astapor]]
 +  * Astapor includes a bash script, [[https://​github.com/​trozet/​astapor/​blob/​opendaylight/​bin/​foreman_server.sh | foreman_server.sh]],​ and [[https://​github.com/​trozet/​astapor/​blob/​opendaylight/​bin/​opnfv-seeds.rb | opnfv-seeds.rb]] custom database file to install Foreman
 +  * Astapor also contains the QuickStack puppet modules which ar cloned into the Foreman VM
 +  * Also cloned are the [[https://​github.com/​trozet/​puppet-trystack | Genesis/​Trystack Puppet Modules]], and [[https://​forge.puppetlabs.com/​puppetlabs/​openstack | OpenStack Puppet modules]]
 +  * The opnfv-seeds.rb contains Foreman configuration (hostgroups,​ puppet modules, etc)
 +
 +===== Deploying Nodes (baremetal) =====
 +  * After OPNFV install role is finished, opnfv.yml playbook calls the [[https://​github.com/​trozet/​khaleesi/​blob/​opnfv/​roles/​get_nodes/​foreman/​tasks/​main.yml | deploy nodes role]]
 +  * The role then uses the [[https://​github.com/​trozet/​khaleesi/​blob/​opnfv/​library/​foreman.py | 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
foreman_quickstack_tool_interaction.1434575343.txt.gz ยท Last modified: 2015/06/17 21:09 by Tim Rozet