From dbb0815a647d1fd56870e898e96cd8b7fa8f3729 Mon Sep 17 00:00:00 2001 From: CVL-GitHub <jupiter.hu@monash.edu> Date: Tue, 20 Jan 2015 02:48:13 +0000 Subject: [PATCH] Fixed exceptions --- playbook/cvl2.yml | 73 +++++++++++++------ roles/OpenVPN-Server/tasks/installOpenVPN.yml | 6 ++ .../easy-rsa-certificate/tasks/buildCert.yml | 19 ++--- roles/nfs-server/defaults/main.yml | 4 - roles/nfs-server/tasks/main.yml | 1 + roles/nfs-server/tasks/mkFilesystem.yml | 21 +++--- 6 files changed, 79 insertions(+), 45 deletions(-) delete mode 100644 roles/nfs-server/defaults/main.yml diff --git a/playbook/cvl2.yml b/playbook/cvl2.yml index 90654e5a..4dc5df2d 100644 --- a/playbook/cvl2.yml +++ b/playbook/cvl2.yml @@ -3,35 +3,34 @@ vars_files: - massive_var/main.yml vars: - x509_ca_server: "{{ groups['OpenvpnServer'][0] }}" - openvpn_servers: "{{ groups['OpenvpnServer'] }}" - slurmctrl: "{{ groups['OpenvpnServer'][0] }}" + x509_ca_server: "{{ groups['ManagementNodes'][0] }}" + openvpn_servers: "{{ groups['ManagementNodes'] }}" + slurmctrl: "{{ groups['ManagementNodes'][0] }}" slurmqueues: - {name: batch, group: ComputeNodes, default: true} - - {name: vis, group: ComputeNodes, default: false} roles: - { role: etcHosts, domain: "{{ ldapDomain }}" } -- hosts: 'OpenvpnServer' +- hosts: 'ManagementNodes' vars_files: - massive_var/main.yml - massive_var/package.yml - massive_var/passwords.yml vars: - x509_ca_server: "{{ groups['OpenvpnServer'][0] }}" - openvpn_servers: "{{ groups['OpenvpnServer'] }}" - slurmctrl: "{{ groups['OpenvpnServer'][0] }}" + x509_ca_server: "{{ groups['ManagementNodes'][0] }}" + openvpn_servers: "{{ groups['ManagementNodes'] }}" + slurmctrl: "{{ groups['ManagementNodes'][0] }}" slurmqueues: - {name: batch, group: ComputeNodes, default: true} roles: - { role: easy-rsa-CA } - - { role: OpenVPN-Server } + - { role: OpenVPN-Server, configDiskDevice: true, mkFileSystems: {fstype : 'ext4', dev: '/dev/vdc', opts: 'defaults,nofail'} } - { role: ntp } - { role: openLdapClient } - { role: slurm-build } - { role: nfs-server, configDiskDevice: false } - { role: slurm, slurm_use_vpn: true} - - { role: installPackage, cliCopy: {'run': 'cp -r /usr/local/Modules/modulefiles/cvl /usr/local/Modules/modulefiles/massive', 'check': '/usr/local/Modules/modulefiles/massive'} } + - { role: installPackage, yumGroupPackageList: ['CVL Pre-installation', 'CVL Base Packages'], cliCopy: {'run': 'cp -r /usr/local/Modules/modulefiles/cvl /usr/local/Modules/modulefiles/massive', 'check': '/usr/local/Modules/modulefiles/massive'} } tasks: setup: @@ -47,23 +46,23 @@ - massive_var/passwords.yml - massive_var/package.yml vars: - x509_ca_server: "{{ groups['OpenvpnServer'][0] }}" - openvpn_servers: "{{ groups['OpenvpnServer'] }}" - slurmctrl: "{{ groups['OpenvpnServer'][0] }}" + x509_ca_server: "{{ groups['ManagementNodes'][0] }}" + openvpn_servers: "{{ groups['ManagementNodes'] }}" + slurmctrl: "{{ groups['ManagementNodes'][0] }}" slurmqueues: - {name: batch, group: ComputeNodes, default: true} - nfs_server: "{{ groups['OpenvpnServer'][0] }}" + nfs_server: "{{ groups['ManagementNodes'][0] }}" groupList: - { name : 'ComputeNodes', interface : 'tun0' } roles: - - { role: OpenVPN-Client, x509_ca_server: "cvl23server" } + - { role: OpenVPN-Client, x509_ca_server: "cvlm2management1" } - { role: ntp } - { role: openLdapClient } - - { role: syncExports, nfs_server: "cvl23server", exportList: [{ name: '/', src: '/usr/local', fstype: 'nfs4', opts: 'defaults,ro,nofail', nfsServerIp: "{{ hostvars['cvl23server']['ansible_tun0']['ipv4']['address'] }}", srvopts: 'ro,fsid=0,sync' }] } + - { role: syncExports, nfs_server: "cvlm2management1", exportList: [{ name: '/', src: '/usr/local', fstype: 'nfs4', opts: 'defaults,ro,nofail', nfsServerIp: "{{ hostvars['cvlm2management1']['ansible_tun0']['ipv4']['address'] }}", srvopts: 'ro,fsid=0,sync' }] } - { role: nfs-client, exportList: "[{ 'name': '/home', 'src': '/', 'fstype': 'nfs4', 'opts': 'defaults,nofail', 'nfsServerIp': '{{ nfsServerIpAddress }}', 'nfsClientIp': '{{ ansible_tun0.ipv4.address }}', 'srvopts': 'rw,root_squash,fsid=0,sync' }]" } - { role: nfs-client, exportList: "[ { 'name': '/usr/local', 'src': '/', 'fstype': 'nfs4', 'opts': 'defaults,ro,nofail', 'nfsServerIp': '{{ hostvars[nfs_server]['ansible_tun0']['ipv4']['address'] }}', 'srvopts': 'ro,fsid=0,sync' }]" } - { role: slurm, slurm_use_vpn: true} - - { role: installPackage, preInstallation: "umount /usr/local", postInstallation: "mount /usr/local", yumGroupPackageList: ["CVL Pre-installation", "CVL Base Packages", "CVL System", "CVL System Extension"] } + - { role: installPackage, preInstallation: "umount /usr/local", postInstallation: "mount /usr/local", yumGroupPackageList: ["CVL Pre-installation", "CVL Base Packages"], cliFileCopy: {'src': '/tmp/gconf_path', 'dest': '/etc/gconf/2/path'} } - hosts: all vars_files: @@ -71,16 +70,46 @@ roles: - { role: etcHosts, domain: "{{ ldapDomain }}" } -- hosts: 'LoginNode' +- hosts: 'ComputeNodesLarge' + vars_files: + - massive_var/main.yml + - massive_var/passwords.yml + - massive_var/package.yml + vars: + x509_ca_server: "{{ groups['ManagementNodes'][0] }}" + openvpn_servers: "{{ groups['ManagementNodes'] }}" + slurmctrl: "{{ groups['ManagementNodes'][0] }}" + slurmqueues: + - {name: multicore, group: ComputeNodesLarge, default: true} + nfs_server: "{{ groups['ManagementNodes'][0] }}" + groupList: + - { name : 'ComputeNodes', interface : 'tun0' } + roles: + - { role: OpenVPN-Client, x509_ca_server: "cvlm2management1" } + - { role: ntp } + - { role: openLdapClient } + - { role: syncExports, nfs_server: "cvlm2management1", exportList: [{ name: '/', src: '/usr/local', fstype: 'nfs4', opts: 'defaults,ro,nofail', nfsServerIp: "{{ hostvars['cvlm2management1']['ansible_tun0']['ipv4']['address'] }}", srvopts: 'ro,fsid=0,sync' }] } + - { role: nfs-client, exportList: "[{ 'name': '/home', 'src': '/', 'fstype': 'nfs4', 'opts': 'defaults,nofail', 'nfsServerIp': '{{ nfsServerIpAddress }}', 'nfsClientIp': '{{ ansible_tun0.ipv4.address }}', 'srvopts': 'rw,root_squash,fsid=0,sync' }]" } + - { role: nfs-client, exportList: "[ { 'name': '/usr/local', 'src': '/', 'fstype': 'nfs4', 'opts': 'defaults,ro,nofail', 'nfsServerIp': '{{ hostvars[nfs_server]['ansible_tun0']['ipv4']['address'] }}', 'srvopts': 'ro,fsid=0,sync' }]" } + - { role: slurm, slurm_use_vpn: true} + - { role: installPackage, preInstallation: "umount /usr/local", postInstallation: "mount /usr/local", yumGroupPackageList: ["CVL Pre-installation", "CVL Base Packages"], cliFileCopy: {'src': '/tmp/gconf_path', 'dest': '/etc/gconf/2/path'} } + +- hosts: all + vars_files: + - massive_var/main.yml + roles: + - { role: etcHosts, domain: "{{ ldapDomain }}" } + +- hosts: 'LoginNodes' vars_files: - massive_var/main.yml - massive_var/passwords.yml vars: groupList: - { name : 'ComputeNodes', interface : 'tun0' } - x509_ca_server: "{{ groups['OpenvpnServer'][0] }}" - openvpn_servers: "{{ groups['OpenvpnServer'] }}" - slurmctrl: "{{ groups['OpenvpnServer'][0] }}" + x509_ca_server: "{{ groups['ManagementNodes'][0] }}" + openvpn_servers: "{{ groups['ManagementNodes'] }}" + slurmctrl: "{{ groups['ManagementNodes'][0] }}" slurmqueues: - {name: batch, group: ComputeNodes, default: true} # - {name: vis, group: ComputeNodes, default: false} @@ -90,5 +119,5 @@ - { role: openLdapClient } - { role: nfs-client, exportList: "[{ 'name': '/home', 'src': '/', 'fstype': 'nfs4', 'opts': 'defaults,nofail', 'nfsServerIp': '{{ nfsServerIpAddress }}', 'nfsClientIp': '{{ ansible_tun0.ipv4.address }}', 'srvopts': 'rw,root_squash,fsid=0,sync' }]" } - { role: slurm, slurm_use_vpn: true} - - { role: installPackage, importRepo: { command: "wget http://cvlrepo.massive.org.au/repo/cvl.repo -O", destination: "/etc/yum.repos.d/cvl.repo" }, yumGroupPackageList: ['CVL Pre-installation', 'CVL Base Packages', 'CVL System', 'CVL System Extension'], cliCopy: {'run': 'cp -r /usr/local/Modules/modulefiles/cvl /usr/local/Modules/modulefiles/massive', 'check': '/usr/local/Modules/modulefiles/massive'} } + - { role: installPackage, importRepo: { command: "wget http://cvlrepo.massive.org.au/repo/cvl.repo -O", destination: "/etc/yum.repos.d/cvl.repo" }, yumGroupPackageList: ['CVL Pre-installation', 'CVL Base Packages'], cliCopy: {'run': 'cp -r /usr/local/Modules/modulefiles/cvl /usr/local/Modules/modulefiles/massive', 'check': '/usr/local/Modules/modulefiles/massive'} } diff --git a/roles/OpenVPN-Server/tasks/installOpenVPN.yml b/roles/OpenVPN-Server/tasks/installOpenVPN.yml index fe7c052f..05c43b60 100644 --- a/roles/OpenVPN-Server/tasks/installOpenVPN.yml +++ b/roles/OpenVPN-Server/tasks/installOpenVPN.yml @@ -4,6 +4,12 @@ notify: "restart openvpn" sudo: true +- name: Create path + shell: mkdir -p {{ dhparms_file | dirname }} + args: + creates: "{{ dhparms_file | dirname }}" + sudo: true + - name: "Generate DH parameters" shell: openssl dhparam -out {{ dhparms_file }} 512 args: diff --git a/roles/easy-rsa-certificate/tasks/buildCert.yml b/roles/easy-rsa-certificate/tasks/buildCert.yml index c9b2f9cd..d71c98a3 100644 --- a/roles/easy-rsa-certificate/tasks/buildCert.yml +++ b/roles/easy-rsa-certificate/tasks/buildCert.yml @@ -53,17 +53,18 @@ - name: "Create node tmp directory" delegate_to: 127.0.0.1 shell: "mkdir -p /tmp/{{ inventory_hostname }} ; chmod 755 /tmp/{{ inventory_hostname }}" + when: x509_ca_server != inventory_hostname - name: "Copy CSR to ansible host" fetch: "src=/etc/easy-rsa/2.0/keys/{{ x509_common_name }}.csr dest=/tmp/{{ inventory_hostname }}/{{ inventory_hostname }}.csr fail_on_missing=yes validate_md5=yes flat=yes" sudo: true - when: needcert + when: needcert and x509_ca_server != inventory_hostname - name: "Copy CSR to CA" remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" delegate_to: "{{ x509_ca_server }}" copy: "src=/tmp/{{ inventory_hostname }}/{{ inventory_hostname }}.csr dest=/etc/easy-rsa/2.0/keys/{{ x509_common_name }}.csr force=yes" - when: needcert + when: needcert and x509_ca_server != inventory_hostname sudo: true - name: "Sign Certificate" @@ -78,35 +79,35 @@ delegate_to: "{{ x509_ca_server }}" fetch: "src=/etc/easy-rsa/2.0/keys/{{ x509_common_name }}.crt dest=/tmp/{{ inventory_hostname }}/{{ x509_common_name }}.crt fail_on_missing=yes validate_md5=yes flat=yes" sudo: true - when: needcert + when: needcert and x509_ca_server != inventory_hostname - name: "Copy the CA Certificate to the ansible host" remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" delegate_to: "{{ x509_ca_server }}" fetch: "src=/etc/easy-rsa/2.0/keys/ca.crt dest=/tmp/{{ inventory_hostname }}/ca.crt fail_on_missing=yes validate_md5=yes flat=yes" sudo: true - when: "ca_cert.stat.exists == false" + when: ca_cert.stat.exists == false and x509_ca_server != inventory_hostname - name: "Make sure the path to the certificate exists" shell: "mkdir -p `dirname {{ x509_cert_file }}` ; chmod 755 `dirname {{ x509_cert_file }}`" - sudo: true + sudo: true - name: "Copy the certificate to the node" copy: "src=/tmp/{{ inventory_hostname }}/{{ x509_common_name }}.crt dest=/tmp/{{ x509_common_name }}.crt force=yes" sudo: true - when: needcert + when: needcert and x509_ca_server != inventory_hostname - name: "Copy the certificate to the right location" shell: "cp -f /tmp/{{ x509_common_name }}.crt {{ x509_cert_file }}" sudo: true - when: needcert + when: needcert and x509_ca_server != inventory_hostname - name: "Copy the CA certificate to the node" copy: "src=/tmp/{{ inventory_hostname }}/ca.crt dest={{ x509_cacert_file }}" sudo: true - when: "ca_cert.stat.exists == false" + when: ca_cert.stat.exists == false and x509_ca_server != inventory_hostname - name: "Copy the key to the correct location" shell: "mkdir -p `dirname {{ x509_key_file }}` ; chmod 700 `dirname {{ x509_key_file }}` ; cp /etc/easy-rsa/2.0/keys/{{ x509_common_name }}.key {{ x509_key_file }}" sudo: true - when: needcert + when: needcert and x509_ca_server != inventory_hostname diff --git a/roles/nfs-server/defaults/main.yml b/roles/nfs-server/defaults/main.yml deleted file mode 100644 index 9561db2c..00000000 --- a/roles/nfs-server/defaults/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -mkFileSystems: - - { fstype : 'ext4', dev : '/dev/vdc', opts: '' } -configDiskDevice: true diff --git a/roles/nfs-server/tasks/main.yml b/roles/nfs-server/tasks/main.yml index 29b98a51..3e60a572 100644 --- a/roles/nfs-server/tasks/main.yml +++ b/roles/nfs-server/tasks/main.yml @@ -1,3 +1,4 @@ --- - include: mkFilesystem.yml +- include: fileSymbolicLink.yml - include: startServer.yml diff --git a/roles/nfs-server/tasks/mkFilesystem.yml b/roles/nfs-server/tasks/mkFilesystem.yml index 7dfb2c7f..ae917f23 100644 --- a/roles/nfs-server/tasks/mkFilesystem.yml +++ b/roles/nfs-server/tasks/mkFilesystem.yml @@ -1,12 +1,13 @@ --- -- - name: Format File Systems - filesystem: fstype={{ item.fstype }} dev={{ item.dev }} opts={{ item.opts }} - with_items: mkFileSystems - when: configDiskDevice -- - name: Mount file systems - mount: name=/mnt/{{ item.dev | basename }} src={{ item.dev }} fstype={{ item.fstype }} opts=loop state=mounted - with_items: mkFileSystems - when: configDiskDevice +- name: Format File Systems + filesystem: fstype={{ item.fstype }} dev={{ item.dev }} opts={{ item.opts }} + with_items: mkFileSystems + sudo: true + when: configDiskDevice + +- name: Mount device + mount: name={{ item.name }} src={{ item.dev }} fstype={{ item.fstype }} opts={{ item.mntopts }} state=mounted + with_items: mkFileSystems + sudo: true + when: configDiskDevice -- GitLab