Playbooks to setup ansible tower, then use CI/CD processes to deploy a QA environment with a 3 tier app and if successful deploy a production environment with the 3 tier app.
tower_GUID= #GUID for tower environment
osp_GUID= #GUID for OpenStack environment
osp_DOMAIN= #Domain for OpenStack environment
opentlc_login= #Your Red Hat Open TLC login
path_to_opentlc_key= #Path to your private key for Open TLC login
param_repo_base= #JQ Repo Base
opentlc_password= #Your Open TLC Password
REGION_NAME= #The AWS region you will deploy your prod environment too. I.E: us-east-1
EMAIL= #Your email address
github_repo= #Path to your github repo for use in provisioning servers and apps
-
From the cloned repo run
site-config-tower.yml
playbook to create job templates and workflow template.
Files or dir | Purpose |
---|---|
app-tier |
Install application server role |
db-tier |
Install postgressql server for database role |
lb-tier |
Install HA proxy role |
base-config |
Setup yum repo and base packages role |
setup-workstation |
Setup workstation, create network, ssh keypair, security group etc. role |
osp-servers |
Provision OSP Instances role |
osp-instance-delete |
Delete OSP Instances role |
osp-facts |
Genrate in-memory inventory for OSP instances role |
roles/config-tower/vars/main.yml |
Very important file to review. All the variable values are set there. Please do not make any changes in the file |
config-tower |
Role to configure ansible tower job templates and workflow |
aws_creds.yml |
Fetch GUIDkey.pem from bastion of Three tier application env and create machine credential to connect to AWS instances |
aws_provision.yml |
Use |
aws_status_check.yml |
Check aws instances are up or not |
site-3tier-app.yml |
Playbook to deploy three tier app |
site-install-isolated-node.yml |
Playbook to install isolated node |
site-config-tower.yml |
Playbook to call role |
site-osp-delete.yml |
Playbook to call role |
site-osp-instances.yml |
Playbook to call role |
site-setup-prereqs.yml |
Playbook to call role |
site-smoke-osp.yml |
Playbook to test three tier app on OSP |
site-smoketest-aws.yml |
Playbook to test three tier app on AWS |
grading-script.yml |
Self grading script |
roles/config-tower/tasks/ec2_dynamic.yml |
For creating Dynamic inventory in Ansible tower. Use |
roles/config-tower/tasks/job_template.yml |
For creating job templates |
roles/config-tower/tasks/pre-config-tower.yml |
Any pre config tasks needed |
roles/config-tower/tasks/workflow_template.yml |
genrate workflow from |
roles/config-tower/tasks/post-config-tower.yml |
any post config jobs |
Example:
ansible-playbook site-3tier-app.yml -e tower_GUID=${TOWER_GUID} -e osp_GUID=${OSP_GUID} -e osp_DOMAIN=${OSP_DOMAIN} -e opentlc_login=${OPENTLC_ID} -e path_to_opentlc_key=/root/.ssh/mykey.pem -e param_repo_base=${JQ_REPO_BASE} -e opentlc_password=${OPENTLC_PASSWORD} -e REGION_NAME=${REGION} -e EMAIL=${MAIL_ID} -e github_repo=${GITHUB_REPO}