From 9cec78444844458c4072c384f96250dde603a357 Mon Sep 17 00:00:00 2001
From: Chris Hines <chris.hines@monash.edu>
Date: Thu, 27 Nov 2014 03:56:54 +0000
Subject: [PATCH] the topplay I'm currently using

---
 topplay.yml | 153 +++++++++++++++-------------------------------------
 1 file changed, 43 insertions(+), 110 deletions(-)

diff --git a/topplay.yml b/topplay.yml
index ce7eb62f..cebc4b6c 100644
--- a/topplay.yml
+++ b/topplay.yml
@@ -1,153 +1,86 @@
 ---
 
+# First we need hostname -f to return the correct domain
+
 - hosts: '*'
   roles:
-  - etcHosts
-
-#- hosts: 'x509_ca'
-#  vars:
-#  roles:
-#  - { role: easy-rsa-CA }
-#
-#- hosts: 'OpenVPN-Server'
-#  vars:
-#    x509_ca_server: "{{ groups['x509_ca'][0] }}"
-#  roles:
-#  - { role: OpenVPN-Server }
-#
-#- hosts: 'OpenVPN-Client'
-#  vars:
-#    x509_ca_server: "{{ groups['x509_ca'][0] }}"
-#    openvpn_servers: "{{ groups['OpenVPN-Server'] }}"
-#  roles:
-#  - { role: OpenVPN-Client }
-#
-#
-#- hosts: 'SubmitHost'
-#  roles:
-#      - { role: slurm-build, slurm_version: 14.11.0, munge_version: 0.5.11 }
+  - {role: etcHosts, domain: 'test.massive.org.au' }
+
+# Create an x509 CA. Certificates are used for the VPN, the ldap server and the web server (karaage)
 
 - hosts: ManagmentNodes[0]
   vars:
   roles:
   - { role: easy-rsa-CA }
 
-- hosts: 'OpenVPN-Server'
+- hosts: 'ManagmentNodes'
   vars:
-    x509_ca_server: "{{ groups['x509_ca'][0] }}"
+    x509_ca_server: "{{ groups['ManagmentNodes'][0] }}"
+    ldapDomain: "dc=test,dc=massive,dc=org,dc=au"
   roles:
   - { role: OpenVPN-Server }
+  - { role: ldapserver }
 
-- hosts: 'OpenVPN-Client'
+- hosts: 'karaage'
   vars:
-    x509_ca_server: "{{ groups['x509_ca'][0] }}"
-    openvpn_servers: "{{ groups['OpenVPN-Server'] }}"
+    x509_ca_server: "{{ groups['ManagmentNodes'][0] }}"
+    smtp_smarthost: "does_not_exist.massive.org.au"
+    ldapDomain: "dc=test,dc=massive,dc=org,dc=au"
+    ldapURL: "ldaps://{{ hostvars[groups['ManagmentNodes'][0]]['ansible_fqdn'] }}"
   roles:
-  - { role: OpenVPN-Client }
+  - { role: karaage2.7 }
 
-- hosts: ComputeNode
-  vars:
-    openmpi_version: 1.8.3
-    build_node: aciab-comp-0
-  roles:
+# The next two tasks, apply the VPN and recalcuate /etc/hosts. Comment them if you are on a secure network
 
-- hosts: 'x509_ca'
+- hosts: ComputeNodes
   vars:
-    openmpi_version: 1.8.3
-    build_node: aciab-comp-0
+    x509_ca_server: "{{ groups['ManagmentNodes'][0] }}"
+    openvpn_servers: "{{ groups['ManagmentNodes'] }}"
   roles:
-  - { role: easy-rsa-CA }
+    - { role: OpenVPN-Client }
 
-- hosts: 'OpenVPN-Server'
-  vars:
-    x509_ca_server: "{{ groups['x509_ca'][0] }}"
+- hosts: '*'
   roles:
-  - { role: OpenVPN-Server }
+  - {role: etcHosts, domain: 'test.massive.org.au' }
 
