From 4624e54217424dc9dc97f80a1388277824d72c59 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 16 Jan 2019 10:10:53 +0530 Subject: [PATCH 1/3] vdo_test : adding VDO testing files. Committer: Sheersha Jain --- .../backend_setup/molecule/vdo/Dockerfile.j2 | 14 ++++++++++ roles/backend_setup/molecule/vdo/INSTALL.rst | 26 +++++++++++++++++++ roles/backend_setup/molecule/vdo/molecule.yml | 20 ++++++++++++++ roles/backend_setup/molecule/vdo/playbook.yml | 5 ++++ .../molecule/vdo/tests/test_default.py | 14 ++++++++++ 5 files changed, 79 insertions(+) create mode 100644 roles/backend_setup/molecule/vdo/Dockerfile.j2 create mode 100644 roles/backend_setup/molecule/vdo/INSTALL.rst create mode 100644 roles/backend_setup/molecule/vdo/molecule.yml create mode 100644 roles/backend_setup/molecule/vdo/playbook.yml create mode 100644 roles/backend_setup/molecule/vdo/tests/test_default.py diff --git a/roles/backend_setup/molecule/vdo/Dockerfile.j2 b/roles/backend_setup/molecule/vdo/Dockerfile.j2 new file mode 100644 index 0000000..0a60553 --- /dev/null +++ b/roles/backend_setup/molecule/vdo/Dockerfile.j2 @@ -0,0 +1,14 @@ +# Molecule managed + +{% if item.registry is defined %} +FROM {{ item.registry.url }}/{{ item.image }} +{% else %} +FROM {{ item.image }} +{% endif %} + +RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \ + elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \ + elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ + elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \ + elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \ + elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi diff --git a/roles/backend_setup/molecule/vdo/INSTALL.rst b/roles/backend_setup/molecule/vdo/INSTALL.rst new file mode 100644 index 0000000..3904805 --- /dev/null +++ b/roles/backend_setup/molecule/vdo/INSTALL.rst @@ -0,0 +1,26 @@ +******* +Docker driver installation guide +******* + +Requirements +============ + +* General molecule dependencies (see https://molecule.readthedocs.io/en/latest/installation.html) +* Docker Engine +* docker-py +* docker + +Install +======= + +Ansible < 2.6 + +.. code-block:: bash + + $ sudo pip install docker-py + +Ansible >= 2.6 + +.. code-block:: bash + + $ sudo pip install docker diff --git a/roles/backend_setup/molecule/vdo/molecule.yml b/roles/backend_setup/molecule/vdo/molecule.yml new file mode 100644 index 0000000..4b1006c --- /dev/null +++ b/roles/backend_setup/molecule/vdo/molecule.yml @@ -0,0 +1,20 @@ +--- +dependency: + name: galaxy +driver: + name: docker +lint: + name: yamllint +platforms: + - name: instance + image: centos:7 +provisioner: + name: ansible + lint: + name: ansible-lint +scenario: + name: vdo +verifier: + name: testinfra + lint: + name: flake8 diff --git a/roles/backend_setup/molecule/vdo/playbook.yml b/roles/backend_setup/molecule/vdo/playbook.yml new file mode 100644 index 0000000..6f01e88 --- /dev/null +++ b/roles/backend_setup/molecule/vdo/playbook.yml @@ -0,0 +1,5 @@ +--- +- name: Converge + hosts: all + roles: + - role: backend_setup diff --git a/roles/backend_setup/molecule/vdo/tests/test_default.py b/roles/backend_setup/molecule/vdo/tests/test_default.py new file mode 100644 index 0000000..eedd64a --- /dev/null +++ b/roles/backend_setup/molecule/vdo/tests/test_default.py @@ -0,0 +1,14 @@ +import os + +import testinfra.utils.ansible_runner + +testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') + + +def test_hosts_file(host): + f = host.file('/etc/hosts') + + assert f.exists + assert f.user == 'root' + assert f.group == 'root' From c440c4ff51b16ec17d2354aea76512d2c8501a5f Mon Sep 17 00:00:00 2001 From: root Date: Thu, 17 Jan 2019 20:11:52 +0530 Subject: [PATCH 2/3] vdo_test : edited files Signed-off-by: Sheersha Jain Committer: Sheersha Jain --- .../backend_setup/molecule/vdo/Dockerfile.j2 | 2 + roles/backend_setup/molecule/vdo/molecule.yml | 7 ++- roles/backend_setup/molecule/vdo/playbook.yml | 44 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/roles/backend_setup/molecule/vdo/Dockerfile.j2 b/roles/backend_setup/molecule/vdo/Dockerfile.j2 index 0a60553..ddc19bd 100644 --- a/roles/backend_setup/molecule/vdo/Dockerfile.j2 +++ b/roles/backend_setup/molecule/vdo/Dockerfile.j2 @@ -12,3 +12,5 @@ RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y pyth elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \ elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \ elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi + +RUN yum install -y lvm2 util-linux libudev-devel libselinux-python gcc python-virtualenv xfsprogs policycoreutils-python PyYAML vdo kmod-kvdo diff --git a/roles/backend_setup/molecule/vdo/molecule.yml b/roles/backend_setup/molecule/vdo/molecule.yml index 4b1006c..0b690e0 100644 --- a/roles/backend_setup/molecule/vdo/molecule.yml +++ b/roles/backend_setup/molecule/vdo/molecule.yml @@ -7,7 +7,12 @@ lint: name: yamllint platforms: - name: instance - image: centos:7 + image: centos/systemd + command: /sbin/init + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + - /dev:/dev:rw + privileged: true provisioner: name: ansible lint: diff --git a/roles/backend_setup/molecule/vdo/playbook.yml b/roles/backend_setup/molecule/vdo/playbook.yml index 6f01e88..8be36de 100644 --- a/roles/backend_setup/molecule/vdo/playbook.yml +++ b/roles/backend_setup/molecule/vdo/playbook.yml @@ -3,3 +3,47 @@ hosts: all roles: - role: backend_setup + vars: + # Set a disk type. Options: JBOD, RAID6, RAID10 - Default: JBOD + gluster_infra_disktype: RAID10 + gluster_infra_dalign: 256K + gluster_infra_diskcount: 10 + gluster_infra_stripe_unit_size: 128 + gluster_infra_vdo: + - name: hc_vdo_1 + device: /dev/loop0 + - name: hc_vdo_2 + device: /dev/loop1 + gluster_infra_volume_groups: + - vgname: vg_vdb + pvname: /dev/mapper/hc_vdo_1 + - vgname: vg_vdc + pvname: /dev/mapper/hc_vdo_2 + gluster_infra_thick_lvs: + - vgname: vg_vdb + lvname: vg_vdb_thicklv1 + size: 500M + gluster_infra_thinpools: + - vgname: vg_vdb + thinpoolname: foo_thinpool + thinpoolsize: 400G + poolmetadatasize: 200G + gluster_infra_lv_logicalvols: + - vgname: vg_vdb + thinpool: foo_thinpool + lvname: vg_vdb_thinlv + lvsize: 500M + - vgname: vg_vdc + thinpool: bar_thinpool + lvname: vg_vdc_thinlv + lvsize: 500M + gluster_infra_mount_devices: + - path: /mnt/thicklv + vgname: vg_vdb + lvname: vg_vdb_thicklv1 + - path: /mnt/thinlv1 + vgname: vg_vdb + lvname: vg_vdb_thinlv + - path: /mnt/thinlv2 + vgname: vg_vdc + lvname: vg_vdc_thinlv From 374901ab7e98cf2c6e1b6621d4ea3fb7062ea7e1 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 1 Feb 2019 16:11:36 +0530 Subject: [PATCH 3/3] vdo_backend_Setup : prepare.yml file Signed-off-by: Sheersha Jain --- roles/backend_setup/molecule/vdo/playbook.yml | 18 ++++-------------- roles/backend_setup/molecule/vdo/prepare.yml | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 14 deletions(-) create mode 100644 roles/backend_setup/molecule/vdo/prepare.yml diff --git a/roles/backend_setup/molecule/vdo/playbook.yml b/roles/backend_setup/molecule/vdo/playbook.yml index 8be36de..421f2f1 100644 --- a/roles/backend_setup/molecule/vdo/playbook.yml +++ b/roles/backend_setup/molecule/vdo/playbook.yml @@ -12,31 +12,24 @@ gluster_infra_vdo: - name: hc_vdo_1 device: /dev/loop0 - - name: hc_vdo_2 - device: /dev/loop1 + slabsize: 128M gluster_infra_volume_groups: - vgname: vg_vdb pvname: /dev/mapper/hc_vdo_1 - - vgname: vg_vdc - pvname: /dev/mapper/hc_vdo_2 gluster_infra_thick_lvs: - vgname: vg_vdb lvname: vg_vdb_thicklv1 - size: 500M + size: 1G gluster_infra_thinpools: - vgname: vg_vdb thinpoolname: foo_thinpool - thinpoolsize: 400G - poolmetadatasize: 200G + thinpoolsize: 400M + poolmetadatasize: 200M gluster_infra_lv_logicalvols: - vgname: vg_vdb thinpool: foo_thinpool lvname: vg_vdb_thinlv lvsize: 500M - - vgname: vg_vdc - thinpool: bar_thinpool - lvname: vg_vdc_thinlv - lvsize: 500M gluster_infra_mount_devices: - path: /mnt/thicklv vgname: vg_vdb @@ -44,6 +37,3 @@ - path: /mnt/thinlv1 vgname: vg_vdb lvname: vg_vdb_thinlv - - path: /mnt/thinlv2 - vgname: vg_vdc - lvname: vg_vdc_thinlv diff --git a/roles/backend_setup/molecule/vdo/prepare.yml b/roles/backend_setup/molecule/vdo/prepare.yml new file mode 100644 index 0000000..69d11d5 --- /dev/null +++ b/roles/backend_setup/molecule/vdo/prepare.yml @@ -0,0 +1,18 @@ +--- +- name: Prepare + hosts: all + tasks: + - name: Allocate space to a file + command: "fallocate -l 5G /var/{{item}}" + args: + creates: "/var/{{item}}" + with_items: + - data0 + - data1 + - name: Create loopback devices + command: "losetup -f /var/{{item.1}}" + with_together: + - ['loop0', 'loop1'] + - ['data0', 'data1'] + loop_control: + pause: 5