- Jenkins Master
- Jenkins Agents
- Jenkins Pipelines:
- OSA Upgrade Liberty to Mitaka - via run_upgrade.sh
- OSA Upgrade Mitaka to Newton-master - via run_upgrade.sh
- OSA Rolling Upgrade Mitaka to Newton-master - Rolling Upgrade: Nova, Swift and Keystone (run_upgrade.sh breakdown)
- See Details HERE
- Rackspace OnMetal IO v2
- OSA Deployment
- OSA Upgrade
- Test Suites:
Further details about the CI model and test suites. See https://github.com/osic/osic-upgrade-test
Install_Jenkins_Master Install_Jenkins_Slave_Agents
Since Jenkins slaves agents will fire the complete OnMetal solution it requires to install:
-
Rackspace Public Cloud (RPC) Credentials .raxpub file in the repo directory formatted like this:
[rackspace_cloud] username = your-cloud.username api_key = e1b835d65f0311e6a36cbc764e00c842
-
Packages
- apt-get
- python-dev
- build-essential
- libssl-dev
- curl
- git
- pkg-config
- libvirt-dev
- jenkins
- pip [ python <(curl -sk https://bootstrap.pypa.io/get-pip.py) ]
- ansible >= 2.0
- lxml
- pyrax
- libvirt-python
- rack binary
- apt-get
-
SSH Key Pair
mkdir /root/.ssh
ssh-keygen -q -t rsa -N "" -f /root/.ssh/id_rsa
- Automation scripts Automation of package installation - via cloud init Creation of raxpub RPC credentials file - need positional args
# NOT Confirmed
ansible-playbook setup_jenkins.yaml
Ansible available tags are iad and dfw. Which refers to Rackspace Regions: DFW=Dallas-fort-Worth, IAD=Northern-Virginia without tags resources are created in both regions
# Get Rackspace OnMetal IO v2 - need RPC credentials - 1 Physical Server
ansible-playbook build_onmetal.yaml --tags 'iad'
# Verify onMetal server data via rax CLI
ansible-playbook -i hosts get_onmetal_facts.yaml --tags 'iad'
# Install packages on the onMetal server
ansible-playbook -i hosts prepare_onmetal.yaml
# Apply server OS patches
ansible-playbook -i hosts set_onmetal_cpu.yaml
# Setup onMetal server - additional configurations
ansible-playbook -i hosts configure_onmetal.yaml
# Create the VMs on top of onMetal server
ansible-playbook -i hosts create_lab.yaml
# Prepare VMs for OSA installation
ansible-playbook -i hosts prepare_for_osa.yaml
# Deploy OpenStack via OSA
ansible-playbook -i hosts deploy_osa.yaml
# via run_upgrade.sh
ansible-playbook -i hosts -e "openstack_release=${release}" upgrade_osa.yaml
# rolling upgrade - project stepping
# TBD
# Cleanup
ansible-playbook -i hosts destroy_virtual_machines.yaml
# Cleanup
ansible-playbook -i hosts destroy_virtual_networks.yaml
# Cleanup
ansible-playbook -i hosts destroy_lab_state_file.yaml
# Cleanup - Release RPC resources
ansible-playbook -i hosts destroy_onmetal.yaml --tags 'iad'