Code Monkey home page Code Monkey logo

rpc-openstack's Introduction

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="pike"  # 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="pike"  # 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.

Artifact Setup

Prior to running the OpenStack-Ansible playbooks ensure your system(s) are using the latest artifacts. To ensure all hosts have are using the same artifacted release, run the site-artifacts.yml playbook.

cd /opt/rpc-openstack
export RPC_PRODUCT_RELEASE="pike"  # This is optional, if unset the current stable product will be used
openstack-ansible site-artifacts.yml
Optional | Disable Artifacts

It is possible to disable parts of the artifact deployment system RPC-OpenStack provides. To disable the artifact components any of the following variables can be set to false when running the site-artifacts.yml playbook.

  • apt_artifact_enabled
  • container_artifact_enabled
  • py_artifact_enabled

If these variables are unset, they will automatically flip to true when the respective artifacts are found. These settings are stored in the local fact file /etc/ansible/facts.d/rpc_openstack.fact. If a deployer needs to completely reset the state of artifacts, this file can be removed or modified as needed.

openstack-ansible site-artifacts.yml -e 'apt_artifact_enabled=false' \
                                     -e 'container_artifact_enabled=false' \
                                     -e 'py_artifact_enabled=false'
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="pike"  # This is optional, if unset the current stable product will be used
openstack-ansible 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, and setup the artifact configuration for the deployment.

tmux
cd /opt/rpc-openstack
export RPC_PRODUCT_RELEASE="pike"  # This is optional, if unset the current stable product will be used
./scripts/deploy.sh
openstack-ansible site-artifacts.yml
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, and setup the artifact configuration for the deployment.

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

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

Testing and Gating

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

rpc-openstack's People

Contributors

mattt416 avatar mancdaz avatar git-harry avatar prometheanfire avatar sigmavirus24 avatar major avatar hughsaunders avatar andymcc avatar miguelgrinberg avatar stevelle avatar bjoernt avatar cloudnull avatar evrardjp avatar nrb avatar neillc avatar antonym avatar frank-zhangxin avatar tomc603 avatar claco avatar dankolbrs avatar jcannava avatar cjloader avatar odyssey4me avatar r1chardj0n3s avatar rackerkev avatar vhe182 avatar ameserole avatar apsu avatar jacobwagner avatar kuwagata avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.