Skip to content

Commit aa2cc9a

Browse files
authored
Update role to Leap 15.6 and podman (#7)
This commit is large, I apoligize for it but there was no clever way to split this up. It's a long overdue maintenance update. Update the molecule tasks to use podman instead of docker and update the test runs to use Leap 15.5 and Leap 15.6. Also do some cleanup of the tests and required changes to make them work again. Also remove Debian bullseye. Signed-off-by: phoenix <[email protected]>
1 parent 1e9acd5 commit aa2cc9a

20 files changed

+82
-99
lines changed

.github/workflows/CI.yml

+7-3
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,13 @@ jobs:
3232
- name: Set up Python
3333
uses: actions/setup-python@v2
3434
with:
35-
python-version: '3.x'
36-
- name: Install dependencies
37-
run: pip3 install ansible molecule[docker] docker pytest testinfra
35+
python-version: '3.11'
36+
- name: Install requirements
37+
run: sudo apt-get install podman python3-pip
38+
- name: Install molecule
39+
run: "pip3 install ansible-core molecule molecule-plugins[podman] pytest testinfra"
40+
- name: Install ansible collections
41+
run: ansible-galaxy collection install community.general
3842
- name: Run Molecule
3943
run: molecule test
4044
env:

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
Configurable ansible role for setting up a nginx webserver on a Linux server. Works with
66

7-
- openSUSE Leap 15.3
8-
- openSUSE Leap 15.4
9-
- Debian Buster
7+
- openSUSE Leap 15.5
8+
- openSUSE Leap 15.6
9+
- Debian Buster (11)
1010

1111
## Role Variables
1212
--------------

files/www/index.html

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<title>nginx</title>
5+
</head>
6+
<body>
7+
<h1>Default page for nginx</h1>
8+
<p>Congratulations! Your nginx role has been successfully installed on this server</p>
9+
</body>
10+
</html>

meta/main.yml

+2-5
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,8 @@ galaxy_info:
1414
platforms:
1515
- name: opensuse
1616
versions:
17-
- 15.3
18-
- 15.4
19-
- name: debian
20-
versions:
21-
- bullseye
17+
- 15.5
18+
- 15.6
2219

2320
galaxy_tags:
2421
- nginx

molecule/default/Dockerfile.bookworm molecule/default/Containerfile.bookworm

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/debian:bullseye
1+
FROM docker.io/debian:bookworm
22

33
# Install systemd, and development tools, clear cache and clean system
44
RUN apt-get update && apt-get install -y systemd systemd-sysv python3 curl && rm -rf /var/cache/* && systemctl mask -- dev-hugepages.mount sys-fs-fuse-connections.mount && rm -f /etc/machine-id /var/lib/dbus/machine-id
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM registry.opensuse.org/opensuse/leap:15.5
2+
3+
# Install systemd and development tools, clear cache
4+
RUN zypper in -y systemd systemd-sysvinit python311 curl && rm -rf /var/cache/*
5+
6+
# Start container with systemd
7+
ENTRYPOINT ["/usr/sbin/init"]
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM registry.opensuse.org/opensuse/leap:15.6
2+
3+
# Install systemd and development tools, clear cache
4+
RUN zypper in -y systemd systemd-sysvinit firewalld python311 curl && rm -rf /var/cache/*
5+
6+
# Start container with systemd
7+
ENTRYPOINT ["/usr/sbin/init"]

molecule/default/Dockerfile.bullseye

-9
This file was deleted.

molecule/default/Dockerfile.leap15_4

-7
This file was deleted.

molecule/default/molecule.yml

+24-22
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,44 @@
22
dependency:
33
name: galaxy
44
driver:
5-
name: docker
5+
name: podman
66
platforms:
7-
- name: leap15_4
8-
image: registry.opensuse.org/opensuse/leap:15.4
9-
dockerfile: Dockerfile.leap15_4
7+
- name: leap15_5
8+
image: registry.opensuse.org/opensuse/leap:15.5
9+
dockerfile: Containerfile.leap15_5
1010
command: ${MOLECULE_DOCKER_COMMAND:-"/usr/sbin/init"}
11-
privileged: true
12-
cgroupns: host
11+
systemd: true
1312
tmpfs:
14-
- /run
15-
- /tmp
16-
- name: bullseye
17-
image: docker.io/debian:bullseye
18-
dockerfile: Dockerfile.bullseye
19-
command: ${MOLECULE_DOCKER_COMMAND:-"/sbin/init"}
20-
privileged: true
21-
cgroupns: host
13+
"/tmp": "exec"
14+
"/run": "rw,noexec,nosuid,nodev"
15+
- name: leap15_6
16+
image: registry.opensuse.org/opensuse/leap:15.6
17+
dockerfile: Containerfile.leap15_6
18+
command: ${MOLECULE_DOCKER_COMMAND:-"/usr/sbin/init"}
19+
systemd: true
2220
tmpfs:
23-
- /run
24-
- /tmp
21+
"/tmp": "exec"
22+
"/run": "rw,noexec,nosuid,nodev"
2523
- name: bookworm
2624
image: docker.io/debian:bookworm
27-
dockerfile: Dockerfile.bookworm
25+
dockerfile: Containerfile.bookworm
2826
command: ${MOLECULE_DOCKER_COMMAND:-"/sbin/init"}
29-
privileged: true
30-
cgroupns: host
27+
systemd: true
3128
tmpfs:
32-
- /run
33-
- /tmp
29+
"/tmp": "exec"
30+
"/run": "rw,noexec,nosuid,nodev"
3431
provisioner:
3532
name: ansible
3633
inventory:
3734
host_vars:
38-
leap15_4:
35+
leap15_5:
36+
vhosts_dir: "/etc/nginx/vhosts.d"
37+
deploy_nginx_config: true
38+
ansible_python_interpreter: "/usr/bin/python3.11"
39+
leap15_6:
3940
vhosts_dir: "/etc/nginx/vhosts.d"
4041
deploy_nginx_config: true
42+
ansible_python_interpreter: "/usr/bin/python3.11"
4143
bullseye:
4244
vhosts_dir: "/etc/nginx/sites-enabled"
4345
deploy_nginx_config: false

molecule/default/tests/test_default.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
99

10-
def test_phpinfo(host):
10+
def test_index(host):
1111
cmd = host.run("curl -v http://127.0.0.1/index.html")
1212
print(cmd.stdout)
1313
assert 'HTTP/1.1 200 OK' in cmd.stderr

tasks/default-page.yml

+10-16
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,21 @@
11
---
2-
# setup a default page
2+
# setup default page
33

4-
- name: Ensure default page directory exists
5-
file:
6-
path: /srv/www/default
4+
- name: Ensure default template exists
5+
copy:
6+
src: www/
7+
dest: "{{www_dir}}/default/"
78
owner: "{{nginx_user}}"
89
group: "{{nginx_group}}"
9-
mode: 0755
10-
state: directory
11-
tags: ['nginx']
12-
- name: Ensure default page exists
13-
template:
14-
src: index.j2
15-
dest: "{{www_dir}}/default/index.html"
16-
owner: "{{nginx_user}}"
17-
group: "{{nginx_group}}"
18-
mode: 0755
10+
mode: 0644
11+
directory_mode: 0755
1912
force: false
2013
tags: ['nginx']
14+
2115
- name: Ensure default page nginx template exists
2216
template:
23-
src: default-www.j2
24-
dest: "{{vhosts_dir}}/default-www.conf"
17+
src: default.j2
18+
dest: "{{vhosts_dir}}/default.conf"
2519
owner: root
2620
group: root
2721
mode: 0644

tasks/main.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33

44
# Distribution specific vars are ALWAYS needed, so don't forget the tags here
55
- name: include distribution specific vars
6-
include_vars: "{{ansible_distribution}}_{{ansible_distribution_version}}.yml"
6+
include_vars: "{{ansible_distribution}}.yml"
77
tags: ['nginx', 'firewall', 'systemd']
88

99
- include_tasks: software.yml
10+
tags: ['nginx', 'firewall', 'systemd']
1011
- include_tasks: firewall.yml
1112
when: config_firewall == true
13+
tags: ['firewall']
1214
- include_tasks: default-page.yml
1315
when: setup_default_page == true
16+
tags: ['nginx']

tasks/software.yml

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
name: "{{ packages }}"
77
state: present
88
tags: ['nginx']
9+
910
- name: Ensure nginx service is enabled
1011
systemd:
1112
name: "{{ nginx_service }}"

templates/default-www.j2 templates/default.j2

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ server {
55
listen [::]:80;
66

77
root /srv/www/default;
8-
index index.php index.html index.htm;
8+
index index.html index.htm;
99

1010
server_name {{default_page_hostname}};
1111

templates/index.j2

-13
This file was deleted.

vars/Debian_11.yml vars/Debian.yml

File renamed without changes.

vars/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
# vars file for lemp
2+
# vars file for nginx

vars/openSUSE Leap_15.4.yml vars/openSUSE Leap.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
---
2-
# openSUSE Leap 15.4 specific variables
2+
# openSUSE Leap specific variables
33

44
## Software packages
55

6-
packages: ['nginx']
6+
packages:
7+
- nginx
78
nginx_service: "nginx"
89

910
## OS-Specific directories

vars/openSUSE Leap_15.3.yml

-14
This file was deleted.

0 commit comments

Comments
 (0)