mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-12-23 10:45:03 +01:00
2.3 KiB
2.3 KiB
health-nginx
Overview
health-nginx
is an Ansible role designed to send health reports for nginx configurations. It leverages Python scripting to check the status of nginx server configurations and reports back any issues. This role is especially useful for maintaining the health of nginx servers in a dynamic environment.
Requirements
- Ansible
- Python with the
requests
module - Access to the nginx configuration files
Role Variables
health_nginx_folder
: The folder where thehealth-nginx
script and related files are stored. Defaults to"{{ path_administrator_scripts }}health-nginx/"
.
Dependencies
This role depends on:
python-pip
: For installing Python packages.systemd-notifier
: For notifying systemd in case of any failures.
Example Playbook
- hosts: servers
roles:
- { role: health-nginx }
Usage
- Installation of Python Modules: The role installs the required Python
requests
module. - File and Directory Management: It creates the necessary directories and files, including the
health-nginx.py
script. - Service and Timer Templates: Templates for
health-nginx.cymais.service
andhealth-nginx.cymais.timer
are set up to automate the health checks. - Running the Health Check: The
health-nginx.py
script is executed to perform the health check. It iterates over nginx configuration files and sends a HEAD request to each domain/subdomain to verify its status. The script considers different expected status codes based on the domain or subdomain.
Handler Details
- reload health-nginx.cymais.service: Reloads the
health-nginx.cymais.service
if there are any changes to the service file. - restart health-nginx.cymais.timer: Restarts and enables the
health-nginx.cymais.timer
to schedule regular health checks.
Additional Information
- For more details on nginx configurations, visit nginx documentation.
- Learn more about Ansible's
uri_module
here.
Contributions
This role was created with the assistance of ChatGPT. The conversation can be found here and here.