add uptime_kuma role
This commit is contained in:
25
roles/uptime_kuma/molecule/default/converge.yml
Normal file
25
roles/uptime_kuma/molecule/default/converge.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
# kics-scan ignore
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
vars:
|
||||
test_admin_username: admin
|
||||
test_admin_password: SDjj3$k4g9dhsjd__1dj
|
||||
roles:
|
||||
- genlab.docker_ubuntu
|
||||
tasks:
|
||||
- name: "Test the role"
|
||||
tags: [role]
|
||||
ansible.builtin.include_role:
|
||||
name: "genlab.uptime_kuma"
|
||||
vars:
|
||||
kuma_api_username: "{{ test_admin_username }}"
|
||||
kuma_api_password: "{{ test_admin_password }}"
|
||||
kuma_tg_bot_token: 8161628020:AAF9doUFKSwdK4NZ8z58zVpqq0H1EdrKnI1
|
||||
kuma_tg_chat_id: -4877676122
|
||||
kuma_default_notification_names: ["Telegram alerts"]
|
||||
kuma_monitors:
|
||||
- name: "push-test"
|
||||
type: push
|
||||
interval: 30
|
||||
description: "Test push monitor"
|
||||
27
roles/uptime_kuma/molecule/default/molecule.yml
Normal file
27
roles/uptime_kuma/molecule/default/molecule.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
|
||||
driver:
|
||||
name: docker
|
||||
|
||||
platforms:
|
||||
- name: ubuntu
|
||||
image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2204}-ansible:latest
|
||||
pre_build_image: true
|
||||
command: ${MOLECULE_DOCKER_COMMAND:-""}
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||
cgroupns_mode: host
|
||||
privileged: true
|
||||
|
||||
provisioner:
|
||||
name: ansible
|
||||
|
||||
verifier:
|
||||
name: ansible
|
||||
|
||||
lint: |
|
||||
set -e
|
||||
yamllint .
|
||||
ansible-lint .
|
||||
51
roles/uptime_kuma/molecule/default/verify.yml
Normal file
51
roles/uptime_kuma/molecule/default/verify.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
# kics-scan disable=2e8d4922-8362-4606-8c14-aa10466a1ce3
|
||||
---
|
||||
- name: Verify
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
any_errors_fatal: true
|
||||
vars:
|
||||
test_admin_username: admin
|
||||
# kics-scan ignore-line
|
||||
test_admin_password: SDjj3$k4g9dhsjd__1dj
|
||||
|
||||
pre_tasks:
|
||||
- name: "Include default vars"
|
||||
ansible.builtin.include_vars:
|
||||
dir: '{{ lookup("env", "MOLECULE_PROJECT_DIRECTORY") }}/defaults/'
|
||||
extensions:
|
||||
- 'yml'
|
||||
|
||||
tasks:
|
||||
- name: "Verify uptime-kuma responds to HTTP requests"
|
||||
register: this
|
||||
until: this is ansible.builtin.success
|
||||
retries: 3
|
||||
delay: 3
|
||||
ansible.builtin.uri:
|
||||
url: "http://127.0.0.1:{{ kuma_port }}"
|
||||
method: GET
|
||||
status_code: 200
|
||||
|
||||
- name: "Get monitor information"
|
||||
register: monitors
|
||||
lucasheld.uptime_kuma.monitor_info:
|
||||
api_url: http://127.0.0.1:3001
|
||||
api_username: "{{ test_admin_username }}"
|
||||
api_password: "{{ test_admin_password }}"
|
||||
|
||||
- name: "Get test monitor information"
|
||||
failed_when: monitor_info is not defined
|
||||
ansible.builtin.set_fact:
|
||||
monitor_info: "{{ monitors.monitors | selectattr('name', 'equalto', 'push-test') | list | first }}"
|
||||
|
||||
- name: "Check test monitor configuration"
|
||||
loop:
|
||||
- {key: "type", value: "push"}
|
||||
- {key: "interval", value: 30}
|
||||
- {key: "description", value: "Test push monitor"}
|
||||
- {key: notificationIDList, value: [1]} # names are not stored, only integer IDs
|
||||
ansible.builtin.assert:
|
||||
that: "monitor_info[item.key] == item.value"
|
||||
success_msg: "Test monitor has correctly configured {{ item.key }}: {{ item.value }}"
|
||||
fail_msg: "Incorrect test monitor configuration for {{ item.key }}: expected {{ item.value }}, got: {{ monitor_info[item.key] }}"
|
||||
Reference in New Issue
Block a user