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

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