50 lines
1.6 KiB
YAML
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 }}"
|