diff options
-rw-r--r-- | ansible/roles/nfs/defaults/main.yml | 11 | ||||
-rw-r--r-- | ansible/roles/nfs/molecule/default/molecule.yml | 2 | ||||
-rw-r--r-- | ansible/roles/nfs/molecule/default/tests/test_default.py | 15 | ||||
-rw-r--r-- | ansible/roles/nfs/molecule/default/tests/test_nfs-server.py | 7 | ||||
-rw-r--r-- | ansible/roles/nfs/molecule/ubuntu/molecule.yml | 54 | ||||
-rw-r--r-- | ansible/roles/nfs/tasks/main.yml | 3 |
6 files changed, 84 insertions, 8 deletions
diff --git a/ansible/roles/nfs/defaults/main.yml b/ansible/roles/nfs/defaults/main.yml index bce98da6..adeaf919 100644 --- a/ansible/roles/nfs/defaults/main.yml +++ b/ansible/roles/nfs/defaults/main.yml @@ -2,7 +2,18 @@ nfs_packages: RedHat: - nfs-utils + Debian: + - nfs-common + - nfs-kernel-server nfs_services: RedHat: - rpcbind - nfs-server + Debian: + - rpcbind + - nfs-kernel-server +nfs_destination: + RedHat: + - "/etc/exports.d/dockerdata-nfs.exports" + Debian: + - "/etc/exports" diff --git a/ansible/roles/nfs/molecule/default/molecule.yml b/ansible/roles/nfs/molecule/default/molecule.yml index a8ca6a30..9af32360 100644 --- a/ansible/roles/nfs/molecule/default/molecule.yml +++ b/ansible/roles/nfs/molecule/default/molecule.yml @@ -43,6 +43,8 @@ provisioner: host_vars: host_vars lint: name: ansible-lint +scenario: + name: default verifier: name: testinfra lint: diff --git a/ansible/roles/nfs/molecule/default/tests/test_default.py b/ansible/roles/nfs/molecule/default/tests/test_default.py index 48139898..dc808753 100644 --- a/ansible/roles/nfs/molecule/default/tests/test_default.py +++ b/ansible/roles/nfs/molecule/default/tests/test_default.py @@ -7,10 +7,13 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') -@pytest.mark.parametrize('pkg', [ - 'nfs-utils' +@pytest.mark.parametrize('distro,pkg', [ + ('centos', 'nfs-utils'), + ('ubuntu', 'nfs-common'), + ('ubuntu', 'nfs-kernel-server') ]) -def test_pkg(host, pkg): - package = host.package(pkg) - - assert package.is_installed +def test_pkg(host, distro, pkg): + os = host.system_info.distribution + if distro == os: + package = host.package(pkg) + assert package.is_installed diff --git a/ansible/roles/nfs/molecule/default/tests/test_nfs-server.py b/ansible/roles/nfs/molecule/default/tests/test_nfs-server.py index 88ba0a61..e35e21c3 100644 --- a/ansible/roles/nfs/molecule/default/tests/test_nfs-server.py +++ b/ansible/roles/nfs/molecule/default/tests/test_nfs-server.py @@ -20,9 +20,14 @@ def test_svc(host, svc): def test_exports(host): + os = host.system_info.distribution + if (os == "centos"): + host_file = "/etc/exports.d/dockerdata-nfs.exports" + elif (os == "ubuntu"): + host_file = "/etc/exports" node2_ip = testinfra.get_host("docker://kubernetes-node-2").interface( "eth0").addresses[0] - f = host.file("/etc/exports.d/dockerdata-nfs.exports") + f = host.file(host_file) assert f.exists assert f.content_string == \ """/dockerdata-nfs """ + node2_ip + """(rw,sync,no_root_squash,no_subtree_check)""" # noqa: E501 diff --git a/ansible/roles/nfs/molecule/ubuntu/molecule.yml b/ansible/roles/nfs/molecule/ubuntu/molecule.yml new file mode 100644 index 00000000..3fe393fc --- /dev/null +++ b/ansible/roles/nfs/molecule/ubuntu/molecule.yml @@ -0,0 +1,54 @@ +--- +dependency: + name: galaxy +driver: + name: docker +lint: + name: yamllint +platforms: + - name: kubernetes-node-1 + image: molecule-${PREBUILD_PLATFORM_DISTRO:-ubuntu}:${PREBUILD_DISTRO_VERSION:-18.04} + pre_build_image: true + privileged: true + command: ${MOLECULE_DOCKER_COMMAND:-""} + groups: + - kubernetes + - nfs-server + purge_networks: true + networks: + - name: nfs-net + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + - /dockerdata-nfs + - name: kubernetes-node-2 + image: molecule-${PREBUILD_PLATFORM_DISTRO:-ubuntu}:${PREBUILD_DISTRO_VERSION:-18.04} + pre_build_image: true + privileged: true + command: ${MOLECULE_DOCKER_COMMAND:-""} + groups: + - kubernetes + purge_networks: true + networks: + - name: nfs-net + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro +provisioner: + name: ansible + env: + ANSIBLE_ROLES_PATH: "../../../../test/roles" + inventory: + links: + group_vars: ../../../../group_vars + host_vars: ../default/host_vars + lint: + name: ansible-lint + playbooks: + prepare: ../default/prepare.yml + converge: ../default/playbook.yml +scenario: + name: ubuntu +verifier: + name: testinfra + lint: + name: flake8 + directory: ../default/tests diff --git a/ansible/roles/nfs/tasks/main.yml b/ansible/roles/nfs/tasks/main.yml index 1d848876..cc5290db 100644 --- a/ansible/roles/nfs/tasks/main.yml +++ b/ansible/roles/nfs/tasks/main.yml @@ -23,7 +23,8 @@ - name: Add hosts to exports template: src: exports.j2 - dest: /etc/exports.d/dockerdata-nfs.exports + dest: "{{ item }}" + loop: "{{ nfs_destination[ansible_os_family] }}" notify: - reload nfs when: |