example - jrwhetse/jrwhetse.github.io GitHub Wiki

Playbooks Hierarchy

Installation Playbooks
  Master Playbooks
    Component Playbooks
      Roles

Exploded View

# installation
ansible-playbook installs/install.yml -i inventories/devops

  # master - aws
  ansible-playbook installs/aws.yml -i inventories/devops
        
    # components - aws
      - import_playbook: playbooks/aws/aws-acm.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-vpc-net.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-vpc-subnet.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-igw.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-nat-gateway.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-key.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-security_groups.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-elb-target-groups.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-nlb.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-alb.yml -i inventories/devops
      - import_playbook: playbooks/aws/ec2-efs.yml -i inventories/devops

  # master - devops
  ansible-playbook installs/devops.yml -i inventories/devops --limit devops
            
    # component - jenkins
    ansible-playbook installs/jenkins.yml -i inventories/devops --limit jenkins
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
         
      # role - jenkins
      ansible-playbook playbooks/jenkins/jenkins.yml
        - include_role: name=jenkins tasks_from=main.yml
			
    # component - sonar
    ansible-playbook installs/sonar.yml -i inventories/devops --limit sonar
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
            
      # role - sonar
      ansible-playbook playbooks/sonar/sonar.yml		
        - include_role: name=sonar tasks_from=main.yml

    # component - nexus
    ansible-playbook installs/nexus.yml -i inventories/devops --limit nexus
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml	
	
      # role - nexus
      ansible-playbook playbooks/nexus/nexus.yml		
        - include_role: name=nexus tasks_from=main.yml

    # component - sentry
    ansible-playbook installs/sentry.yml -i inventories/devops --limit sentry
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml

      # role - sentry
      ansible-playbook playbooks/sentry/sentry.yml		
        - include_role: name=sentry tasks_from=main.yml

    # component - ansible
    ansible-playbook installs/ansible.yml -i inventories/devops --limit ansible
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
		
      # role - ansible
      ansible-playbook playbooks/ansible/ansible.yml		
        - include_role: name=ansible tasks_from=main.yml

    # component - awx
    ansible-playbook installs/awx.yml -i inventories/devops --limit awx
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml

      # role - awx
      ansible-playbook playbooks/awx/awx.yml		
        - include_role: name=awx tasks_from=main.yml

    # component - prometheus
    ansible-playbook installs/prometheus.yml -i inventories/devops --limit prometheus
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
      
      # role - prometheus
      ansible-playbook playbooks/prometheus/prometheus.yml		
        - include_role: name=prometheus tasks_from=main.yml

    # component - grafana
    ansible-playbook installs/grafana.yml -i inventories/devops --limit grafana
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
	
      # role - grafana
      ansible-playbook playbooks/grafana/grafana.yml		
        - include_role: name=grafana tasks_from=main.yml

    # component - alertmanager
    ansible-playbook installs/alertmanager.yml -i inventories/devops --limit alertmanager
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml

      # role - alertmanager
      ansible-playbook playbooks/alertmanager/alertmanager.yml		
        - include_role: name=alertmanager tasks_from=main.yml

    # component - tomcat
    ansible-playbook installs/tomcat.yml -i inventories/devops --limit tomcat
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
	
      # role - tomcat
      ansible-playbook playbooks/tomcat/tomcat.yml		
        - include_role: name=tomcat tasks_from=main.yml

    # component - weblogic
    ansible-playbook installs/weblogic.yml -i inventories/devops --limit weblogic
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml				

      # role - weblogic
      ansible-playbook playbooks/weblogic/weblogic.yml		
        - include_role: name=weblogic tasks_from=main.yml

    # component - rancher-ha
    ansible-playbook installs/rancher-ha.yml -i inventories/devops --limit rancher-ha
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml	
	
      # role - rancher-ha
      ansible-playbook playbooks/rancher-ha/rancher-ha.yml		
        - include_role: name=rancher-ha tasks_from=main.yml

    # component - rancher-sa
    ansible-playbook installs/rancher-sa.yml -i inventories/devops --limit rancher-sa
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
		
      # role - rancher-ha
      ansible-playbook playbooks/rancher-sa/rancher-sa.yml		
        - include_role: name=rancher-sa tasks_from=main.yml

    # component - rancher-nodes
    ansible-playbook installs/rancher-nodes.yml -i inventories/devops --limit rancher-nodes
      - import_playbook: playbooks/aws/ec2-efs.yml
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
		
      # role - rancher-nodes
      ansible-playbook playbooks/rancher-nodes/rancher-nodes.yml		
        - include_role: name=rancher-nodes tasks_from=main.yml

  # master - vagov
  ansible-playbook installs/vagov.yml -i inventories/devops --limit vagov

    # component - vets-website
    ansible-playbook installs/vets-website.yml -i inventories/devops --limit vets-website
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml
      - ansible-playbook playbooks/vets-website/vets-website.yml

      # role - vets-website
      ansible-playbook playbooks/vets-website/vets-website.yml		
        - include_role: name=vets-website tasks_from=main.yml
    
    # component - vets-api
    ansible-playbook installs/vets-api.yml -i inventories/devops --limit vets-api
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml

      # role - vets-api
      ansible-playbook playbooks/vets-api/vets-api.yml		
        - include_role: name=vets-api tasks_from=main.yml	

  # master - phr
  ansible-playbook installs/phr.yml -i inventories/devops --liimit phr

    # component - fhir
    ansible-playbook installs/fhir.yml -i inventories/devops --limit fhir
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml

      # role - fhir
      ansible-playbook playbooks/fhir/fhir.yml		
        - include_role: name=fhir tasks_from=main.yml

    # component - hie
    ansible-playbook installs/hie.yml -i inventories/devops --limit hie
      - import_playbook: playbooks/aws/ec2-instances.yml
      - import_playbook: playbooks/aws/ec2-volumes.yml
      - import_playbook: playbooks/machine/configure-instance.yml
      - import_playbook: playbooks/machine/configure-volumes.yml
      - import_playbook: playbooks/machine/configure-efs.yml
      - import_playbook: playbooks/machine/configure-firewall.yml

      # role - hie
      ansible-playbook playbooks/hie/hie.yml		
        - include_role: name=hie tasks_from=main.yml