From a90af00f5a9c8077446bb122bc3a932ba3863395 Mon Sep 17 00:00:00 2001 From: dannc Date: Mon, 8 Aug 2022 10:20:43 +0700 Subject: [PATCH] add new molecule scenario, add tox config --- .gitignore | 1 + molecule/podman/Dockerfile.j2 | 38 +++++++++++++++++++++++++++++++++++ molecule/podman/converge.yml | 8 ++++++++ molecule/podman/molecule.yml | 35 ++++++++++++++++++++++++++++++++ molecule/podman/verify.yml | 9 +++++++++ tox-requirements.txt | 7 +++++++ tox.ini | 14 +++++++++++++ 7 files changed, 112 insertions(+) create mode 100644 molecule/podman/Dockerfile.j2 create mode 100644 molecule/podman/converge.yml create mode 100644 molecule/podman/molecule.yml create mode 100644 molecule/podman/verify.yml create mode 100644 tox-requirements.txt create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index a09c56d..df64d4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /.idea +/.tox diff --git a/molecule/podman/Dockerfile.j2 b/molecule/podman/Dockerfile.j2 new file mode 100644 index 0000000..e460824 --- /dev/null +++ b/molecule/podman/Dockerfile.j2 @@ -0,0 +1,38 @@ +{% if item.registry is defined %} +FROM {{ item.registry.url }}/{{ item.image }} +{% else %} +FROM {{ item.image }} +{% endif %} + +{% if item.env is defined %} +{% for var, value in item.env.items() %} +{% if value %} +ENV {{ var }} {{ value }} +{% endif %} +{% endfor %} +{% endif %} + + + +RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y apt-transport-https gnupg2 python3-minimal python3-apt man systemd systemd-sysv rsyslog sudo bash ca-certificates iproute2 && apt-get clean; \ + elif [ $(command -v yum) ]; then sed -i 's/^\(tsflags=*\)/# \1/g' /etc/yum.conf && yum makecache fast && yum upgrade -y && yum makecache fast && yum install -y sudo python3 systemd rsyslog man yum-plugin-ovl bash iproute && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; fi + +RUN set -xe \ + && groupadd -r ${ANSIBLE_USER} \ + && groupadd -r ${DEPLOY_GROUP} \ + && useradd -m -g ${ANSIBLE_USER} ${ANSIBLE_USER} \ + && usermod -aG ${DEPLOY_GROUP} ${ANSIBLE_USER} \ + && echo "%${DEPLOY_GROUP} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible + +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ + systemd-tmpfiles-setup.service ] || rm -f $i; done); \ + rm -rf /lib/systemd/system/multi-user.target.wants/*;\ + rm -rf /etc/systemd/system/*.wants/*;\ + rm -rf /lib/systemd/system/local-fs.target.wants/*; \ + rm -rf /lib/systemd/system/sockets.target.wants/*udev*; \ + rm -rf /lib/systemd/system/sockets.target.wants/*initctl*; \ + rm -rf /lib/systemd/system/basic.target.wants/*;\ + rm -rf /lib/systemd/system/anaconda.target.wants/*; + +VOLUME [ "/sys/fs/cgroup" ] +CMD ["{{ item.command | default('/usr/sbin/init') }}"] diff --git a/molecule/podman/converge.yml b/molecule/podman/converge.yml new file mode 100644 index 0000000..6d7d60c --- /dev/null +++ b/molecule/podman/converge.yml @@ -0,0 +1,8 @@ + +--- +- name: Converge + hosts: all + tasks: + - name: "Include netology_devops_vector" + ansible.builtin.include_role: + name: "dannc.netology_devops_vector" diff --git a/molecule/podman/molecule.yml b/molecule/podman/molecule.yml new file mode 100644 index 0000000..f6692ae --- /dev/null +++ b/molecule/podman/molecule.yml @@ -0,0 +1,35 @@ +--- +dependency: + name: galaxy +driver: + name: podman +platforms: + - name: centos_7 + image: docker.io/library/centos:7 + privileged: true + command: /usr/sbin/init + capabilities: + - SYS_ADMIN + tmpfs: + - /run + - /tmp + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup + env: + ANSIBLE_USER: ansible + SUDO_GROUP: wheel + DEPLOY_GROUP: deployer + container: podman +provisioner: + name: ansible +verifier: + name: ansible +scenario: + name: podman + test_sequence: + - lint + - destroy + - create + - converge + - verify + - destroy diff --git a/molecule/podman/verify.yml b/molecule/podman/verify.yml new file mode 100644 index 0000000..061f8da --- /dev/null +++ b/molecule/podman/verify.yml @@ -0,0 +1,9 @@ +--- +- name: Verify + hosts: all + gather_facts: false + tasks: + - name: ensure vector service started + ansible.builtin.service: + name: vector + state: started diff --git a/tox-requirements.txt b/tox-requirements.txt new file mode 100644 index 0000000..2711d33 --- /dev/null +++ b/tox-requirements.txt @@ -0,0 +1,7 @@ +selinux +ansible-lint==5.1.3 +yamllint==1.26.3 +lxml +molecule==3.4.0 +molecule_podman +jmespath diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..be42958 --- /dev/null +++ b/tox.ini @@ -0,0 +1,14 @@ +[tox] +minversion = 1.8 +basepython = python3.6 +envlist = py{37,39}-ansible{210,30} +skipsdist = true + +[testenv] +passenv = * +deps = + -r tox-requirements.txt + ansible210: ansible<3.0 + ansible30: ansible<3.1 +commands = + {posargs:molecule test -s podman}