Readme last updated: 2021-05-26
cloudera.exe is an Ansible collection enabling runlevel management of CDP Public Cloud deployments. The collection also contains a number of utilities for common scenarios encountered when managing a CDP deployment.
The collection provides the following roles:
| Role | Description |
|---|---|
| sequence | Runlevel-like "orchestration" of CDP Public Cloud deployments |
| infrastructure | Cloud provider assets and IaaS |
| platform | CDP Public Cloud assets, including Environments, Datalakes, Users and Groups, etc. |
| runtime | CDP Experiences, including Machine Learning, Datahubs, etc. |
| info | Comprehensive readout of all CDP Public Cloud elements within an Environment |
| data | Manage external data locations for CDP Public Cloud deployments |
| common | Shared variables for all roles within collection |
To install the cloudera.exe collection, you have several options. Please note that to date, we have not yet published this collection to the public Ansible Galaxy server, so you cannot install it via direct namespace declaration, rather you must specify a Git project and (optionally) branch.
The collection has several dependencies that should resolve automatically via the
ansible-galaxy command:
- cloudera.cloud (on Cloudera Labs)
- ansible.netcommon
- community.general
- community.aws
- amazon.aws
- azure.azcollection
- google.cloud
- netapp.azure (currently a bug fix branch)
Create or edit the collections/requirements.yml file in your project with the
following:
collections:
- name: https://github.com/cloudera-labs/cloudera.exe.git
type: git
version: mainAnd then run in your project:
ansible-galaxy collection install -r collections/requirements.ymlPeriodically, the collection is packaged into a distribution which you can install directly:
ansible-galaxy collection install <collection-tarball> -p collections/The cloudera.exe collection interacts with both CDP and cloud provider endpoints.
NOTE: At minimum, you will need to install the base Python libraries and your target cloud provider libraries. You may choose to install all the cloud provider libraries, if desired.
NOTE #2: We highly recommend using virtual environments for managing these dependencies!
The collection requires Ansible 2.10.0 or higher.
cloudera.exe depends on the following other collections, all of which should be automatically resolved through ansible-galaxy.
cloudera.cloudansible.netcommoncommunity.generalcommunity.awsamazon.awsazure.azcollectiongoogle.cloudnetapp.azure
The collection has several Python libraries that are needed to support the roles and the underlying modules, i.e. the base libraries, including:
Ansible
jmespathnetaddr
CDP
cdpy(See cdpy on Cloudera Labs)
The requirements.txt file declares these libraries. You may install them via pip:
pip install -r requirements.txtFor AWS, you need to install the following Python libraries:
awsclibotobotocoreboto3
The requirements_aws.txt file declares these libraries. You may install them via pip:
pip install -r requirements_aws.txtFor Azure, you must first install the Azure CLI for your OS.
Then install the following Python libraries:
- All of the Azure Collection requirements
azure-mgmt-netapp
The requirements_azure.txt file declares these libraries. You may install them via pip:
pip install -r requirements_azure.txtFor Google Cloud, you must first install the Google Cloud SDK for your OS.
Then install the following Python libraries:
google-auth
The requirements_gcp.txt file declares these libraries. You may install them via pip:
pip install -r requirements_gcp.txtSee the execution examples in the Deployment Runlevels document.
For more information on the collection, check out:
Contribution instructions are coming soon!
Copyright 2021, Cloudera, 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.