ansible-cron/roles/healthcheck_script/tasks/healthcheck.yml
GregoryDosh 5f56f9342b
All checks were successful
Version Bump Galaxy.yml / Version Bump Galaxy.yml (push) Successful in 8s
Publish Collection / Publish Collection (push) Successful in 9s
Initial Dosh LLC Config 🌈🐻
2025-11-24 14:42:45 -06:00

50 lines
1.6 KiB
YAML

# SPDX-License-Identifier: AGPL-3.0-or-later
# SPDX-FileCopyrightText: 2025 Dosh LLC
---
- name: Create/Update with Healthcheck API
ansible.builtin.uri:
url: "{{ HEALTHCHECK_SITE_URL }}"
method: POST
body_format: json
status_code: [200, 201]
return_content: true
headers:
Content-Type: application/json
X-Api-Key: "{{ HEALTHCHECK_SITE_API_KEY }}"
body: |
{
"name": "{{ HEALTHCHECK_NAME }}",
"schedule": "{{ HEALTHCHECK_SCHEDULE }}",
"tz": "{{ HEALTHCHECK_SCHEDULE_TZ }}",
"grace": {{ HEALTHCHECK_GRACE }},
"tags": "{{ HEALTHCHECK_TAGS }}",
"unique": [
"name"
]
}
register: healtcheck_api_response
- name: Set Ping URL for script from JSON API response
ansible.builtin.set_fact:
_hc_ping_url: "{{ healtcheck_api_response.json.ping_url }}"
- name: template healthcheck.sh.j2 into destination
become: true
ansible.builtin.template:
src: "{{ role_path }}/templates/healthcheck.sh.j2"
dest: "{{ HEALTHCHECK_FILE_BASEPATH }}/{{ HEALTHCHECK_FILE_NAME }}"
owner: "{{ HEALTHCHECK_FILE_USER }}"
group: "{{ HEALTHCHECK_FILE_GROUP }}"
mode: "{{ HEALTHCHECK_FILE_MODE }}"
- name: create crontab entry
become: true
ansible.builtin.cron:
user: "{{ HEALTHCHECK_CRON_USER }}"
name: "{{ HEALTHCHECK_NAME }}"
minute: "{{ HEALTHCHECK_CRON_MINUTE }}"
hour: "{{ HEALTHCHECK_CRON_HOUR }}"
day: "{{ HEALTHCHECK_CRON_DAY }}"
month: "{{ HEALTHCHECK_CRON_MONTH }}"
weekday: "{{ HEALTHCHECK_CRON_WEEKDAY }}"
job: "{{ HEALTHCHECK_FILE_BASEPATH }}/{{ HEALTHCHECK_FILE_NAME }}"