ORCA is a collection of Ansible playbooks which addresses the challenges of Oracle Database Copy Data Management (CDM). ORCA provides traditional and modern DevOps teams a Self Service solution enabling developers, QA engineers and business teams the abiliy to refresh non-Production databases without impacting Production systems.
ORCA utilises standard Ansible and Pure modules to manage Oracle database services and perform 'Crash Consistent' storage snapshots, enabling end-to-end automation of Oracle databases refreshes across mulitple non-Production databases within the Enterprise.
Unlike other Copy Data Management (CDM) solutions, ORCA has zero Production Impact e.g.
- No Production configuration changes e.g. OS or databases accounts
- No Production agents or sofware installs
- No additional Production backup workload e.g. RMAN jobs
- No impact to Production databases e.g. requirement to put database into Hot Backup mode.
ORCA is designed to be run from RedHat Ansible Tower or the Opens Source AWX Project.
ORCA is able to leverage the Ansible Tower and AWX Automation and Orchestration features below. If you are considering a CDM tool I strongly suggest you consider these features:
- Modern WebUI, command line and REST API interfaces (for integration with other DevOps tools e.g Jenkins)
- The ability to schedule and run job interactivley (Self Service)
- Provide runtime variables and parameters
- Job notifications - Slack, email etc...
- Code configuration management through Git intergration
- Host and dynamic inventory management
- Security and encrypted password management
- User RBAC (RollBack Access Control)
- Job Audit and reporting
- Refresh Mulitple Oracle 18c Databases
- Shutdown Oracle 18c Databases
ORCA requires the PureStorage Python REST Client, details available at https://pypi.org/project/purestorage/
pip install purestorage
Download ORCA from GitHub and localise vars/database.yaml to required source and target databases.
Use from ansible control machine command line or via RedHat Tower / AWX.
Refactored to use Pure Ansible module and Purity 6+ volume tags
$ ansible-playbook database_clone2.yaml
Legacy version available for reference only.
Examples using Ansible URI module rather than prefered Ansible Pure modules
$ ansible-playbook database_clone.yaml
- Source and Target database(s) reside on the same FlashArray
Ron Ekins, Principal Filed Solutions Architect, Office of the CTO at Pure Storage
Oracle ACE Director
This module is available to use under the Apache 2.0 license, stipulated as follows:
Copyright 2018 Pure Storage, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
[RedHat Ansible] (https://www.ansible.com)
[RedHat Ansible Tower] (https://www.ansible.com/products/tower)
[RedHat Ansible AWX] (https://www.ansible.com/products/awx-project)