From ad106d864878ab32e9f27c55726b2dd5e70299de Mon Sep 17 00:00:00 2001 From: Bertrand Lanson Date: Wed, 29 Nov 2023 19:33:18 +0100 Subject: [PATCH] feat: add vagrant tests for later) --- molecule/default_vagrant/converge.yml | 7 +++ molecule/default_vagrant/molecule.yml | 35 +++++++++++++ molecule/default_vagrant/requirements.yml | 4 ++ molecule/default_vagrant/verify.yml | 50 +++++++++++++++++++ .../with_custom_packages_vagrant/converge.yml | 7 +++ .../group_vars/all.yml | 13 +++++ .../with_custom_packages_vagrant/molecule.yml | 35 +++++++++++++ .../requirements.yml | 4 ++ .../with_custom_packages_vagrant/verify.yml | 50 +++++++++++++++++++ 9 files changed, 205 insertions(+) create mode 100644 molecule/default_vagrant/converge.yml create mode 100644 molecule/default_vagrant/molecule.yml create mode 100644 molecule/default_vagrant/requirements.yml create mode 100644 molecule/default_vagrant/verify.yml create mode 100644 molecule/with_custom_packages_vagrant/converge.yml create mode 100644 molecule/with_custom_packages_vagrant/group_vars/all.yml create mode 100644 molecule/with_custom_packages_vagrant/molecule.yml create mode 100644 molecule/with_custom_packages_vagrant/requirements.yml create mode 100644 molecule/with_custom_packages_vagrant/verify.yml diff --git a/molecule/default_vagrant/converge.yml b/molecule/default_vagrant/converge.yml new file mode 100644 index 0000000..7ac62d7 --- /dev/null +++ b/molecule/default_vagrant/converge.yml @@ -0,0 +1,7 @@ +--- +- name: Converge + hosts: all + tasks: + - name: "Include ednxzu.manage_pip_packages" + ansible.builtin.include_role: + name: "ednxzu.manage_pip_packages" diff --git a/molecule/default_vagrant/molecule.yml b/molecule/default_vagrant/molecule.yml new file mode 100644 index 0000000..2b02360 --- /dev/null +++ b/molecule/default_vagrant/molecule.yml @@ -0,0 +1,35 @@ +--- +dependency: + name: galaxy + options: + requirements-file: ./requirements.yml +driver: + name: vagrant + provider: + name: libvirt +platforms: + - name: instance + box: generic/${MOLECULE_TEST_OS} + cpus: 4 + memory: 4096 +provisioner: + name: ansible + config_options: + defaults: + remote_tmp: /tmp/.ansible +verifier: + name: ansible +scenario: + name: default_vagrant + test_sequence: + - dependency + - cleanup + - destroy + - syntax + - create + - prepare + - converge + - idempotence + - verify + - cleanup + - destroy diff --git a/molecule/default_vagrant/requirements.yml b/molecule/default_vagrant/requirements.yml new file mode 100644 index 0000000..ca250b7 --- /dev/null +++ b/molecule/default_vagrant/requirements.yml @@ -0,0 +1,4 @@ +--- +# requirements file for molecule +roles: + - name: ednxzu.manage_apt_packages diff --git a/molecule/default_vagrant/verify.yml b/molecule/default_vagrant/verify.yml new file mode 100644 index 0000000..372229e --- /dev/null +++ b/molecule/default_vagrant/verify.yml @@ -0,0 +1,50 @@ +--- +- name: Verify + hosts: all + gather_facts: true + tasks: + - name: "Test: file /etc/hosts" + block: + - name: "Stat file /etc/hosts" + ansible.builtin.stat: + path: "/etc/hosts" + register: stat_etc_hosts + + - name: "Verify file /etc/hosts" + vars: + etc_hosts_group: + ubuntu: "adm" + debian: "root" + ansible.builtin.assert: + that: + - stat_etc_hosts.stat.exists + - stat_etc_hosts.stat.isreg + - stat_etc_hosts.stat.pw_name == 'root' + - stat_etc_hosts.stat.gr_name == etc_hosts_group[(ansible_distribution|lower)] + + - name: "Test: packages pip, vault-cli, yamllint, docker" + block: + - name: "Get pip3 up-to-date packages" + ansible.builtin.command: "pip3 list -u --format=json" + changed_when: false + register: pip_updated_packages + + - name: "Get pip3 out-of-date packages" + ansible.builtin.command: "pip3 list -o --format=json" + changed_when: false + register: pip_outdated_packages + + - name: "Verify packages pip, vault-cli, yamllint, docker" + vars: + pip_up_to_date_list: "{{ pip_updated_packages.stdout | from_json | json_query('[].name') }}" + pip_out_of_date_list: "{{ pip_outdated_packages.stdout | from_json | json_query('[].name') }}" + ansible.builtin.assert: + that: + - "'pip' in pip_up_to_date_list" + - "'pip' not in pip_out_of_date_list" + - "'vault-cli' not in pip_up_to_date_list" + - "'vault-cli' not in pip_out_of_date_list" + - "'yamllint' not in pip_up_to_date_list" + - "'yamllint' not in pip_out_of_date_list" + - "'docker' not in pip_up_to_date_list" + - "'docker' not in pip_out_of_date_list" diff --git a/molecule/with_custom_packages_vagrant/converge.yml b/molecule/with_custom_packages_vagrant/converge.yml new file mode 100644 index 0000000..7ac62d7 --- /dev/null +++ b/molecule/with_custom_packages_vagrant/converge.yml @@ -0,0 +1,7 @@ +--- +- name: Converge + hosts: all + tasks: + - name: "Include ednxzu.manage_pip_packages" + ansible.builtin.include_role: + name: "ednxzu.manage_pip_packages" diff --git a/molecule/with_custom_packages_vagrant/group_vars/all.yml b/molecule/with_custom_packages_vagrant/group_vars/all.yml new file mode 100644 index 0000000..65ab86b --- /dev/null +++ b/molecule/with_custom_packages_vagrant/group_vars/all.yml @@ -0,0 +1,13 @@ +--- +manage_pip_packages_install_prereqs: true +manage_pip_packages_list: + - name: docker + version_constraint: latest + state: present + - name: yamllint + version_constraint: '==1.24' + state: present + - name: vault-cli + version_constraint: '<3.1.0' + state: present +manage_pip_packages_allow_break_system_packages: false diff --git a/molecule/with_custom_packages_vagrant/molecule.yml b/molecule/with_custom_packages_vagrant/molecule.yml new file mode 100644 index 0000000..c5529df --- /dev/null +++ b/molecule/with_custom_packages_vagrant/molecule.yml @@ -0,0 +1,35 @@ +--- +dependency: + name: galaxy + options: + requirements-file: ./requirements.yml +driver: + name: vagrant + provider: + name: libvirt +platforms: + - name: instance + box: generic/${MOLECULE_TEST_OS} + cpus: 4 + memory: 4096 +provisioner: + name: ansible + config_options: + defaults: + remote_tmp: /tmp/.ansible +verifier: + name: ansible +scenario: + name: with_custom_packages_vagrant + test_sequence: + - dependency + - cleanup + - destroy + - syntax + - create + - prepare + - converge + - idempotence + - verify + - cleanup + - destroy diff --git a/molecule/with_custom_packages_vagrant/requirements.yml b/molecule/with_custom_packages_vagrant/requirements.yml new file mode 100644 index 0000000..ca250b7 --- /dev/null +++ b/molecule/with_custom_packages_vagrant/requirements.yml @@ -0,0 +1,4 @@ +--- +# requirements file for molecule +roles: + - name: ednxzu.manage_apt_packages diff --git a/molecule/with_custom_packages_vagrant/verify.yml b/molecule/with_custom_packages_vagrant/verify.yml new file mode 100644 index 0000000..fbbcbd3 --- /dev/null +++ b/molecule/with_custom_packages_vagrant/verify.yml @@ -0,0 +1,50 @@ +--- +- name: Verify + hosts: all + gather_facts: true + tasks: + - name: "Test: file /etc/hosts" + block: + - name: "Stat file /etc/hosts" + ansible.builtin.stat: + path: "/etc/hosts" + register: stat_etc_hosts + + - name: "Verify file /etc/hosts" + vars: + etc_hosts_group: + ubuntu: "adm" + debian: "root" + ansible.builtin.assert: + that: + - stat_etc_hosts.stat.exists + - stat_etc_hosts.stat.isreg + - stat_etc_hosts.stat.pw_name == 'root' + - stat_etc_hosts.stat.gr_name == etc_hosts_group[(ansible_distribution|lower)] + + - name: "Test: packages pip, vault-cli, yamllint, docker" + block: + - name: "Get pip3 up-to-date packages" + ansible.builtin.command: "pip3 list -u --format=json" + changed_when: false + register: pip_updated_packages + + - name: "Get pip3 out-of-date packages" + ansible.builtin.command: "pip3 list -o --format=json" + changed_when: false + register: pip_outdated_packages + + - name: "Verify packages pip, vault-cli, yamllint, docker" + vars: + pip_up_to_date_list: "{{ pip_updated_packages.stdout | from_json | json_query('[].name') }}" + pip_out_of_date_list: "{{ pip_outdated_packages.stdout | from_json | json_query('[].name') }}" + ansible.builtin.assert: + that: + - "'pip' in pip_up_to_date_list" + - "'pip' not in pip_out_of_date_list" + - "'vault-cli' not in pip_up_to_date_list" + - "'vault-cli' in pip_out_of_date_list" + - "'yamllint' not in pip_up_to_date_list" + - "'yamllint' in pip_out_of_date_list" + - "'docker' in pip_up_to_date_list" + - "'docker' not in pip_out_of_date_list"