feat: add vagrant tests for later
All checks were successful
test / Linting (push) Successful in 9s
test / Molecule tests (default, debian12) (push) Successful in 1m13s
test / Molecule tests (default, ubuntu2204) (push) Successful in 1m15s
test / Molecule tests (with_custom_packages, debian12) (push) Successful in 1m19s
test / Molecule tests (with_custom_packages, ubuntu2204) (push) Successful in 1m16s

This commit is contained in:
Bertrand Lanson 2023-11-29 22:22:59 +01:00
parent 595a3f5821
commit 01a8315828
10 changed files with 203 additions and 0 deletions

View File

@ -0,0 +1,7 @@
---
- name: Converge
hosts: all
tasks:
- name: "Include ednxzu.manage_pipx_packages"
ansible.builtin.include_role:
name: "ednxzu.manage_pipx_packages"

View File

@ -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

View File

@ -0,0 +1,4 @@
---
# requirements file for molecule
roles:
- name: ednxzu.manage_apt_packages

View File

@ -0,0 +1,47 @@
---
- 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 ansible-lint"
block:
- name: "Get pipx installed packages"
ansible.builtin.command: "pipx list --json"
environment:
PIPX_HOME: "/opt/pipx"
changed_when: false
register: pipx_installed_packages
become: true
- name: "Set fact"
ansible.builtin.set_fact:
pipx_simple_list: "{{ pipx_simple_list | default({}) | combine({item.key: item.value.metadata.main_package.package_version}) }}"
loop: "{{ pipx_installed_packages.stdout | from_json | json_query('venvs') | dict2items }}"
- name: "Verify packages ansible-lint"
ansible.builtin.assert:
that:
- pipx_simple_list['ansible-lint'] is defined
- name: "Print installed packages"
ansible.builtin.debug:
msg: "{{ pipx_simple_list }}"

View File

@ -0,0 +1,7 @@
---
- name: Converge
hosts: all
tasks:
- name: "Include ednxzu.manage_pipx_packages"
ansible.builtin.include_role:
name: "ednxzu.manage_pipx_packages"

View File

@ -0,0 +1,14 @@
---
manage_pipx_packages_install_prereqs: true
manage_pipx_packages_home: "/opt/pipx"
manage_pipx_packages_path: "/usr/local/bin"
manage_pipx_packages_list:
- name: ansible-core
version_constraint: latest
state: present
- name: yamllint
version_constraint: latest
state: present
- name: vault-cli
version_constraint: latest
state: present

View File

@ -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

View File

@ -0,0 +1,4 @@
---
# requirements file for molecule
roles:
- name: ednxzu.manage_apt_packages

View File

@ -0,0 +1,49 @@
---
- 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, ansible-core"
block:
- name: "Get pipx installed packages"
ansible.builtin.command: "pipx list --json"
environment:
PIPX_HOME: "/opt/pipx"
changed_when: false
register: pipx_installed_packages
become: true
- name: "Set fact"
ansible.builtin.set_fact:
pipx_simple_list: "{{ pipx_simple_list | default({}) | combine({item.key: item.value.metadata.main_package.package_version}) }}"
loop: "{{ pipx_installed_packages.stdout | from_json | json_query('venvs') | dict2items }}"
- name: "Verify packages pip, vault-cli, yamllint, ansible-core"
ansible.builtin.assert:
that:
- pipx_simple_list['yamllint'] is defined
- pipx_simple_list['ansible-core'] is defined
- pipx_simple_list['vault-cli'] is defined
- name: "Print installed packages"
ansible.builtin.debug:
msg: "{{ pipx_simple_list }}"

View File

@ -14,3 +14,4 @@
loop: "{{ manage_pipx_packages_list }}"
when: manage_pipx_packages_list is defined
and manage_pipx_packages_list not in [None, '']
become: true