Skip to content

zebcarnell/nextgen_ansible_advanced_homework

 
 

Repository files navigation

Information

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.

Requirements

Requirements deployed as part of playbook.

Role Variables

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

Usage

  • From the cloned repo run site-config-tower.yml playbook to create job templates and workflow template.

Table 1. List of Playbooks
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 order_svc.sh script to provision env

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 config-tower

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 AWS Access Key for credential

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 workflow.yml file

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}

License

BSD

Author Information

Zeb Carnell

About

Fork this repo for Ansible Advanced HW

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jinja 100.0%