Rackspace Private Cloud Offering based on OpenStack || Submit bugs to: https://bit.ly/RPC-openstack-template
Branch: master
Clone or download
Latest commit 6cd89ce Feb 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update ISSUE_TEMPLATE.md Apr 28, 2017
etc/openstack_deploy Merge pull request #3430 from prometheanfire/haproxy-tls-1.2 Jan 15, 2019
gating Fix releases notes generation for major releases Feb 4, 2019
logo_files [INTAKERPC-132] Modernize RPC-O and move master to Pike Nov 15, 2017
playbooks Use upstream OSA checkout method for repos Jan 22, 2019
releasenotes [RI-355] update reno version and add earliest_version to config Oct 11, 2018
scripts Add osquery to the standard rpco deployment (#3357) Oct 17, 2018
tests [INTAKERPC-132] Modernize RPC-O and move master to Pike Nov 15, 2017
.gitignore Updates post [INTAKERPC-132] merge Nov 15, 2017
CONTRIBUTING.md FLEEK-127 Decommission the ELK stack within RPCO Aug 14, 2018
DEFCORE.md update instructions for passing defcore Mar 6, 2018
Dockerfile [RI-475] consolidate and use constraints Oct 2, 2018
LICENSE Initial commit Jan 17, 2015
README.md Remove legacy ELK env.d file and ensure new version is used Dec 4, 2018
TESTING.md FLEEK-127 Decommission the ELK stack within RPCO Aug 14, 2018
Vagrantfile Update RPC-O to track stable queens Mar 15, 2018
ansible-role-master-requirements.yml RO-4367 Update master third-party dependencies Aug 17, 2018
ansible-role-newton-requirements.yml FLEEK-127 Decommission the ELK stack within RPCO Aug 14, 2018
ansible-role-ocata-requirements.yml FLEEK-127 Decommission the ELK stack within RPCO Aug 14, 2018
ansible-role-pike-requirements.yml FLEEK-127 Decommission the ELK stack within RPCO Aug 14, 2018
ansible-role-queens-requirements.yml FLEEK-127 Decommission the ELK stack within RPCO Aug 14, 2018
ansible-role-rocky-requirements.yml Use local facts to retrieve and set release options Aug 27, 2018
setup.cfg [INTAKERPC-132] Modernize RPC-O and move master to Pike Nov 15, 2017
setup.py [INTAKERPC-132] Modernize RPC-O and move master to Pike Nov 15, 2017
test-requirements.txt Fix releases notes generation for major releases Feb 4, 2019
tox.ini [RI-355] update reno version and add earliest_version to config Oct 11, 2018
upper-constraints.txt RO-4367 Update master third-party dependencies Feb 8, 2019

README.md

Rackspace Private Cloud - OpenStack

The RPC-OpenStack repository contains additional scripts, variables, and options for deploying an OpenStack cloud. It is a thin wrapper around the OpenStack-Ansible deployment framework that is part of the OpenStack namespace.

Deployment options

There are two different types of RPC-OpenStack deployments available:

  • All-In-One (AIO) Deployment. An AIO is a quick way to test a RPC-OpenStack deployment. All of the cloud's internal services are deployed on the same server, which could be a physical server or a virtual machine.

  • Production Deployment. Production deployments should be done on more than one server with at least three nodes available to run the internal cloud services.

  • Upgrading the RPC-OpenStack Product. Upgrading the RPC-OpenStack Product using intra-series releases.

All-In-One (AIO) Deployment Quickstart

Clone the RPC-OpenStack repository:

git clone https://github.com/rcbops/rpc-openstack /opt/rpc-openstack

Start a screen or tmux session (to ensure that the deployment continues even if the ssh connection is broken) and run deploy.sh:

Run the deploy.sh script within a tmux or screen session:

tmux
cd /opt/rpc-openstack
export DEPLOY_AIO=true
export RPC_PRODUCT_RELEASE="master"  # This is optional, if unset the current stable product will be used
./scripts/deploy.sh

The deploy.sh script will run all of the necessary playbooks to deploy an AIO cloud and it normally completes in 90 to 120 minutes.

Production Deployment Guide

Clone the RPC-OpenStack repository:

git clone https://github.com/rcbops/rpc-openstack /opt/rpc-openstack

Run the basic system installation

Start a screen or tmux session (to ensure that the deployment continues even if the ssh connection is broken) and run deploy.sh:

Run the deploy.sh script within a tmux or screen session:

cd /opt/rpc-openstack
export RPC_PRODUCT_RELEASE="master"  # This is optional, if unset the current stable product will be used
./scripts/deploy.sh

Configure and deploy the cloud

To configure the installation please refer to the upstream OpenStack-Ansible documentation regarding basic system setup.

OpenStack-Ansible Installation

OpenStack-Ansible will need to be installed. While you can simply run the bootstrap-ansible.sh script provided by the OpenStack-Ansible community you may also run the openstack-ansible-install.yml playbook which was created for convenience and will maintain impotency.

cd /opt/rpc-openstack
export RPC_PRODUCT_RELEASE="master"  # This is optional, if unset the current stable product will be used
/opt/rpc-ansible/bin/ansible-playbook -i 'localhost,' playbooks/openstack-ansible-install.yml
Optional | Setting the OpenStack-Ansible release

It is possible to set the OSA release outside of the predefined "stable" release curated by the RPC-OpenStack product. To set the release define the Ansible variable osa_release to a SHA, Branch, or Tag and run the site-release.yml and openstack-ansible-install.yml playbooks to install the correct version.

openstack-ansible site-release.yml openstack-ansible-install.yml -e 'osa_release=master'
Running the playbooks

Once the deploy configuration has been completed please refer to the OpenStack-Ansible documentation regarding running the playbooks.


Deploy the Rackspace Value Added Services

Upon completion of the deployment run scripts/deploy-rpco.sh script to apply the RPC-OpenStack value added services; you may also run the playbooks site-logging.yml to accomplish much of the same things.

cd /opt/rpc-openstack
openstack-ansible site-logging.yml

Post deployment run the optional site-openstack.yml playbooks to setup default flavors and images.

cd /opt/rpc-openstack
openstack-ansible site-openstack.yml

Perform an Intra-Series Product Upgrade

To run a basic system upgrade set the ${RPC_PRODUCT_RELEASE} option, re-run deploy.sh.

tmux
cd /opt/rpc-openstack
export RPC_PRODUCT_RELEASE="master"  # This is optional, if unset the current stable product will be used
./scripts/deploy.sh
openstack-ansible openstack-ansible-install.yml

Once basic system configuration has completed, run through the upgrade process for the specified product release.

Perform a Major Product Upgrade (BETA)

To run a major upgrade set the ${RPC_PRODUCT_RELEASE} option, re-run deploy.sh.

tmux
cd /opt/rpc-openstack
export RPC_PRODUCT_RELEASE="master"  # This needs to be set to the new product
./scripts/deploy.sh
openstack-ansible openstack-ansible-install.yml

Once the deployment is ready either run the major upgrade script or run the manual upgrade process.

Remove legacy ELK from an RPC-OpenStack deployment and deploy ELK 6x.

The following procedure will deactivate the legacy ELK tooling within an environment and redeploy the new tools.

If the optional step to destroy the containers is not executed, the old containers will remain online but will no longer receive any more data.

  • Retrieve the ops tooling from openstack-ansible.
git clone https://github.com/openstack/openstack-ansible-ops /opt/openstack-ansible-ops
  • OPTIONAL | Destroy existing ELK related containers.
cd /opt/openstack-ansible/playbooks || cd /opt/rpc-openstack/openstack-ansible/playbooks
ansible all -m service -a 'name=filebeat state=stopped'
openstack-ansible lxc-containers-destroy.yml --limit 'elasticsearch_all:kibana_all:logstash_all'
  • Move old config files out of the way.
rm /etc/openstack_deploy/env.d/{elasticsearch,kibana,logstash}.yml
  • Ensure the legacy implementation of filebeat is stopped and removed.
ansible -m apt -a 'name=filebeat state=absent' all
  • Remove old containers from openstack-ansible inventory.
for i in $(../scripts/inventory-manage.py -l | grep -e elastic -e kibana -e logstash | awk '{print $2}'); do
  echo "Removing $i"
  ../scripts/inventory-manage.py -r "${i}"
done
  • Deploy the new ELK infrastructure
cd /opt/rpc-openstack/playbooks
openstack-ansible deployment-elk.yml

Testing and Gating

Please see the documentation in rpc-gating/README.md