commit ed67e43dd47660e98dc9f5fe3cb54a6fda3d7add Author: Michael Schlapa Date: Mon May 19 13:22:38 2025 +0200 Initial diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a56ea9 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# Molecule Podman example + +Based on [Redhat example (Blog post)](https://redhatnordicssa.github.io/test-ansible-role-molecule-podman) and [Redhat example (Repo)](https://github.com/RedHatNordicsSA/molecule-podman-blog). + +## Installation + +``` +dnf install podman git python3 +python3 -m venv venv +source venv/bin/activate +pip install molecule molecule-podman +git clone $URL_of_this_repo +``` + +# Setup Podman + +> Only needed if not done before! + +Setup UID and GID translation between container and host. + +``` +echo ":200000:65536" >> /etc/subuid +echo ":200000:65536" >> /etc/subgid +``` + +# Run test + +``` +molecule test # to run full test suite +molecule converge # to run Playbook under test once and w/o destroying the container +molecule login # Start and login to container +``` diff --git a/install.yml b/install.yml new file mode 100644 index 0000000..cb315fc --- /dev/null +++ b/install.yml @@ -0,0 +1,14 @@ +--- + +- hosts: all + + tasks: + - name: Install nginx + ansible.builtin.dnf: + name: nginx + + - name: Start nginx + ansible.builtin.systemd: + name: nginx + state: started + enabled: true diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml new file mode 100644 index 0000000..4295bb7 --- /dev/null +++ b/molecule/default/converge.yml @@ -0,0 +1,4 @@ +--- + +- name: Import Playbook under test + ansible.builtin.import_playbook: ../../install.yml diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml new file mode 100644 index 0000000..0eb9e9a --- /dev/null +++ b/molecule/default/molecule.yml @@ -0,0 +1,12 @@ +--- + +driver: + name: podman +platforms: + - name: instance + image: ubi9/ubi-init + pre_build_image: true + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + privileged: true + command: "/usr/sbin/init" diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml new file mode 100644 index 0000000..e96b2cf --- /dev/null +++ b/molecule/default/verify.yml @@ -0,0 +1,37 @@ +--- + +- name: Verfiy nginx + hosts: all + + tasks: + - name: check if vsftpd is installed + ansible.builtin.dnf: + name: nginx + state: present + check_mode: yes + register: pkg + + - name: fail if package was not installed + ansible.builtin.assert: + that: + - pkg.changed is false + fail_msg: "Package vsftpd was not installed!" + success_msg: "Package vsftpd was installed." + + - name: check service is stopped + ansible.builtin.systemd: + name: nginx + enabled: true + state: started + check_mode: yes + register: svc + + - name: fail if service was activated + assert: + that: + - svc.changed is false + success_msg: "Service vsftpd was disabled." + fail_msg: "Service vsftpd was activated!" + + - name: test result + debug: msg="FTP daemon was installed and disabled. Test OK"