Optional add-ons for Rackspace Private Cloud
The rpc-openstack repo includes add-ons for the Rackspace Private Cloud product that integrate with the openstack-ansible set of Ansible playbooks and roles. These add-ons extend the 'vanilla' OpenStack environment with value-added features that Rackspace has found useful, but are not core to deploying an OpenStack cloud.
In Juno, the MaaS plugins code is contained in a separate repo, rpc-maas, and the Ansible code to deploy and configure the checks and alarms using these plugins is contained in tree with the openstack-ansible repo with the Juno branch.
As of Kilo, both the Maas plugins, and the Ansible code to deploy and configure the checks and alarms, are contained in the rpc-openstack repo.
The Kilo branch of openstack-ansible does not include any rpc-maas support directly any longer.
Plays:
beaver.yml
- deploys the beaver log shipper on all hostselasticsearch.yml
- deploys an elasticsearch hosthaproxy
- deploys haproxy configurations for elasticsearch and kibanahorizon_extensions.yml
- rebrands the horizon dashboard for Rackspace, as well as adding a Rackspace tab and a Solutions tab, which provides Heat templates for commonly deployed applications.kibana.yml
- Setup Kibana on the Kibana hosts for the logging dashboard.logstash.yml
- deploys a logstash host. If this play is used, be sure to copy the related block in user_rpco_variables_defaults.yml to user_rpco_variables_overrides before this play is run and then rerun the appropriate plays in openstack-ansible after this play to ensure that rsyslog ships logs to logstash. See steps 2-4 and 3-2 below for more.repo-build.yml
- scans throug the YAML files in the source tree and builds any packages or git sources into wheels and deploys them to the local repo server(s).repo-pip-setup.yml
- updates the pip configuration on all of the containers to include the rpc-openstack source that was created byrepo-build.yml
.rpc-support.yml
- provides holland backup service, support SSH key distribution, custom security group rules, bashrc settings, and other miscellaneous tasks helpful to support personnel.setup-maas.yml
- deploys, sets up, and installs Rackspace MaaS checks for Rackspace Private Clouds.setup-logging.yml
- deploys and configures Beaver, Logstash, Elasticsearch, and Kibana to tag, index, and expose aggregated logs from all hosts and containers in the deployment using the related plays mentioned above.site.yml
- deploys all the playbooks mentioned here.verify-maas.yml
- confirms each maas check selected for each host has been captured server-side for recording in MaaS and that each chec has at least one alarm configured for it.
-
Clone the RPC repository:
cd /opt && git clone --recursive https://github.com/rcbops/rpc-openstack
-
Unless doing an AIO build, prepare the openstack-ansible configuration.
-
recursively copy the openstack-ansible-deployment configuration files:
cp -R openstack-ansible/etc/openstack_deploy /etc/openstack_deploy
-
move OSA variables to the correct locations.
rm /etc/openstack_deploy/user_variables.yml # unused, nothing set mv /etc/openstack_deploy/user_secrets.yml /etc/openstack_deploy/user_osa_secrets.yml
-
copy the RPC configuration files:
cp rpcd/etc/openstack_deploy/user_*_defaults.yml /etc/openstack_deploy
cp rpcd/etc/openstack_deploy/env.d/* /etc/openstack_deploy/env.d
-
If the ELK stack is not going to be used, remove the container configurations from the environment:
rm -f /etc/openstack_deploy/env.d/{elasticsearch,logstash,kibana}.yml
-
Edit configurations in
/etc/openstack_deploy
for example: 1.openstack_user_config.yml.example
oropenstack_user_config.yml.aio
2. There is a tool to generate the inventory for RAX datacenters, otherwise it will need to be coded by hand. -
Run the RPC deploy script:
cd /opt/rpc-openstack && ./scripts/deploy.sh
-
If building AIO, set
DEPLOY_AIO=yes
before running -
If building without the ELK stack, set
DEPLOY_ELK=no
before running -
If you want MaaS working with AIO, do the following:
-
edit
/etc/openstack_deploy/user_rpco_variables_overrides.yml
to add credentials -
run the MaaS setup plays:
cd /opt/rpc-openstack/rpcd/playbooks && openstack-ansible setup-maas.yml
-
run the MaaS verify play:
cd /opt/rpc-openstack/rpcd/playbooks && openstack-ansible verify-maas.yml
MaaS Verification may fail if executed within the first few moments after the Setup plays complete as the MaaS service registers checks and alarms installed on your hosts. If it fails, manually retrying once after a one minute delay is recommended.
Use these environment variables to override aspects of deploy.sh
's behavior.
Variable | Default | Description | Notes |
---|---|---|---|
ADMIN_PASSWORD | secrete | Set Admin password for Kibana | Only used if DEPLOY_AIO=yes |
DEPLOY_AIO | no | Deploy All-In-One (AIO) | Overrides DEPLOY_HAPROXY=yes |
DEPLOY_HAPROXY | no | Deploy HAProxy | Must set DEPLOY_HAPROXY=yes if not using a physical load balancer |
DEPLOY_OA | yes | Deploy OpenStack-Ansible (OA) | |
DEPLOY_ELK | yes | Deploy Logging Stack (ELK) | Only used if DEPLOY_OA=yes |
DEPLOY_MAAS | no | Deploy Monitoring (MaaS) | |
DEPLOY_TEMPEST | no | Deploy Tempest | Only used if DEPLOY_OA=yes |
DEPLOY_CEILOMETER | no | Deploy Ceilometer | Not used |
DEPLOY_CEPH | no | Deploy Ceph | Only used if DEPLOY_OA=yes |
FORKS | grep -c ^processor /proc/cpuinfo |
Number of forks Ansible may use | May have issues if FORKS > SSHD's MaxSessions. Adjust accordingly |
ANSIBLE_PARAMETERS | Additional paramters passed to Ansible |
For instance to adjust the number of forks Ansible is able to use:
export FORKS=10
./scripts/deploy.sh
To run an upgrade of an existing openstack-ansible installation:
- Run
scripts/upgrade.sh
.
Please note the following behaviors that are destructive:
* /etc/rpc_deploy
will be deprecated and the file structure moved to
/etc/openstack_deploy
.
If you would like to lint against a version of ansible that is not the
default, set the ANSIBLE_VERSION
environment variable to the proper pip
version specification:
ANSIBLE_VERSION='>=2.0' tox -e ansible-lint
Please see the documentation in jenkins-rpc/README.md