-- hosts: ComputeNodes:ManagmentNodes:LoginNodes
-  vars:
-    x509_ca_server: "{{ groups['x509_ca'][0] }}"
-    openvpn_servers: "{{ groups['OpenVPN-Server'] }}"
-  roles:
-  - { role: OpenVPN-Client }
+# These tasks build some software (slurm, munge and openmpi) and copy them back to localhost. Skip if you have some other way of getting 
+# copyies of these software
 
-- hosts: ComputeNode
+- hosts: ComputeNodes[0]
   vars:
-    openmpi_version: 1.8.3
-    build_node: aciab-comp-0
-
-- hosts: 'SubmitHost'
+    slurm_version: 14.11.0
+    munge_version: 0.5.11
   roles:
-      - { role: slurm-build, slurm_version: 14.11.0, munge_version: 0.5.11 }
+    - { role: slurm-build }
 
-- hosts: '*'
-  roles:
-  - etcHosts
+# Slurm and openmpi tasks assume copies of the software in /tmp under a very specific directory strucutre (created by the build tasks above) Modifiy 
+# the roles if you have a different way of installing the software
 
-- hosts: ComputeNodes|ManagmentNodes|LoginNodes
+- hosts: ComputeNodes:ManagmentNodes:LoginNodes
   vars:
     slurm_version: 14.11.0
     munge_version: 0.5.11
     slurmqueues: 
-      - {name: DEFAULT, group: ComputeNode}
-      - {name: batch, group: ComputeNode}
-      - {name: gpu, group: ComputeNode}
-    slurmctrl: "{{ groups['SubmitHost'][0] }}"
-  roles:
-      - { role: slurm }
-      - { role: test_user }
-      - { role: openmpi-build }
-      - { role: openmpi-build }
-      - { role: openmpi-build }
-
-#- hosts: '*'
-#  vars:
-#    slurm_version: 14.11.0
-#    munge_version: 0.5.11
-#    slurmqueues: 
-#      - {name: DEFAULT, group: ComputeNode}
-#      - {name: batch, group: ComputeNode}
-#      - {name: gpu, group: ComputeNode}
-#    slurmctrl: "{{ groups['SubmitHost'][0] }}"
-#  roles:
-#      - { role: slurm }
-#      - { role: test_user }
-#
-- hosts: 'karaage'
-  vars:
-    x509_ca_server: "{{ groups['x509_ca'][0] }}"
-    smtp_smarthost: "does_not_exist.massive.org.au"
-    ldapDomain: "dc=test,dc=massive,dc=org,dc=au"
-    ldapURL: "ldaps://{{ hostvars[groups['ldapserver'][0]]['ansible_fqdn'] }}"
+      - {name: batch, group: ComputeNodes}
+    slurmctrl: "{{ groups['ManagmentNodes'][0] }}"
   roles:
-  - { role: karaage2.7 }
+      - { role: slurm, slurm_use_vpn: true} # change to false if you are on a secure network
 
-- hosts: 'ldapserver'
-  vars:
-    x509_ca_server: "{{ groups['x509_ca'][0] }}"
-    ldapDomain: "dc=test,dc=massive,dc=org,dc=au"
-  roles:
-  - { role: ldapserver }
-
-- hosts: '*'
-  roles:
-  - etcHosts
+# These tasks build some software (slurm, munge and openmpi) and copy them back to localhost. Skip if you have some other way of getting 
+# copyies of these software
 
-- hosts: '*'
+- hosts: ComputeNodes[0]
   vars:
-    slurm_version: 14.11.0
-    munge_version: 0.5.11
-    slurmqueues: 
-      - {name: DEFAULT, group: ComputeNode}
-      - {name: batch, group: ComputeNode}
-      - {name: gpu, group: ComputeNode}
-    slurmctrl: "{{ groups['SubmitHost'][0] }}"
+    openmpi_version: 1.8.3
   roles:
-      - { role: slurm }
-      - { role: test_user }
+    - { role: openmpi-build }
+
+# openmpi tasks assume copies of the software in /tmp under a very specific directory strucutre (created by the build tasks above) Modifiy 
+# the roles if you have a different way of installing the software
 
 - hosts: ComputeNodes:ManagmentNodes:LoginNodes
   vars:
     openmpi_version: 1.8.3
   roles:
       - { role: openmpi }
+
-- 
GitLab