migrate
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
---
|
||||
- name: Docker disk usage report
|
||||
hosts: all
|
||||
become: true
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
report_root: "/opt/docker-reports"
|
||||
report_timestamp: "{{ lookup('pipe', 'date +%Y%m%d-%H%M%S') }}"
|
||||
report_file_name: "docker_disk_usage_<< inventory_hostname >>_<< report_timestamp >>.txt"
|
||||
|
||||
tasks:
|
||||
- name: Ensure report root exists
|
||||
ansible.builtin.file:
|
||||
path: "<< report_root >>"
|
||||
state: directory
|
||||
mode: "0750"
|
||||
|
||||
- name: Collect docker system df summary
|
||||
ansible.builtin.command: docker system df
|
||||
register: docker_df_summary
|
||||
changed_when: false
|
||||
|
||||
- name: Collect docker system df verbose report
|
||||
ansible.builtin.command: docker system df -v
|
||||
register: docker_df_verbose
|
||||
changed_when: false
|
||||
when: include_verbose_report | default(false)
|
||||
|
||||
- name: Build report body
|
||||
ansible.builtin.set_fact:
|
||||
docker_disk_usage_report_body: |
|
||||
Host: << inventory_hostname >>
|
||||
Timestamp: {{ lookup('pipe', 'date -u +%Y-%m-%dT%H:%M:%SZ') }}
|
||||
|
||||
Docker system df:
|
||||
<< docker_df_summary.stdout >>
|
||||
<%- if include_verbose_report | default(false) %>
|
||||
|
||||
Docker system df -v:
|
||||
<< docker_df_verbose.stdout >>
|
||||
<%- endif %>
|
||||
|
||||
- name: Save local disk usage report
|
||||
ansible.builtin.copy:
|
||||
dest: "<< report_root >>/<< report_file_name >>"
|
||||
content: "<< docker_disk_usage_report_body >>"
|
||||
mode: "0640"
|
||||
|
||||
- name: Build Discord report content
|
||||
ansible.builtin.set_fact:
|
||||
discord_disk_report_content: |
|
||||
<< discord_message_prefix | default('Docker Disk Usage Report') >>
|
||||
```text
|
||||
<< docker_disk_usage_report_body | truncate(1700, true, '...') >>
|
||||
```
|
||||
when:
|
||||
- discord_enabled | default(false)
|
||||
- (discord_webhook_url | default('')) | length > 0
|
||||
|
||||
- name: Send disk usage report to Discord webhook
|
||||
ansible.builtin.uri:
|
||||
url: "<< discord_webhook_url | default('') >>"
|
||||
method: POST
|
||||
body_format: json
|
||||
body:
|
||||
username: "<< discord_username | default('Docker Reporter') >>"
|
||||
content: "<< discord_disk_report_content >>"
|
||||
status_code: 204
|
||||
when:
|
||||
- discord_enabled | default(false)
|
||||
- (discord_webhook_url | default('')) | length > 0
|
||||
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"slug": "docker-disk-usage-report",
|
||||
"kind": "ansible",
|
||||
"metadata": {
|
||||
"name": "Docker Disk Usage Report",
|
||||
"description": "Generates a Docker disk usage report on target hosts and optionally sends a summary to Discord via webhook.",
|
||||
"tags": [
|
||||
"docker",
|
||||
"report",
|
||||
"disk",
|
||||
"monitoring"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "mdi",
|
||||
"id": "chart-box",
|
||||
"color": "blue"
|
||||
},
|
||||
"draft": true,
|
||||
"version": {
|
||||
"name": "1",
|
||||
"source_dep_name": "manual/docker-disk-usage-report"
|
||||
}
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"title": "Report",
|
||||
"name": "report",
|
||||
"items": [
|
||||
{
|
||||
"name": "include_verbose_report",
|
||||
"type": "bool",
|
||||
"title": "Verbose Report",
|
||||
"required": false,
|
||||
"default": false,
|
||||
"description": "Include docker system df -v output in local report"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Discord Webhook",
|
||||
"name": "discord",
|
||||
"items": [
|
||||
{
|
||||
"name": "discord_enabled",
|
||||
"type": "bool",
|
||||
"title": "Discord",
|
||||
"required": false,
|
||||
"default": false,
|
||||
"description": "Send a short report to Discord webhook"
|
||||
},
|
||||
{
|
||||
"name": "discord_webhook_url",
|
||||
"type": "str",
|
||||
"title": "Discord Webhook URL",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "discord_username",
|
||||
"type": "str",
|
||||
"title": "Discord Username",
|
||||
"required": false,
|
||||
"default": "Docker Reporter",
|
||||
"description": "Sender name for webhook message",
|
||||
"config": {
|
||||
"placeholder": "Docker Reporter"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "discord_message_prefix",
|
||||
"type": "str",
|
||||
"title": "Discord Message Prefix",
|
||||
"required": false,
|
||||
"default": "Docker Disk Usage Report",
|
||||
"description": "Prefix line sent before report content",
|
||||
"config": {
|
||||
"placeholder": "Docker Disk Usage Report"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Internal",
|
||||
"name": "internal",
|
||||
"items": [
|
||||
{
|
||||
"name": "docker_df_verbose",
|
||||
"type": "str",
|
||||
"title": "Docker DF Verbose",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "report_file_name",
|
||||
"type": "str",
|
||||
"title": "Report File Name",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "report_root",
|
||||
"type": "str",
|
||||
"title": "Report Root",
|
||||
"required": false,
|
||||
"default": "/reports",
|
||||
"config": {
|
||||
"placeholder": "/reports"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "docker_disk_usage_report_body",
|
||||
"type": "str",
|
||||
"title": "Report Body",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "discord_disk_report_content",
|
||||
"type": "str",
|
||||
"title": "Discord Report",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "inventory_hostname",
|
||||
"type": "str",
|
||||
"title": "Inventory Hostname",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "report_timestamp",
|
||||
"type": "str",
|
||||
"title": "Report Timestamp",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "docker_df_summary",
|
||||
"type": "str",
|
||||
"title": "Docker DF Summary",
|
||||
"required": false,
|
||||
"default": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user