This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
foreman_quickstack_tool_interaction [2015/06/17 21:34] Tim Rozet |
foreman_quickstack_tool_interaction [2015/06/17 21:55] (current) Tim Rozet |
||
|---|---|---|---|
| Line 6: | Line 6: | ||
| Deployment is done via deploy.sh. Deploy.sh does the following: | Deployment is done via deploy.sh. Deploy.sh does the following: | ||
| * Detects the networking setup | * Detects the networking setup | ||
| - | * Gathers parameters to be used to deploy OPNFV | + | * Gathers parameters to be used to deploy OPNFV via an [[https://github.com/trozet/bgs_vagrant/blob/master/opnfv_ksgen_settings.yml | inventory file]] |
| - | * Uses Vagrant to bring up VMs | + | * 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 | * 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) | * 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>) | * 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]] | + | * 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 ===== | + | ===== Initial Provisioning Foreman VM ===== |
| * bootsrap.sh installs, configures and executes [[https://github.com/trozet/khaleesi | Khaleesi]] | * 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 | * 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 | * 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]] | + | * 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 | ||