From c057e5f8d42998ac37ff4046a82341f8897b73bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Lundstr=C3=B6m?= <carl.lundstrom@ess.eu> Date: Wed, 9 Oct 2024 14:15:58 +0000 Subject: [PATCH] INFRA-10624 Adapt nginx role for Debian/Ubuntu --- meta/main.yml | 3 +++ molecule/default/molecule.yml | 18 ++++++++++++++++++ molecule/default/prepare.yml | 13 +++++++++++-- molecule/default/tests/test_default.py | 4 +++- tasks/main.yml | 11 ++++++----- templates/nginx.conf.j2 | 2 ++ vars/{RedHat.yml => debian.yml} | 2 +- vars/redhat.yml | 10 ++++++++++ 8 files changed, 54 insertions(+), 9 deletions(-) rename vars/{RedHat.yml => debian.yml} (92%) create mode 100644 vars/redhat.yml diff --git a/meta/main.yml b/meta/main.yml index 6656480..cd123b8 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -9,5 +9,8 @@ galaxy_info: - name: CentOS versions: - 7 + - name: Ubuntu + versions: + - jammy dependencies: - role: ics-ans-role-repository diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index aceca12..711f698 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -17,6 +17,10 @@ provisioner: nginx_vhosts: - server_name: "ics-ans-role-nginx-default" root: "/var/www/test" + ics-ans-role-nginx-ubn: + nginx_vhosts: + - server_name: "ics-ans-role-nginx-ubn" + root: "/var/www/html" scenario: name: default verifier: @@ -36,3 +40,17 @@ platforms: command: /sbin/init groups: - molecule_group + - name: ics-ans-role-nginx-ubn + image: registry.esss.lu.se/ics-docker/ubuntu-systemd:22.04 + # SYS_ADMIN required to run systemctl + capabilities: + - SYS_ADMIN + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup + tmpfs: + - /run + - /tmp + command: /sbin/init + privileged: true + groups: + - molecule_group diff --git a/molecule/default/prepare.yml b/molecule/default/prepare.yml index 5358b3b..7dfbdb2 100644 --- a/molecule/default/prepare.yml +++ b/molecule/default/prepare.yml @@ -1,5 +1,14 @@ --- - name: Prepare hosts: all - gather_facts: false - tasks: [] + gather_facts: true + + roles: + - ics-ans-role-repository + + tasks: + - name: Ensure required packages are installed. + package: + name: + - 'curl' + state: present diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py index d4c574b..86c9d25 100644 --- a/molecule/default/tests/test_default.py +++ b/molecule/default/tests/test_default.py @@ -7,7 +7,9 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( def test_directory_exists(host): - assert host.file("/var/www/test").exists + file1 = host.file("/var/www/test") + file2 = host.file("/var/www/html") + assert file1.exists or file2.exists def test_nginx_access(host): diff --git a/tasks/main.yml b/tasks/main.yml index c2d2a76..5b83975 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,17 +1,18 @@ --- # Variable setup. - name: Include OS-specific variables. - include_vars: "{{ ansible_os_family }}.yml" + include_vars: "{{ ansible_os_family | lower }}.yml" - name: Define nginx_user. set_fact: nginx_user: "{{ __nginx_user }}" - when: nginx_user is not defined + when: nginx_user is not defined and ansible_os_family | lower == 'redhat' # Setup/install tasks. -- name: Ensure nginx is installed. +- name: Ensure required packages are installed. package: - name: "{{ nginx_package_name }}" + name: + - "{{ nginx_package_name }}" state: present # Vhost configuration. @@ -38,5 +39,5 @@ file: path: "{{ item.root }}" state: directory - owner: nginx + owner: "{{ nginx_owner }}" loop: "{{ nginx_vhosts }}" diff --git a/templates/nginx.conf.j2 b/templates/nginx.conf.j2 index 7cdec60..7026112 100644 --- a/templates/nginx.conf.j2 +++ b/templates/nginx.conf.j2 @@ -1,4 +1,6 @@ +{% if nginx_user is defined %} user {{ nginx_user }}; +{% endif %} error_log {{ nginx_error_log }}; pid {{ nginx_pidfile }}; diff --git a/vars/RedHat.yml b/vars/debian.yml similarity index 92% rename from vars/RedHat.yml rename to vars/debian.yml index 0138f8d..5d3cbbf 100644 --- a/vars/RedHat.yml +++ b/vars/debian.yml @@ -6,4 +6,4 @@ nginx_mime_file_path: /etc/nginx/mime.types nginx_pidfile: /var/run/nginx.pid nginx_vhost_path: /etc/nginx/conf.d nginx_default_vhost_path: /etc/nginx/conf.d/default.conf -__nginx_user: "nginx" +nginx_owner: root diff --git a/vars/redhat.yml b/vars/redhat.yml new file mode 100644 index 0000000..e1b66d5 --- /dev/null +++ b/vars/redhat.yml @@ -0,0 +1,10 @@ +--- +root_group: root +nginx_conf_path: /etc/nginx/conf.d +nginx_conf_file_path: /etc/nginx/nginx.conf +nginx_mime_file_path: /etc/nginx/mime.types +nginx_pidfile: /var/run/nginx.pid +nginx_vhost_path: /etc/nginx/conf.d +nginx_default_vhost_path: /etc/nginx/conf.d/default.conf +nginx_owner: "{{ __nginx_user }}" +__nginx_user: "nginx" -- GitLab