| ## Apigee OPDK Playbook Maintenance - Cassandra Replication Factor Change Runbook |
| |
| This is an Ansible playbook that performs a modification of the Cassandra replication factor used |
| with Apigee components with zero downtime in a two data center topology. |
| |
| ## Requirements and Usage Overview |
| |
| This playbook uses ansible-galaxy to download roles that are used by this playbook. Once roles are |
| downloaded the playbook and be invoked in several ways. The playbook can be invoked in its entirety, |
| a tag can be used to invoke a subset of playbook services or the playbook may be run manually. These |
| ways of invoking the playbook are described below. |
| |
| ## Description: Download Roles |
| |
| The playbook roles and their location is found in the ```requirements.yml``` file. This file is |
| provided to ```ansible-galaxy``` so that the roles may be downloaded. |
| |
| ## Usage: Ansible Galaxy |
| |
| Ansible galaxy will download the required roles when invoked with the install action and the |
| requirements file. This is accomplished in the following way: |
| |
| ```ansible-galaxy install -r requirements.yml``` |
| |
| ## Update Replication Factor Overview |
| |
| The ```update-replication-factor.yml``` script performs the update of the Cassandra replication |
| factor for keyspaces in a Cassandra ring. This playbook assumes that you are changing Cassandra |
| replication on a planet that is composed of two regions or two data centers. |
| |
| This script expects you to provide the ```replication_factor``` setting you wish to use when the |
| script is invoked at the command line. |
| |
| ## Usage: Full Playbook Invocation |
| |
| The full playbook invocation is performed in the following way: |
| |
| ansible-playbook update-replication-factor -e replication_factor=6 -vvv -b |
| |
| ## Usage: Manaul Playbook Invocation |
| |
| This playbook enables tasks to be invoked manually. Manual invocation of this playbook is |
| accomplished in the following way: |
| |
| ansible-playbook update-replication-factor -e replication_factor=6 -vvv --step |
| |
| During manual invocation the playbook will stop before every task. The user is prompted on each task |
| for permission to execute, stop execution or continue execution to the first task of the next play. |
| The prompt accepts ```y``` to execute; ```n``` to stop execution or ```c``` to continue execution |
| and stop on the first task of the next play. |
| |
| ## Usage: Playbook Invocation with Tags |
| |
| ansible-playbook update-replication-factor -e replication_factor=6 -vvv --tags={{ tag name}} |
| |
| ## Usage: Manual Playbook Invocation with Tags |
| |
| ansible-playbook update-replication-factor -e replication_factor=6 -vvv --tags={{ tag name}} --step |
| |
| ## Defined Tags |
| |
| Playbook Name | Tag Name | Description | Usage | |
| --- | --- | --- | --- | --- | |
| update-replication-factor.yml | cache | Update local cache apigee attributes | --tags=cache |
| update-replication-factor.yml | backup | Backup zookeeper and cassandra | --tags=backup |
| update-replication-factor.yml | two | Set the consistency level to TWO for RMPs and MSs | --tags=two |
| update-replication-factor.yml | local-quorum | Set the consistency level to LOCAL_QUORUM for RMPs and MSs | --tags=local-quorum |
| update-replication-factor.yml | repair | Perform nodetool repair | --tags=repair |
| update-replication-factor.yml | restart | Restart all apigee components for nodes with C*/ZK, RMPs and MSs | --tags=restart |
| update-replication-factor.yml | stop | Stop all apigee components for nodes with C*/ZK, RMPs and MSs | --tags=stop |
| update-replication-factor.yml | start | Start all apigee components for nodes with C*/ZK, RMPs and MSs | --tags=start |
| update-replication-factor.yml | update-replication-factor | Update the replication factor | --tags=update-replication-factor |
| update-replication-factor.yml | logs | Download Apigee logs from servers | --tags=logs |
| <!-- BEGIN Google Required Disclaimer --> |
| |
| # Not Google Product Clause |
| |
| This is not an officially supported Google product. |
| <!-- END Google Required Disclaimer --> |
| <!-- BEGIN Google How To Contribute --> |
| # How to Contribute |
| |
| We'd love to accept your patches and contributions to this project. Please review our [guidelines](CONTRIBUTION.md). |
| <!-- END Google How To Contribute --> |