From 5c1be6ca2f961fa28fb68b40d0a55404783ae72e Mon Sep 17 00:00:00 2001 From: Chris Croome <chris@webarchitects.co.uk> Date: Sun, 10 Apr 2022 11:08:52 +0100 Subject: [PATCH] Generate local_facts using a2query --- defaults/main.yml | 1 + tasks/local_facts.yml | 34 ++++++++++++++++++++++++++++++++++ tasks/main.yml | 3 +++ templates/a2query.fact.j2 | 17 +++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 tasks/local_facts.yml create mode 100644 templates/a2query.fact.j2 diff --git a/defaults/main.yml b/defaults/main.yml index e60788a..daccedb 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -28,6 +28,7 @@ apache_dhparam_path: /etc/apache2/dhparam.pem apache_dhparam_size: 2048 apache_localhost_port: 80 apache_ulimit: 65536 +apache_a2query: /usr/sbin/a2query apache_packages_present: - lynx # - libapache2-mod-fcgid diff --git a/tasks/local_facts.yml b/tasks/local_facts.yml new file mode 100644 index 0000000..83d6cd8 --- /dev/null +++ b/tasks/local_facts.yml @@ -0,0 +1,34 @@ +--- +- name: Ansible local facts + block: + + - name: Required packages present + ansible.builtin.apt: + pkg: + - jo + state: present + + - name: Ansible facts.d directory present + ansible.builtin.file: + path: /etc/ansible/facts.d + recurse: true + state: directory + mode: 0700 + owner: root + group: root + + - name: Ansible a2query local facts script present + ansible.builtin.template: + src: a2query.fact.j2 + dest: /etc/ansible/facts.d/a2query.fact + mode: 0700 + owner: root + group: root + + - name: Re-read Ansible local facts + ansible.builtin.setup: + filter: ansible_local + + tags: + - quota +... diff --git a/tasks/main.yml b/tasks/main.yml index ba12d95..b302f19 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -28,6 +28,9 @@ update_cache: false when: ( apache_packages_present is defined ) and ( apache_packages_present != [] ) + - name: Include local facts tasks + include_tasks: local_facts.yml + - name: Include Apache checks include_tasks: checks.yml diff --git a/templates/a2query.fact.j2 b/templates/a2query.fact.j2 new file mode 100644 index 0000000..6ac25bf --- /dev/null +++ b/templates/a2query.fact.j2 @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# {{ ansible_managed }} + +set -euo pipefail +IFS=$'\n' + +A2QUERY="{{ apache_a2query }}" + +if [[ -f "${A2QUERY}" ]]; then + jo state=present version=$(${A2QUERY} -v) mpm=$(${A2QUERY} -M) \ + conf_enabled=$(${A2QUERY} -c | awk '{ print $1 }' | sort | jo -a) \ + modules_enabled=$(${A2QUERY} -m | awk '{ print $1 }' | sort | jo -a) \ + sites_enabled=$(${A2QUERY} -s | awk '{ print $1 }' | sort | jo -a) +else + jo state=absent +fi -- GitLab