diff --git a/installNFS.yml b/installNFS.yml index 0c6b1c24dfc5e9ffe8a63ccc234fd2bc475e33d0..3512ff2c8d9dc2f5be3302a3090f1427f21e40f8 100644 --- a/installNFS.yml +++ b/installNFS.yml @@ -7,7 +7,6 @@ - easy-rsa-CA - easy-rsa-certificate - OpenVPN-Server - - nfs-common - nfs-server sudo: true vars: @@ -19,7 +18,6 @@ - easy-rsa-common - easy-rsa-certificate - OpenVPN-Client - - nfs-common - syncExports - nfs-client sudo: true diff --git a/roles/easy-rsa-certificate/tasks/buildCert.yml b/roles/easy-rsa-certificate/tasks/buildCert.yml index ee22f077b354dbfd53a82106e1babdeb32e852e8..9d131671bb5109e58ef9bd9e5b8c85e21115edee 100644 --- a/roles/easy-rsa-certificate/tasks/buildCert.yml +++ b/roles/easy-rsa-certificate/tasks/buildCert.yml @@ -25,9 +25,15 @@ set_fact: needcert=True when: key.stat.exists == false -- name: "set needcert if cert is missing" +- name: "set needcert if cert is missing or of zero size" set_fact: needcert=True - when: cert.stat.exists == false + when: cert.stat.exists == false or cert.stat.size == 0 + +- name: "Delete Zero Sized Ceritificates" + remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" + delegate_to: "{{ x509_ca_server }}" + shell: rm -rf /etc/easy-rsa/2.0/keys/{{ x509_common_name }}.* + when: cert.stat.size == 0 - name: "set needcert if cert doesn't match key" set_fact: needcert=True diff --git a/roles/nfs-client/tasks/mountFileSystem.yml b/roles/nfs-client/tasks/mountFileSystem.yml index 0dd914dff6afc551bf9cf02d815382c5da7aebb3..2b54ceb2596712089f8668c9f78eda1e4047d461 100644 --- a/roles/nfs-client/tasks/mountFileSystem.yml +++ b/roles/nfs-client/tasks/mountFileSystem.yml @@ -1,8 +1,14 @@ --- -- name: "Mounting NFS mounts" - mount: "name={{ nfsClientDestDir }} src={{ nfs_server }}:{{ nfsClientSrcDir }} fstype={{ nfs_type }} opts={{ nfs_options }} state=mounted" +- + name: "Get the NFS Network" + setup: + register: nfsServer + run_once: true + delegate_to: "{{ nfs_server }}" +- + mount: "name={{ item.name }} src={{ nfsServer['ansible_facts']['ansible_'+item.interface]['ipv4']['address'] }}:{{ item.src }} fstype={{ item.fstype }} opts={{ item.opts }} state=mounted" + name: "Mounting NFS mounts" + with_items: exportList notify: "restart authentication" notify: "restart idmap" sudo: true - - diff --git a/roles/nfs-client/vars/main.yml b/roles/nfs-client/vars/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..fd7f0fcce0d2ef2b15b48ffdde2ea956e1732a82 --- /dev/null +++ b/roles/nfs-client/vars/main.yml @@ -0,0 +1,4 @@ +--- +# This is a list of exports, individual entry for each mount. +exportList: + - { name : '/mnt/test-nfs', src : '/mnt',fstype : 'nfs', opts : 'vers=3,noatime,rsize=16384,wsize=16384,hard,intr,tcp,nolock' , interface : 'tun0' } diff --git a/roles/nfs-common/tasks/main.yml b/roles/nfs-common/tasks/main.yml index 5f1757d5f6b2724de61540f7c82b23921ae46d18..559decd124f9d12dcd73ccd74bfd5400ebe5f7ae 100644 --- a/roles/nfs-common/tasks/main.yml +++ b/roles/nfs-common/tasks/main.yml @@ -2,5 +2,5 @@ - include: yumPackages.yml - name: setup idmap.conf - template: src=idmap.conf.j2 dest=/etc/idmap.conf + template: src=idmapd.conf.j2 dest=/etc/idmapd.conf sudo: true diff --git a/roles/syncExports/tasks/addExports.yml b/roles/syncExports/tasks/addExports.yml index fb08d1acbd9ca8c66ee1dea5522ea1cc1839e82c..d5bb11156e61d4b921a8420abc2f746f4d6338a7 100644 --- a/roles/syncExports/tasks/addExports.yml +++ b/roles/syncExports/tasks/addExports.yml @@ -4,3 +4,8 @@ template: src=exports.j2 dest=/etc/exports owner=root group=root mode=644 delegate_to: "{{ nfs_server }}" run_once: true +- + name : Restart the NFS Server + service: name=nfs state=restarted + delegate_to: "{{ nfs_server }}" + run_once: true diff --git a/roles/syncExports/templates/exports.j2 b/roles/syncExports/templates/exports.j2 index 2949f722693811f3a3253953917e92269f809fbb..4125a4b1c9bac3e75db69e59c320be09d2bdc7ee 100644 --- a/roles/syncExports/templates/exports.j2 +++ b/roles/syncExports/templates/exports.j2 @@ -1,4 +1,4 @@ -{% for src in srcDir %} -{{ src }} {% for node in groups['openvpn-clients'] %}{% for ip in hostvars[node]['ansible_all_ipv4_addresses'] %}{{ ip }}(rw,sync,root_squash) {% endfor %}{% endfor %} +{% for export in exportList %} +{{ export.src }} {% for group in groupList %}{% for node in groups[group.name] %}{{ hostvars[node]['ansible_'+group.interface]['ipv4']['address'] }}(rw,sync,root_squash) {% endfor %}{% endfor %} {% endfor %} diff --git a/roles/syncExports/vars/main.yml b/roles/syncExports/vars/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..785aea8a5df9cc2389a455afb2965f36c229f942 --- /dev/null +++ b/roles/syncExports/vars/main.yml @@ -0,0 +1,3 @@ +--- +groupList: + - { name : 'openvpn-clients', interface : 'tun0' } diff --git a/syncNFS.yml b/syncNFS.yml index f538c66e3b43190e071a396b38c5f72d6dbd5f71..be34ef3dda026b5bf54e90196a7e1f0dafa4683f 100644 --- a/syncNFS.yml +++ b/syncNFS.yml @@ -2,7 +2,7 @@ - hosts: openvpn-clients remote_user: ec2-user - roles: + roles: - syncExports - nfs-client sudo: true