Compare commits

..

52 Commits

Author SHA1 Message Date
b45f8cf5dd Add role for ufw 2024-04-14 18:32:50 -05:00
7caf443b35 Add draft roles for cloudflared and tailscale 2024-04-14 18:31:59 -05:00
db1ee687a7 Add vault for monitor_servers 2024-04-14 18:31:11 -05:00
e7c9f4fa05 docker: add handlers 2024-04-14 18:30:40 -05:00
22ab3586a1 lego: add configuration 2024-04-14 18:30:16 -05:00
f4585ad0ee promtail: add configuration 2024-04-14 18:30:05 -05:00
e3549cf829 mimir: add configuration 2024-04-14 18:30:05 -05:00
04948c36b9 loki: add configuration 2024-04-14 18:30:05 -05:00
6ee8d3372a alertmanager: configure receiver secrets 2024-04-14 18:30:05 -05:00
00ce1a8a26 Tweak rsyslog queuing 2024-04-14 18:10:35 -05:00
78835bce49 Change DNS servers 2024-04-14 18:09:13 -05:00
20db9d5088 wireguard: Use different subnet 2024-04-14 18:09:13 -05:00
55c45c6f3d Replace certbot with lego 2024-04-14 18:09:13 -05:00
cb60bcb5f8 nginx: refactor role 2024-04-14 17:53:26 -05:00
7ca9b6dc8c wireguard: support 'Table' and 'PersistentKeepalive' 2024-04-14 17:52:35 -05:00
0addb1e6a0 unattended-updates: enable normal updates 2024-04-14 17:52:03 -05:00
9acc10b73f rsyslog: use variables for paths 2024-04-14 17:51:22 -05:00
01314cb137 prometheus: enable file discovery 2024-04-14 17:50:31 -05:00
1982782284 minecraft: update minecraft server 2024-04-14 17:49:36 -05:00
05b1e8da07 loki: flesh out role 2024-04-14 17:48:46 -05:00
45ddb507ef mtail: remove dead code 2024-04-14 17:47:55 -05:00
1cce3fc642 nftables: add more rules 2024-04-14 17:46:42 -05:00
7168a89e53 Fix typos in Promtail systemd unit 2024-04-14 17:45:59 -05:00
4e338917dc iptables: open ports for promtail syslog 2024-04-14 17:45:16 -05:00
f79cdc1e59 Update http2 syntax 2024-04-14 17:34:54 -05:00
4a7f888994 Refactor certbot role 2024-04-14 17:29:18 -05:00
8b24c9fad9 Fix pixz package name 2024-04-14 17:28:36 -05:00
77ecf4ccbe Use tags 2024-04-14 17:26:32 -05:00
de53d99b5e Manager restic updates 2024-04-14 17:25:38 -05:00
907d7a9c63 Add role for snmp_exporter 2024-04-14 17:23:51 -05:00
6108475fbd Refactor netplan 2024-04-14 17:23:27 -05:00
db8c7f4f63 Secrets 2024-04-14 17:19:01 -05:00
02c1899ee0 Remove unused host_vars 2024-04-14 17:16:43 -05:00
b02da06c97 Add roles for lego, logcli, mimir, process_exporter, smokeping_prober, and vector 2024-04-14 17:13:06 -05:00
ce692e4560 Add nftables role 2022-09-04 08:59:28 -05:00
42ba49c865 common: refactor 2022-09-01 17:12:52 -05:00
4b581b8a78 restic: remove tidy job 2022-09-01 16:42:00 -05:00
132b6d800a Remove Python 2 packages 2022-09-01 16:41:35 -05:00
2483542b98 prometheus: scrape Grafana stats 2022-09-01 16:40:12 -05:00
dae13299e0 Remove DNS zones 2022-09-01 16:39:51 -05:00
36a2d3542c Remove name server roles 2022-09-01 16:39:28 -05:00
3fc613fe2b grafana: add default.yaml 2022-09-01 16:37:15 -05:00
b685c1027e Add test drone.yml
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is failing
2022-09-01 09:16:08 -05:00
98b34e6c5c grafana: add new Prometheus based system dashboard 2022-08-31 21:09:23 -05:00
d5ec01ecba grafana: sync dashboards from the controller 2022-08-31 20:50:09 -05:00
2fc6ae1073 grafana: add some path variables 2022-08-31 20:49:50 -05:00
c512dc2b0c grafana: remove old InfluxDB based dashboards 2022-08-31 20:43:23 -05:00
f234071bbf grafana: restart when anything is deployed to a provisioning path 2022-08-31 16:20:55 -05:00
85e4fc9056 grafana: Move my configuration out of the defaults 2022-08-31 16:20:23 -05:00
28216483dc Fix yamllint error 2022-08-31 13:32:20 -05:00
79699ed2c6 yamllint: disable line-length check 2022-08-31 13:31:19 -05:00
7789ad779e Fix a lot of yamllint errors 2022-08-31 13:30:59 -05:00
180 changed files with 33059 additions and 25471 deletions

12
.drone.yml Normal file
View File

@ -0,0 +1,12 @@
---
kind: pipeline
name: default
steps:
- name: lint
image: python
commands:
- pip install yamllint
- pip install ansible-lint
- yamllint .
- ansible-lint .

5
.yamllint Normal file
View File

@ -0,0 +1,5 @@
---
extends: default
rules:
line-length: disable

View File

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,567 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 5,
"iteration": 1575268472749,
"links": [],
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"alias": "$col",
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"measurement": "nginx",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"requests"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"1s"
],
"type": "non_negative_derivative"
},
{
"params": [
"requests"
],
"type": "alias"
}
]
],
"tags": [
{
"key": "host",
"operator": "=~",
"value": "/^$host$/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Requests",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "reqps",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 0
},
"hiddenSeries": false,
"id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"targets": [
{
"alias": "$col",
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"measurement": "nginx",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"accepts"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"1s"
],
"type": "non_negative_derivative"
},
{
"params": [
"accepts"
],
"type": "alias"
}
],
[
{
"params": [
"active"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"1s"
],
"type": "non_negative_derivative"
},
{
"params": [
"active"
],
"type": "alias"
}
],
[
{
"params": [
"handled"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"1s"
],
"type": "non_negative_derivative"
},
{
"params": [
"handled"
],
"type": "alias"
}
]
],
"tags": [
{
"key": "host",
"operator": "=~",
"value": "/^$host$/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Client Connections",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 9
},
"hiddenSeries": false,
"id": 3,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"targets": [
{
"alias": "$col",
"groupBy": [
{
"params": [
"10s"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"measurement": "nginx",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"reading"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"reading"
],
"type": "alias"
}
],
[
{
"params": [
"writing"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"writing"
],
"type": "alias"
}
],
[
{
"params": [
"waiting"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"waiting"
],
"type": "alias"
}
]
],
"tags": [
{
"key": "host",
"operator": "=~",
"value": "/^$host$/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Client State",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "5s",
"schemaVersion": 21,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": {
"text": "ping.kill0.net",
"value": "ping.kill0.net"
},
"datasource": "influxdb",
"definition": "SHOW TAG VALUES WITH KEY=host",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "host",
"options": [],
"query": "SHOW TAG VALUES WITH KEY=host",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-5m",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
]
},
"timezone": "",
"title": "nginx",
"uid": "bwcmJgOZz",
"version": 4
}

View File

@ -1,232 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 9,
"iteration": 1575268700708,
"links": [],
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"measurement": "procstat",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"memory_usage"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "host",
"operator": "=~",
"value": "/^$host$/"
},
{
"condition": "AND",
"key": "systemd_unit",
"operator": "=~",
"value": "/^$systemd_unit$/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Panel Title",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"schemaVersion": 21,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": {
"text": "mine0.kill0.net",
"value": "mine0.kill0.net"
},
"datasource": "influxdb",
"definition": "SHOW TAG VALUES WITH KEY=host",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "host",
"options": [],
"query": "SHOW TAG VALUES WITH KEY=host",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"text": "minecraft.service",
"value": "minecraft.service"
},
"datasource": "influxdb",
"definition": "SHOW TAG VALUES WITH KEY=systemd_unit",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "systemd_unit",
"options": [],
"query": "SHOW TAG VALUES WITH KEY=systemd_unit",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
]
},
"timezone": "",
"title": "Processes",
"uid": "6I0r6q2Zz",
"version": 8
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +0,0 @@
; cavi.cc [320470]
$TTL 86400
@ IN SOA ns1.linode.com. hostmaster.kill0.net. 2022020501 14400 14400 1209600 86400
@ NS ns1.linode.com.
@ NS ns2.linode.com.
@ NS ns3.linode.com.
@ NS ns4.linode.com.
@ NS ns5.linode.com.
@ MX 10 in1-smtp.messagingengine.com.
@ MX 20 in2-smtp.messagingengine.com.
@ TXT "v=spf1 include:spf.messagingengine.com -all"
default._domainkey TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDY8s2MeBFqZIwItrdDo4J0N0AIoNtf7Ui6jtyIqqs2if2D1h3Ee37McBxZhJ79TX3TZyXci/G0+DZm/F9w2Ye703JNmgjSo6V1fx3MMZicohnTwYs3yQScdWNjJ8ML6SEJtveIjIws2CQ4/Y8J3f6ilWh2OAUrRIAg2u/BV5odgwIDAQAB"
mesmtp._domainkey TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUDHvhiTIEgdxTfvcrL1znWbMBWC10L8enkWJmatLs1vGkEQkNbaK55aO3wDwuVZq9f2KmcEUA/GRUOJQy3XGu1xgPjVmR6Hqbx4ygjoAcMm8UfNc7UA8deKV8qCGEF2ag82n9LpDYcEQSehC/kE4bbUFaZk3FMUdTwMu5vB0vVQIDAQAB"
_dmarc TXT "v=DMARC1; p=reject; adkim=s; aspf=s"
@ A 45.33.21.121
@ AAAA 2600:3c00::f03c:92ff:feb0:e05c
www A 45.33.21.121
www AAAA 2600:3c00::f03c:92ff:feb0:e05c

View File

@ -1,12 +0,0 @@
; chill9.com [726945]
$TTL 86400
@ IN SOA ns1.linode.com. hostmaster.kill0.net. 2022051201 14400 14400 1209600 86400
@ NS ns1.linode.com.
@ NS ns2.linode.com.
@ NS ns3.linode.com.
@ NS ns4.linode.com.
@ NS ns5.linode.com.
@ A 45.33.21.121
@ AAAA 2600:3c00::f03c:92ff:feb0:e05c
www A 45.33.21.121
www AAAA 2600:3c00::f03c:92ff:feb0:e05c

View File

@ -1,12 +0,0 @@
; chill9.net [726945]
$TTL 86400
@ IN SOA ns1.linode.com. hostmaster.kill0.net. 2022051201 14400 14400 1209600 86400
@ NS ns1.linode.com.
@ NS ns2.linode.com.
@ NS ns3.linode.com.
@ NS ns4.linode.com.
@ NS ns5.linode.com.
@ A 45.33.21.121
@ AAAA 2600:3c00::f03c:92ff:feb0:e05c
www A 45.33.21.121
www AAAA 2600:3c00::f03c:92ff:feb0:e05c

View File

@ -1,12 +0,0 @@
; confabulator.net [307550]
$TTL 86400
@ IN SOA ns1.linode.com. hostmaster.kill0.net. 2022051201 14400 14400 1209600 86400
@ NS ns1.linode.com.
@ NS ns2.linode.com.
@ NS ns3.linode.com.
@ NS ns4.linode.com.
@ NS ns5.linode.com.
@ A 45.33.21.121
@ AAAA 2600:3c00::f03c:92ff:feb0:e05c
www A 45.33.21.121
www AAAA 2600:3c00::f03c:92ff:feb0:e05c

View File

@ -1,16 +0,0 @@
; ctrl-v.org [687762]
$TTL 86400
@ IN SOA ns1.linode.com. hostmaster.kill0.net. 2022051201 14400 14400 1209600 86400
@ NS ns1.linode.com.
@ NS ns2.linode.com.
@ NS ns3.linode.com.
@ NS ns4.linode.com.
@ NS ns5.linode.com.
@ MX 10 in1-smtp.messagingengine.com.
@ MX 20 in2-smtp.messagingengine.com.
@ TXT "v=spf1 include:spf.messagingengine.com include:mailgun.org -all"
mesmtp._domainkey TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8ihB/cUM+FkgYv5MPoZQQQLLFfu77bPYgQv64g1xjNw0c3jmHMKjQ51zW5lbvu/DAwKxtZqHjnruyvcLzRGcWzeV8udk88l+DuskTbIAYn0U5tU0fzTRwiARz4flik+JQtA0P+jvK5jCjmmEHpz6QUa+UN6rZKpz1jB3SgXXbpwIDAQAB"
@ A 45.33.21.121
@ AAAA 2600:3c00::f03c:92ff:feb0:e05c
www A 45.33.21.121
www AAAA 2600:3c00::f03c:92ff:feb0:e05c

View File

@ -1,12 +0,0 @@
; kill0.com [726945]
$TTL 86400
@ IN SOA ns1.linode.com. hostmaster.kill0.net. 2022051201 14400 14400 1209600 86400
@ NS ns1.linode.com.
@ NS ns2.linode.com.
@ NS ns3.linode.com.
@ NS ns4.linode.com.
@ NS ns5.linode.com.
@ A 45.33.21.121
@ AAAA 2600:3c00::f03c:92ff:feb0:e05c
www A 45.33.21.121
www AAAA 2600:3c00::f03c:92ff:feb0:e05c

View File

@ -1,27 +0,0 @@
; kill0.net [726944]
$TTL 86400
@ SOA ns1.linode.com. hostmaster.kill0.net. 2022053101 14400 14400 1209600 86400
@ NS ns1.linode.com.
@ NS ns2.linode.com.
@ NS ns3.linode.com.
@ NS ns4.linode.com.
@ NS ns5.linode.com.
@ MX 10 in1-smtp.messagingengine.com.
@ MX 20 in2-smtp.messagingengine.com.
@ TXT "v=spf1 include:mailgun.org ~all"
mailo._domainkey TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7bl1IcQTV0h6yK7wAsuLqj6LjlTxL1ktnGMdeC+J0hlDOHQPey7XEjL9Hj1Ye55Fu1cyBNx7eYn/mLZgiuGu9MccbgIyzRasP1DHG2mQ9omi8z7igesKtRaasyJ4EM6oM3BNSmDneVcInxOUa+6E9fJCesT+X3Flf8XEvuV3gowIDAQAB"
jump0 A 45.33.21.121
jump1 A 198.58.98.26
mine0 A 173.255.193.88
vpn-home 300 A 98.52.91.99
vpn-jump0 A 45.33.21.121
jump0 AAAA 2600:3c00::f03c:92ff:feb0:e05c
jump1 AAAA 2600:3c00::f03c:93ff:feac:0daf
mine0 AAAA 2600:3c00::f03c:92ff:fe70:d8d1
git CNAME jump0.kill0.net.
monitor CNAME jump0.kill0.net.
ping CNAME jump0.kill0.net.
stats CNAME jump0.kill0.net.
dl CNAME jump0.kill0.net.
ping-home 300 A 98.52.91.99
ping-home 300 AAAA 2001:558:6033:96:4ea:10a5:9c40:3d9f

View File

@ -102,17 +102,17 @@ rsyslog_archival_format_enabled: true
rsyslog_outputs:
- name: omfwd
params:
#target: 127.254.254.1
target: 10.255.0.1
#port: 1514
target: 169.254.0.1
port: 514
protocol: tcp
action.resumeretrycount: -1
queue.type: linkedlist
queue.size: 10000
queue.size: 1000000
queue.filename: fwd
queue.saveonshutdown: "on"
keepalive: "on"
template: RSYSLOG_SyslogProtocol23Format
tcp_framing: octet-counted
sudo_aliases:
host:
@ -210,17 +210,17 @@ teleport_config:
firewall_ipset_node_exporter:
- "{{ lookup('dig', 'jump0.kill0.net./A') }}"
- "{{ lookup('dig', 'jump0.kill0.net./AAAA') }}"
- 10.255.0.1
- 169.254.0.1
firewall_ipset_blackbox_exporter:
- "{{ lookup('dig', 'jump0.kill0.net./A') }}"
- "{{ lookup('dig', 'jump0.kill0.net./AAAA') }}"
- 10.255.0.1
- 169.254.0.1
firewall_ipset_mtail:
- "{{ lookup('dig', 'jump0.kill0.net./A') }}"
- "{{ lookup('dig', 'jump0.kill0.net./AAAA') }}"
- 10.255.0.1
- 169.254.0.1
node_exporter_du_directories:
- /var/log/syslog
@ -230,7 +230,7 @@ wireguard_iptables:
wg0:
input: true
wireguard_network_prefix: 10.255.0
wireguard_network_prefix: 169.254.0
wireguard_peers:
wg0:
- public_key: 1ipGUnK8XDbIoBIEF440BhwLUe0yHa5l3kZZc4eFxV8=
@ -241,57 +241,125 @@ supervisor_unix_http_server_socket_chown: root:node_exporter
supervisor_unix_http_server_socket_chmod: "0770"
firewall_ipset_loki:
- 10.255.0.1
- 169.254.0.0/24
firewall_ipset_promtail:
- "{{ lookup('dig', 'jump0.kill0.net./A') }}"
- "{{ lookup('dig', 'jump0.kill0.net./AAAA') }}"
- 169.264.0.0/24
promtail_clients:
- url: http://10.255.0.1:3100/loki/api/v1/push
- url: http://169.254.0.1:3100/loki/api/v1/push
external_labels:
region: dallas
provider: linode
promtail_scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
- job_name: journal
journal:
json: false
max_age: 12h
path: /var/log/journal
labels:
job: syslog
__path__: "/var/log/syslog/{{ ansible_hostname }}/**/*.log"
- job_name: nginx
static_configs:
- targets:
- localhost
labels:
job: nginx
host: "{{ ansible_hostname }}"
__path__: /var/log/nginx/*.log
job: systemd-journal
relabel_configs:
- source_labels:
- __journal__systemd_unit
target_label: systemd_unit
- source_labels:
- __journal_unit
target_label: unit
- source_labels:
- __journal_priority_keyword
target_label: priority
- source_labels:
- __journal_syslog_identifier
target_label: syslog_identifier
pipeline_stages:
- match:
selector: '{job="nginx"}'
selector: '{systemd_unit=~"(alertmanager|blackbox_exporter|grafana|karma|kthxbye|loki|mimir|node_exporter|prometheus|promtail|pushgateway|thanos).+"}'
stages:
- logfmt:
mapping:
level:
ts:
- timestamp:
source: ts
format: RFC3339Nano
- timestamp:
source: t
format: RFC3339Nano
- labels:
priority: level
- job_name: nginx-access
static_configs:
- targets:
- localhost
labels:
job: nginx-access
__path__: /var/log/nginx/*.access.log
pipeline_stages:
- match:
selector: '{job="nginx-access"}'
stages:
- regex:
expression: '^(?P<remote_addr>[^ ]+) - (?P<remote_user>[^ ]*) \[(?P<time_local>.*)\] "(?P<method>[^ ]*) (?P<request>[^ ]*) (?P<protocol>[^ ]*)" (?P<status>[\d]+) (?P<body_bytes_sent>[\d]+) "(?P<http_referer>[^"]*)" "(?P<http_user_agent>[^"]*)"?'
- metrics:
nginx_requests_total:
type: Counter
description: requests in nginx access logs
source: method
config:
action: inc
expression: ^(?P<hostname>[0-9A-Za-z\.:-]+) (?P<remote_addr>[0-9A-Za-z\.:-]+) (?P<remote_logname>[0-9A-Za-z-]+) (?P<remote_username>[0-9A-Za-z-]+) \[(?P<timestamp>\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2} (\+|-)\d{4})\] "(?P<request_method>[A-Z]+) (?P<URI>\S+) (?P<http_version>HTTP\/[0-9\.]+)" (?P<request_status>\d{3})
- timestamp:
source: timestamp
format: "02/Jan/2006:15:04:05 -0700"
- labels:
#remote_addr:
#remote_user:
#time_local:
method:
#request:
#protocol:
status:
body_bytes_sent:
#http_referer:
#http_user_agent:
hostname:
method: request_method
status: request_status
version: http_version
- job_name: nginx-error
static_configs:
- targets:
- localhost
labels:
job: nginx-error
__path__: /var/log/nginx/*.error.log
pipeline_stages:
- match:
selector: '{job="nginx-error"}'
stages:
- regex:
expression: '^(?P<timestamp>\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}) \[(?P<priority>\w+)\] (?P<pid>\d+)\#(?P<tid>\d+): (?:\*(?P<cid>\d+))?'
- labels:
priority:
- timestamp:
source: timestamp
format: "2023/08/16 02:43:32"
- regex:
expression: 'host: "(?P<hostname>[0-9A-Za-z\.:-]+)"'
- labels:
hostname:
- job_name: syslog
syslog:
listen_address: 0.0.0.0:1514
listen_protocol: tcp
idle_timeout: 60s
label_structured_data: true
labels:
job: syslog
pipeline_stages:
- match:
selector: '{host=~"ap0|coresw0|fw0|power0|172\\."}'
stages:
- static_labels:
region: home
provider: home
loki_service_enabled: false
loki_service_state: stopped
promtail_service_enabled: false
promtail_service_state: stopped
relabel_configs:
- source_labels:
- __syslog_message_hostname
target_label: host
- source_labels:
- __syslog_message_severity
target_label: priority
- source_labels:
- __syslog_message_app_name
target_label: syslog_identifier
influxdb_service_enabled: false
influxdb_service_state: stopped
@ -300,3 +368,7 @@ influxdb_package_state: absent
telegraf_service_enabled: false
telegraf_service_state: stopped
telegraf_package_state: absent
lego_credential_files:
- name: credentials.json
content: "{{ vault_lego_gcp_service_account | string }}"

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ firewall_allowed_udp_ports:
- 1194
firewall_ipset_syslog:
- 10.255.0.0/24
- 169.254.0.0/24
autossh_authorized_keys:
- key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOvKqDI6VUYFgMUC54pVr5U8CX+Xl2ewV7PIYkTiQ70o
@ -46,7 +46,7 @@ telegraf_config_d:
name_override: ping6
binary: ping6
- urls:
- 10.255.0.1
- 169.254.0.1
count: 10
ipv6: false
binary: ping4
@ -311,43 +311,49 @@ wireguard_peers:
wg0:
- comment: mine0.kill0.net
public_key: Cm9yZNczjghAh4hV4fSvy3rsmuLsQFZk+ET5CoWxVnI=
#endpoint: "{{ lookup('dig', 'mine0.kill0.net./A') }}:{{ wireguard_port }}"
endpoint: "mine0.kill0.net:{{ wireguard_port }}"
allowed_ips: "{{ hostvars['mine0.kill0.net'].wireguard_interfaces.wg0.address }}"
- comment: vpn-home.kill0.net
public_key: j5AgKWcXx8we7QVkt6//oQWsGfXj+5IJKt9mx0EpTW0=
endpoint: "vpn-home.kill0.net:{{ wireguard_port }}"
allowed_ips: 172.16.0.0/16, 10.255.0.2/32
wg1:
- comment: pixel-2
public_key: GzQOU0x1POvkY4+6smBGkE/B1XytoVxIJa6zGX8j6Bc=
allowed_ips:
- 192.168.255.16/32
- 2600:3c00:e000:343::10/128
- 169.254.0.2/32
- fc00::ffff:169.254.0.2/128
- comment: vpn-home.kill0.net
allowed_ips:
- 172.16.0.0/16
- 169.254.0.16/32
- fc00::ffff:169.254.0.16/128
endpoint: "vpn-home.kill0.net:{{ wireguard_port }}"
persistent_keepalive: 25
preshared_key: "{{ vault_wireguard_preshared_key.home }}"
public_key: fUSQ7Uxkxij/0p+SIRekb6moqW0t/qdFaP2HsjRsNRs=
- comment: retropie
allowed_ips:
- 172.31.0.0/16
- 169.254.0.17/32
- fc00::ffff:169.254.0.17/128
persistent_keepalive: 25
preshared_key: "{{ vault_wireguard_preshared_key.retropie }}"
public_key: lLvracXkf8HNfgKpJkzei9ys58aAs4DT3Z3bjNRFsQY=
wg1:
- comment: pixel
public_key: zCDfH5Eqv0oRNWC8TtrkGby3+BAtiQtXxbsmA/lZtXQ=
allowed_ips:
- 192.168.255.16/24
- fc01::ffff:192.168.255.16/128
- 2600:3c00:e000:343::ffff:192.168.255.16/128
- comment: work laptop
public_key: TRT1SRQd3mFJDJK9tdglqsydXJmkzyrNdUOm4nr7M3k=
allowed_ips:
- 192.168.255.17/32
- 2600:3c00:e000:343::11/128
- comment: home workstation
public_key: ISvgu8zZWjmKyKrJi2mbqoJg2mrvIjPbQRs0Sp+dLzc=
allowed_ips:
- 192.168.255.18/32
- 2600:3c00:e000:343::12/128
- comment: rick
public_key: oFJcRhs7tQ4vPHTjbKwwWirpjx9T9ng7PFj3+iAVYWo=
allowed_ips:
- 192.168.255.32/32
- 2600:3c00:e000:343::20/128
- 192.168.255.17/24
- fc01::ffff:192.168.255.17/128
- 2600:3c00:e000:343::ffff:192.168.255.17/128
unbound_interfaces:
- 127.0.0.1
- 192.168.255.1
- ::1
- 2600:3c00:e000:343::1
- 2600:3c00:e000:343::ffff:192.168.255.1
unbound_access_control:
- 127.0.0.1 allow
- 192.168.255.0/24 allow
- ::1 allow
- 2600:3c00:e000:343::/64 allow
- 2600:3c00:e000:343::ffff:192.168.255.0/120 allow

View File

@ -1,223 +1,230 @@
$ANSIBLE_VAULT;1.1;AES256
36396137393836323465386631643461656431316666376562623633383965393863383866663764
3664343734343065343236303365373962333162306564620a623362326163393766343735653061
64393932383066323264636530613036353637343231666439346234663430326366396532663765
3536663666643838360a316462376363613562373965653536333763386635343362393938386331
39663266616365383166393232646530656135373234646166393365343233666635393430313136
66616361636638323430343334643230623331623334343162333335353265333436326239626664
30623039333737383531663738616337396136353836383537343337316565623562393235303566
63656234663765313062666435313431633861646137313330386633383062656335336639633631
31386561376365623634666231643134663230643736376662356361313464666638363961366437
61323033386661356561653961623333353637613439666437333164643532343863333434613061
63646432396333303965663730623061333065653432326136333337633862393339363130373138
36366163316635383336316537393761633962336138643139386638373134313635336666303765
62316531336165323965343232636339313462633536623139303865663862376364363261363865
31353064646338646662386639343462386639393162363334363937363337613963313135663365
66343365363232623564613035303139663937356430336537346564643134313763393462323638
30616462363661623466663162333834323937623335316261646533316137613564316532653165
33343133376538643961656364656666346533316336626464663939313137643461303232666162
32353131353864373738396335613763366639633837653636386139393862616364613265313935
62353134303733393836666337393530643465343333373230346133396163623332336131323730
39383264303935343763343033303864316433613334633137333031626563393233663932376434
66303638643232376633636331613234316339666630393534333136306639616662613361663031
31316630323338383061346333633063393261353463623039633063633132623730303161663531
65353030303763336639636265663333333639306432306662386232303439626235663433376437
37336461376662663035373336663937333132383964396561626337626632303064656365313633
61663630316163323163383436636636313333353437646330346532656236626562663332323636
65303430663133363464323262313531376531303739613364336262393965376533343136323034
65376461326362313732323730353137663036393835333939353962643338326162306163626536
37316262623265633363356435316632653466636137303131303664636433376236613237376339
36616639643232356330393134333364303137633736633764346233636330386232316566366435
30613261613936343738303763623966653936323661383164613933333633653339363535306138
32326466306634633965666466393435656432336163663130666266363230653730396665623531
36643364306537306663303537333063363565386337663061623661343838303638393965373165
38613939613061376161626163336164656237356164303562376137633135613738386331323262
30373539633630646339323930373737346136633465616535643439643134306430653062383664
61313138376138373961376561303162616438663263653561363339396132393834373566663436
62356331323465616134656237356434633830666231646434363664623139373737393830616338
36353066613464353739336462623966356330653534366332663735663937306462393233383939
36363066633563393463303363653631646464323937613234333835306139373462366661643961
30316462636638353531336266633061663933316266303335623837376239633835663265336338
39313334396565653262613736616536646461656438373839316337363963663135353261353133
32373366366236353663393065306338373961636432353533386436666532313637306433373236
38383037663037643763383465313862336334326637346338383235663061316232613365656266
31616136373135323039313633373538353761663439323839313365313462663063373339623530
61313731303861333631613464343232303763316462643935626366346130366531313631626630
39636630663866336161623835666261366337376239653139613230616231353636616266663238
31653466363530346262326630353661366635616162313733323032633736653362306665363565
31653731343465373736646338383830393735643736646266323965356336393939366537386566
35613561333834653834626233396133323337303439643432373931616237613439343665343061
39666661353532326435373332393739356636636433623163383337663165613834393864303533
32356336366336353261653235663666633335626331663964636263656136366232373838613962
37393464376137663630333334363234393464313062353366656435646633653265616265383535
61333061303633623065666366643037333139356465343932376664333163623532626331336139
33373732613264636331623964393336383665613264343131613138386362386362343539346234
30336237356436623262393139363538306530356530353237666339386565613931303131666262
30363866393061663437633532356238383530363066623862393531366530613731393137343434
33386434613632383066636638356161323837653630363830336233653830343261303933616565
65313334633838663264623032656131646331613539666436343334663061313837353030626161
63303362666662356235343065373231646334656565316564626234363431346664373036303333
39343363346365323237356365323062313630323736323737643432353262366534653131313033
63383638333334333361383461626361333766343861653538343562326366623332626131613136
62643537636233383263656564306430386333346432353434623433373638366536393438333434
37656539303736633938316462366230613131633936363034386639623330653535326264333861
35616537623461316662636166613530373963316236393938363932616566333430613366626363
66383139323565353830303466356233353066316663653732303534383765346636653132363130
32303563353232616537613966663836623832383335646331616364353336313363313234323362
66616136636533346339363563623734623239626230636565623338363861393338613337623530
64626363343533303333626234326666623136333332323532383662663635633538313433303835
34623134386631376639623639313164393033616664346338633033656630623436633130373665
38356635396238613633333738326233663933666562356630613063303230353462653264393531
31303736633030663761376134366631646130363139623465653661366335363830633566333237
33376631343334376435386135653330343832353339313931323434303265343361336231643638
66623539313162643337353432393865626538633265633363353830306663393233333962313636
33333565356536376464653131376633353363316663336563323230326537613165353134366365
61363030326334656139353938613531643864316434383266353633373735326562306239323961
37336638663837333738313230316236346262326135346536343331356234313130353661383464
35376236346366373363326138383430323132626663303138353938383263643665393839363162
31366166613037383166313264373035663066336138623535313035303533613132613436313136
66393764333732356333363462333366346363613262316130636235353361313731383839653563
63383134643262636262666237356233393430336163613135623264633336396139646231363562
34393031663961643562396234666437356665356331633834396637336264653265353065306233
30393461313663313564373236663362353435393535306465353136613730333866636639633161
30666566393266616134636264366666356438616632336661393639366635356262653832353633
32623466303835633065613936373063626432326463336163303838613836646332643035653933
63363630663161373039653330633631643638313036633537323364373739363736656231636535
35396466373666353361366535366334313538313639663131336662386166316162326331373838
34386232653930383133613164393435346661643466343762343463376537633036393366656164
34366465613839623533363235343737333565326165633634386230323938646166643737333261
64333139663463666432346461613033616539643463323263343563303361373539303834353434
61306635323463383238633738303830646263663036396566336534623237636234303566643533
39663462663063386137326630353164633561653936343665326665306665326238303230346436
31633138303236666362306162663036386334623339656565353730643630396263363738306139
64323230616164303638643263396432646438356534313433633536656432333738303038323266
31643965383036326134653030333932323231313363336263656534303839346631636230323032
61303033383932626238353466353631326633633565343065306561396636393835373966383032
61363061653662373731313862326461373133343930393963343062623663633033323865323565
62633736623365613631326464373662393861663737623836666532353339363232363630333662
65333265386561336337353838353238316466336162393738623034376339653864393733643837
38313763656431323261366634386331366262653838613036646633326464383565353136356566
32313131313466613266643435663933646132646339353239343535363333393535346565383331
32326566383337323662663438316639366139386433316639633463333661396337393837646435
66313637653939626536326332306139393438333137323532316130636439313066383633396335
38373062353930623661306339653234336135396233383965303861363535616633366666656562
37336331316534656465613536313364346633393066323839393833393864363234356330663264
65336263613861383837373533646430666539316638323966623761373633666437306432386235
66353531303533323662613565363065356236383939623237363835616262326536373962343538
30316631656465313264393932626232346637356531336536613561383434663934643432613164
33313833613532613365393637323262346437343933353138623765626665656663306263393862
39303865316537643063363665626465356631653534393462353830653931636563653333323733
31343864333630366566613731366333323631313337636236653662613832626464626333363537
33303762363332306266323538323366383863383033616563376231303937316163396638663162
64386664313863636535366331646238626437353664313731346633353738343733626263666230
30616161333061393061366430656330613737333133656637656664316265616365313436373939
65653564326165303761326236343436326363383538613734303539363363316135653630666138
38663333323863363163353838653765353937313166316230323961376136326438653866346665
34306561356536663363666162643362316139313438323632366136366461663230613563613434
37333838663239356236343731313430363232623633626364336664613839393036393566656366
61616332666262336231363262333832613937313330373231383830343130323966333261353661
34633661363731613430393262373839333863393730613730323866623837363936333039383535
36353763313565633037393032386135376537343430363535376238376131653935366434346431
33353338323935613638306234353963653438323031643735613035613335393834343961373037
37653131333336353230636136633431333463316137333636363338333230656131346633326162
33303635613033333730663162623965343230303533393065306539666439656361306634646662
38616234326637393364303731303566363661633462393836633237353139616634373933356462
66303864333133643238313061386538313430636231653265336463633437396134626238386365
38646135363764373837376534386132616139396238373765316633336135396462646230396233
38393432373736343236646364313037633032666631313462356164656465333837383037353038
39343962646236363633323465636638656266323966393635373163323330613937656266326636
64633666323061623266643939366630396237643731343531623031663363663963376336316334
31323836366665386336313139613836353764343066633231306433363538393438366162376537
38306436346662336262623832323964663138383262393262396366656465343731373135663562
63316230366236376238346639613034656662623166306536303031313930343938363363626333
35353837326134646535626164663762306431306464323230663763616465636435643064393830
65663439343166376163346137666431653731313738623630623263643133353439363730623230
34303265383164623530366334343066316361313533323831343833623634326661366532313265
64333034636663383437666238346434313761366262626231666163373433343230623662653762
37363234623932636536356565313062633131313334623364333262336561616334643534316666
38623032376432616339343939646638303630326235316163363530326238306335656630336462
36313234643064333737613661393164306263353438666334646164346430333665396665386436
32643136323431303063306135363131373966343666616163326466656233386532383930343764
34313536643663623031326236663866396165656539313461313933343035306336643631363261
65333934333231373435376134643237343237636230386465663832363665333334316663303761
32616133386637303437376639316261643938383563636433633035353138343137623838313466
65643835643562303234373137323037643165393738366262633638323939653233666163646630
31613863393832336663326266306430663864323031383161663762636535636238363663343066
38306533663931623537363964323733666563663765656331306236353436646566343766313039
37646334643839326531326132633433653030376437373734643038653732346335653161323932
36616533346437373665636166313337353136616466383237396266373131353136313535323666
63373034613961643531643936633566383231336166323762316539373334323134636332383232
36383336656538386631393665336661393432373339323432636565613963656232623034656635
63376161306631326632636232653831643636396365303762323661366166353539343939313561
39616233643564656538303764366365326338303436303261656433313766373766383638333634
66346464623565366530663163666339333636363463336564393034373564633565623535646136
37613133346565363230653666356631343037636638343832663866613461333061313464373736
37323563663634373931396232626436626533323566323463346535353362333262633764366664
30373337666366313866656362613562656239653565613035323936383861663931616266313637
31636631326630393834346237613965396534323366313039643566343133363537393632663264
66366265623962353164336463373031323262323936383163613834643433616333306661613430
62366464353464326636656234336433656633376636366139343338373161303965333637626661
30336337343936356131303237393264363232653033363163363036376163336639353961343563
35346336666335636266373861626465633733613032393438616434313735316132313665663635
34326438316632346666636265633035383336336462656331353737623066313765373366396636
37383366303764386566316261316232663163616234663966396665313138303839646262306338
63363365333735626165373735333631363761663735356635386139393739313764623531326561
61663936363437376261613266633163326366333730323063633436643037663631303537656363
66633334623064643239336439613735333431363631333435373532316230623065316332336438
37346336366466366335653562646265613033656466306632646566626666323337353336366366
62346163383439363933633763376639386132313333616261346234343439653533333462663436
65353165313865313635383538633432613565343136383665303064636434313135383236636436
30626538303437623837343663396464666232393139656335613739356165616136316263323337
38386537326132386264363066333730653863353430643633656533663262613963633231383533
65623032356131313936623931333234303532626533316636633763393631313139326562616530
37343965373835393564613630373632666437393738666633636536366135316336333565336538
61636635633861353561353063666433343837313733653837653239393061313732373930323339
33653965346230616336323766363434643030633166313562366561363963396663626239343834
34663933373832666635643961613461643331346564323431343365343439626135613638343866
65333732653366343032373833623566613865323539666463623163623937343338386632646330
34393865333864343666376265353062383966653839316263376434636531366561316433373835
63343264383465336439356565313130373736376532376538336533323134666565346261353435
62343534313866343331346439303164633539336537613130353364353430323361383938323137
38353862663730343234333566643936356562383632313238303166646438646435623765373362
66323339656466653235346661353266383339616364613562656233653935653739323262353661
35356338363035373066323238323364336438643839313435313163383935316163396335303231
36303133636539316661396664376639653265376266366432326633323734313165356537656337
61633835303735366332336134613733336534646531393265633437373862316262663066393262
61646663363239633430363165346534386639383562316161363532396266613837346230323663
33623539633637666362346332323833316165643436353332363038343436666536336461636130
37383839393866386139343565373164626639326530666662323230373030333938393531326435
61306436623362373363623135336139343162393236326463666664323465646436366561323331
30396663643765396234346265353831623634343963393234306532613336353732373630363830
31613561353464306363316136383463396361353933313239643732353335656232636230323539
64316163316461666564353637626532363966313332353362383936643661363066353734666631
62363562613362333436313534326135393665663930376535646562646635326236363163626632
31376334336265323737326138373532323363393937303635373663653862393730646532616637
34643235636165343063633836623936666564313566303861356332636130393635353438613637
64303430653061356533373235336661363139643537633337386164303236613934313566643431
65393664333233326565653634656566393738366566613137383436366638656561376135626364
38303633343737633464356134616331366266613164386439346338373036666337386632376638
62316566646539633961353865636165313966663339336436316165323966326561363166613134
32373764333839313338353162326363373430393031333038646631333836323237643537376462
33623836396536343335333665366561363737333864363963383836353234633739626466316561
63346638316365363364316530656563343537326534353137396433646333626666313735366331
31373465303032306636373437393366316639393065336336306130346234313038316539353037
36333164306566313539633464373132643234306335633361386637393231306566333832386566
35356661633535306531623961346635613730653566663536393234373839613961626632313837
62363062346534623961373266363561326666316161643366386133323163636532363437623266
38646464366463353162376635313764353338616439633566633862636238643265663465396161
65333238623833346631653264336430656539623561353135353363326139323234376333346436
31633365613730663133656532653937373334386335643138663666626230343339663232656336
36613931623233303164646630363966353730643531356130643265363332386333313132343433
37653233336337373533313839393365623532376439656537326439663864326639636462613830
38323832333865613139336632363534616639313566303131326339353934396534336261333839
63303730363732613037386265663132326264613435666138633639303761623361623836616163
62663263376231383036663062376333656362303666383962333762653066396339393231636533
37386538636635366463663434653564656664316230653836646639333736316434356339393435
39656564333330393436336135656262363862353263613664643063633365336161366664353765
36356232613234386265396436346130353763636538346636663234633237663133323066316563
31636237643538376632663462626363386234306334303062343530306161306265633031366161
63393830656333633864376335623231653230396635616331666236666661643330356135343931
35356335323332346361666538343065643565333133393137323536363438326563313531336336
39613330653331356436326437653936386531663037336539643165316131663435363766326435
37316466666166303262383265653833633437313732363632636235363037326561353032623134
6239663434363939386230356530333036656637303161626465
34326635363163333038303363346632613636306133616266343732323036656335643366646264
3938363837343132633665323362323133663430633165310a303562396164626233653535623336
34646463376565646435616564616235663836663466353234343030353363626131613134643431
6535653237343635300a393162633862323261376530396630643539313162653161396438366236
39633866303562393131636537653932306138643766653632323834373361323938393131656331
64653335393632336533343135313766643361633739613333666461663962343134636263333333
30663966306434323331373136366333623262393962363031353564383133306433306261616631
39323738373163653861653866366139346666333338303435333435663532343466393561616230
31656234376564366533663762366639363134613666363532336463613863363862353839313034
32343938656461643531373535363837663336303137323766663966613136313365333734366233
32613630343034356136313661616532356163336561633562386337613937616535306533623838
31666363336363653436623635303231366364343137343532613263313436356365393330666638
65383161613561343361326431623338356338323164656536306162333764346131623235633664
64666635343765316134653936666137613465363735316562616336636233383439653564316135
61623466373965323437306537313761353832376462396465306532356162643966643534633666
35643066653166313335633737393362353630623639336366323161666232353930396434333630
31353232663837393764653465303133616265636132316430393936323735663136383539336462
37333262373738366266653532393937326163363832356438373635646465646230623738633232
61626530323834383838333861363335613034366661343138336638323432306135356363353330
63396538663731383637333763663763376361313739366266373065303230373135653831643735
62356365653935386130643364393963353335633539663061633838373132633336613664356631
65616639643461666538653334666465393965663862343530656265663032653561343833336563
31653533383665306166393431626161363364346265643631373366316434336234653264666164
32373336326434666561383463383037633338646635636364366563666464346433643064323032
66313065303638636635353864613238346537386131303666386264376561393134613438316239
30623238356663393632326531643732313433383638333866363161656534393134313937383161
65306439393965353461363439336165356562323262633664653231633538386661616238303732
37623964613335393330663862666135666664353134303861653232623730626533616335643539
62396361356465323165366235303362383736386664663935353666613132663762303238346533
38303665333639323336643466353637636364643631613231613164303664336462353831363662
33373865326563653632643131313330663237636135376563336565633162613033356163663333
37383231306333343436366535396463636130353663303830343933623135343661653030643438
36363663656138326435313565383864373036653832663163633236363961303238346234633231
33653235643666353266316463373665633661333262303764346466636639316138656266656235
65353936356230613130373339336631396639303533366239363037626365653262353563643334
63623537663966353332383838653939653062663864396235633232376635383035313961386638
33623062336630653432663234303561663233633566343862303631663337383834393930666537
66376633303034316435366237366464366336313932666337356664323265343533306230343332
32366239643033333635343563353437633439663839613733636339353933613762303733343736
65633937653161623732393137313062393636373461306265373461396538663937623263323630
65626230666636336233303166666664366361366534386466393337373162646262356138636433
32346238643937343865653165326566346531626238643434623765353836653061623064653166
62396531333937393363633835663930323138656365313865373733636135333735656138353030
64313461356232633065613139376134303433613663653733663266376437306337396662353130
39613732666566636434656466343839353634663736636636666231336235396439393961313366
65363130666635663633646663656430386538343931346233396563613339333331663930306132
38363034333434633933303862383965303835343961343562346466393466393165663965343936
62316234663738356361393836363939393962616639306366653934386539373736636233623763
30643165353665313235373366366164343461616238313239313737626465653930366466623164
38653533346335633437653237613436333463373163646261376264376438656131366263353862
38386361346438343036373761383164666465663436363132373662343266666433383663663333
31326434666136623865626635663232333766343538383839303435646439386133613663373736
31373664353630313461363162663866333366613666646337363761333237393635393864373531
33386434386536343033633664373963323937646535373231623836396334373431353964386566
31633065346534323566653734663261353866613635316165336534666134653439613463323031
63656435643132633664393234396230396336326139386632303633393130316566353834376135
31373663326665333164626433303938666366666463643134356236613738636434626665663461
66376665363633393530616365643139313436383137323062383763613931353330643634616236
31323131666536613433396538643364336562366433623437336564663638333136313531623761
35636431383562393237663533333161333933643662666635623965386435356534633832373531
35343132663861313931636530666237353166633031366330643731663561346133373831633137
30633332633362396664333736613630346437353836613237323835313730333033343430323236
64373663653563343838323438396661363839623261663339333062656264323866386536633439
39346532633864633663356431663535343664376265376566653861616434313665616264626230
33316134386630313139343030393435626564353666343734376561616437343032306566303031
32353663653537666137343831633164303934303436356161313661613164666431653037363539
65326366323033366663623736626366613239323033356566383334373434313636336230643639
63646131343636303262626230653633393735323030373531346437396663313162623332316362
34366239326366633961363236313930303435646135366565626564383663306636623034653465
62373539663561366435356538386664373664653239313936623362326636353563343337336632
31333133383562653935656265363136363532653431623830396130636233306563623663333531
38383664366363306662383532656366356266323031613630336338656362643562373034633933
61623865316636643430653562623535643966306265613833396266626564326161383666616263
66663664303431353866613237316539343835366531363166633136633965386532613831346566
35313334356132626337633339363166303637313665303464343635323163383231636238613066
34613462386533326638643764346661346361343166376337353136313361656561396238626538
61666431636661643665323330643239613734663332336638613435653563303835306639316162
39363432643364393036333334643430663763363234666463323231336135343763653063343533
32373862383062346261646331376633316463393365303931303535373137663561396636323633
65626533383337393838323963326361623663386639656264366662326262653161336661306137
64356561623164303465633562393462396166316233633561323565666433376565646534346132
34343862393766346534393662316336393363363937313765663237383961356266656233623432
65383465633830393064393262343133376161646239663166393339643034343635343265636233
64623664653538343961326663626365333533613338366332396437616466326362346463656465
30323233343564396238613038663835353538336163333933373538393766633532653736613165
39343938373535343135656430663263626366346535333833393566363938306430396664623864
39303539373262383438356566663736623364363766396238323730306263373639303262376463
63353066306534313031343933343632613634366565386230636137653530393334373832646339
39396535336466336364666461383639303433383563343236366336316637353032316430646362
65326339383635333666396233323539316664343031613333653133343732303335633131633031
66353338363535323734623332633939343230363761646461356534343030326161353131313963
30323331393133366330653862396265343938623366366164633534653538613461326139353436
32353939633536616663333763393532323765353533633065373064613438383566373264353362
37396137353464376362656662303530343261666530663931383031363830356234393162336131
66313339623064623233393130616532613038623636393035623935346565393061633566663062
65663563356230316665363863373839326464303632333136643136323334663263343561663530
33363763393463373637366462653036336461366264333433393366316438343565656232616133
34333762656562353734383833376234383161396263613534313736346330666237343937313661
65613631323966393666323834323564356437313032633830616163656365353539623031313762
65323266626366666366396161373562633938303361396665663536316236333236383234386432
37666336663362623365343632353734623131346636653539316635336265303137323064313032
33613036343231666232306233623266663466656362316439643263643163616139303939393430
63663332626161336637626433386264613131363933313937373030396262343238343565363161
33666365343534656366366430646639656664656534643831346136643064383931396430383966
36653166353766656262333434303436643339346365613239386630363430613465366632383733
31323737616236633535613030313564656364363234386634383234393639313366323333623764
31353861653964663764633332656133316562373164633433623266623531343663643939633236
64333635303637653337353164326237316262656237636236643335633331303532353531346531
64643765353735333634303936356131613866326335376331393733326633653536333563326530
37353566343236393832653964656262636531376464646433656364353738363762323661646437
33623234343565646539316361663331623133323238393264613566633930346561613533353862
38353336623131366331336535626132636638393337376236396462333839363764653264653837
34326265376538353833343830653431646464643762613661303963363534656465363564366139
35646461616263646365303232396331343532626635303631313934656332393837616264306234
37313966656462353161363661386336636363663437346532326361613864353961366432356237
37386536393866326662343334353237633436383235633636383666613136386465316363393939
32303138643761653735323037346464653635366430356336313966643537646135623938613033
65373835303539383830643838383231363735383938373638663165623966356662396665303032
33646564306334336663636165303633346131373239316564343631306437383462303961626432
63396263653039336134343530653639356466616331306431633635376364613765663464346433
34333332663766383838653535643765383761363261326233643832353334386439396263336363
37336362313062616639663731363038633634383937373034656664626436383735613139393163
62353933336431356633346166356166616632373035363366393231383232353831633061333833
39316538636662333936373731363531663562623931643761353566343662363236356231323934
38343232393932313837323636383763633664643561383936653235303635313532333862633836
36303865366132316337623165396264613565323937316166653566653738343838663932646463
31623361303230343037386133343065633633316265633739643137343939663339656165306534
30346437666261323336613264353231333936633031653235633831396263653139643637663761
32643436396534643766316364666339613732313132356663613736623333653861376331626663
65636136303938376531323431323231363662303462353232613963373764616137333832383033
65633262313662383136646161323231643836313363383333616637353838333361663237373232
36626661313039613632653261636333303731396232346536666563326465393637383366383130
30306139383233343965623064353238316138336139363161616234643865366366336135346430
62393638376539643564343065396539313264396236613032306464346461613832663536373336
61633336616264353265313336353262646234316338626362653236346565646339663733363230
37393562383137336636383765363066636363373632613265653837356564313435303932333062
32393436343733383963336337613662666561336363303632333035346633386339303965333861
39333839613030326163336566623239323261346239353438303337316162353066343031303363
37383564316664336432303834653736346539306562663165313464356631663537383761323836
39363530393461666535306332333632643162663136323337323234353036623835343638333035
39373464633538393339626363633132343831653730376535623232653662613065326463313464
39323037643537626638343238343030386336326235376439313934313438653665643238366463
63393435643638353662333465396331323838313032653736343639373838336664633761323839
33663563366461313964363465373531386561613331373935363430363935363436643139616365
66346635333233313464313034643432383763616235326538363464303366636565393736353230
66356162373862383338346166333030616565643930626261623733626665333135626564623237
62393766313663366537306261613536356264303063383037626636366465653431383838313963
38666536613438333935633966643866623737646335323239613666316634613065323134303630
32313661303735613336373937396532353362306666383664376533643464303332643466383330
32343765633235356134626132383132306463366564323631323530363337343863316238393930
39356334303361306535653565653230336433646564353234633736663636333832353838363161
36623139666432666161313562373232656663646637326562396161633839366133623266356261
35373536623062306664653633343437653361333031303964353436636330353033653964313738
38663534376233383739643665303635613132643139346161633031623333653163343762336639
37363465373366386132393530326163363064383931313231646236313862383562666633366631
38646537643434653137613765653838383234366538653563363237663262323936646137366664
36383032623839316165626663623639363466666366373666326133616266663265383365663666
39316334663862656437303837613638643839343139663765613065323433346138396564376462
30366138316631343434396532313431313762636330653936366161623561643035356434363936
61643762613638316634613365623731333831616664356335613764373865623964623138643939
36623765333933336630666533343462313062623463646335643865356365343535643465373435
36623461336364373631663733613233303865353230363933333338643861313362613935366663
61643037326163613435373264653332386337396239393238313864316235363162396466306539
64643864316230363632313833326136386237366364316436346437643731393930653137373231
65363637316636303438343465366262353832633538343837386637376235663230336530643836
39633362313963643134323734313033336433663066316531303331376463653537336463356364
32316366393464313036666433303031633437653736303935333733373535623732373463643031
31383031626566623239346337616134666436616465396439343736346662336537326265353264
39373666383265323233376234333233346331363364633735323266376133306634373735323265
35636461306361353531663237616239643565633036653230333435646163376433616635393133
64663266383235666461666531616464373233356132333231313637396663366536666264613364
30333639636365626338363837623934616331353735343336656235373335616638363462383032
33396338346231363036613732333466633539393037326664653237643733366665356232336338
64626265633035386164636534613461636236306563316465333537333364333263323061393330
36323130376261373339613931363634386163326263303237393931616435666566393466336465
34396163613731613238613264316430313163666536623337376434393765356438373565626339
35333164333037626262626635316561323435653432613435383439653364633831616233303530
66656130313531316661306565313536653133303664303362643361653364383731363039343532
61396535373630343037376537396431373362643639393633636433326335353230366161656362
63313933393235386664353761613530636332366332383134353936313639306435356462616639
62386564363766306334346637353166376361353634366331326638643735373038626333666361
61623163356532373765633530316635313161346434626538333332613233316630366565346534
62336436333838303732366536626433353135636362333436613763323730396562616361306665
35646634623861396232626533333265343761393632393161363063646663663938363535353531
34636433353237386362313132633732646438643230653438313761386335333731393337346665
39316239626636323435303932613637373231623337353838313337356632336234623434623038
66366435376434366364353737656230393531633636633036333630376133313165333963636432
32353431666532373436316133353439383461353834346439313531333338333764316264343136
32353733363031376337336666636537613032376361343533323362626132396632633533643163
66313862623433636438613230646338653961343861623433623864326163363135633864373231
66313935353164363466356164616363653761623565663032313264656565623864383732376334
31613538623166663736373535363633623937323261386433386436373361623162626361363033
35393063663664373230613635353762333238353937633730623861626236663935333134326132
61343864376639633164333436623563633635343236333664333663653431643664386631376162
39613766393530313938653562333630343765316461326665386664643134643661666539373131
35373565313763336136653035656138313162333965663565353531336362616637363830383462
62343866623838343066653035613031346362303263636436656434303039393434643531666238
31633363373036356336333235363134616362393362636561316265363366386530666465656531
37366431373564656533363534613633393739663666666566303538363139643833323537356163
61396533353536333330343130326663613135393237653438323439623836363162393435646236
36636631366234663536323463303538303434633632316438343935353162316632663939313437
36666538323463643462323234626262333131353238333031346139333535656539363336646332
30353830623536396662313264323637663637353934636532306331323166316535343131336639
32396237313539653030366164343336623463656261616661376638346561646632623434393166
62383033313931653235356236363862393837616365616332653730383833376165323735333632
33303966643462626438303132383233663065353032643362306331663632616535346362643137
33323736393038356362356135363733326263303430633136383137653734363331623331373537
63353833336236626664616265383464633335623861353739623863653866323534343163393466
37666163383465383734643430386437613866616361393561336364346437346164313665363634
32303539613165613631353239666339336639303561303234336135326137613363656335353761
37616537353132353561303730326330386435636165303464616232633531613132623636653432
34353637336338626564353364613962393365333639653133356165343032326430616237396536
63653033326238336363353061303031393064616163656162376362663061643236643232333266
62653761383338323837383361383965323963393935626634333661356661396139356566303830
38313133313564353030643866313366646338376666396435356264373239636666373861363964
31363863393033633063326237666630666631393036656233336238353736343534633238393532
62663335393839613137373863346263396361386235346439323437353531626537313965663262
32636434386238323634616336336464333963633432333932653462666661393933666531303136
34363432386637323136656335306663656232626631663464396565303465323636326431343762
66383339336133636431353538643838663331373736636563626537623361363231633934663931
35366365333036366661363263393062373130383062646332636330326139343266666234323835
31636463633237373532363333306136396437356236303961623133353630653435396462313264
34336239373839663061346461313137393333306534646465366430393164646430613964323638
62666638346130383464633339396364643835323036303039656230343564623663313238326333
30653364613661306539373832616638636563653963353835343265383865306233356438303464
62303761363839316237653036316563303466373763323164316331356263656664393831396130
32636135306166366230353834313330383035383964353031663431613434623331616165613565
34623765663564636463363431643736613433316366393862353433323032616435303334396230
38356266623566356637373561343331366665373964373564616138306531356439

View File

@ -19,8 +19,9 @@
# - 2600:3c00::c
dns_servers:
- 127.0.0.1
- ::1
- 8.8.8.8
- 1.1.1.1
- 9.9.9.9
timezone: Etc/UTC

View File

@ -8,6 +8,8 @@ alertmanager_web_external_url: https://monitor.kill0.net/alertmanager
prometheus_web_route_prefix: /
alertmanager_web_route_prefix: /
prometheus_file_sd_config_d_files: []
prometheus_config:
global:
scrape_interval: 15s
@ -16,6 +18,10 @@ prometheus_config:
region: dallas
provider: linode
replica: A
remote_write:
- url: http://localhost:9009/api/v1/push
headers:
X-Scope-OrgID: kill0-net
alerting:
alertmanagers:
- static_configs:
@ -75,10 +81,13 @@ prometheus_config:
- dns.google
- vpn-home.kill0.net
- ping-home.kill0.net
- 10.255.0.16
- 169.254.0.2
- vpn1-sch.corp.nmi.com
- vpn-chi.ops.nmi.com
- vpn-ash.ops.nmi.com
- gp-chi.ops.nmi.com
- gp-ash.ops.nmi.com
- 172.16.100.1
- 172.16.100.2
- 172.16.10.16
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
@ -169,6 +178,82 @@ prometheus_config:
static_configs:
- targets:
- "localhost:10912"
- job_name: grafana
scrape_interval: 5s
static_configs:
- targets:
- "localhost:3002"
# - job_name: process-exporter
# scrape_interval: 5s
# static_configs:
# - targets:
# - "localhost:9256"
- job_name: loki
scrape_interval: 5s
static_configs:
- targets:
- "localhost:3100"
- job_name: promtail
scrape_interval: 5s
static_configs:
- targets:
- jump0.kill0.net:9080
- mine0.kill0.net:9080
- job_name: gitea
scrape_interval: 5s
static_configs:
- targets:
- localhost:3001
- job_name: karma
scrape_interval: 5s
static_configs:
- targets:
- localhost:8080
- job_name: kthxbye
scrape_interval: 5s
static_configs:
- targets:
- localhost:8081
- job_name: smokeping
scrape_interval: 5s
static_configs:
- targets:
- localhost:9374
- job_name: mimir
scrape_interval: 5s
static_configs:
- targets:
- localhost:9009
- &snmp_job
job_name: snmp
static_configs:
- targets:
- 172.16.100.1
- 172.16.100.2
metrics_path: /snmp
params:
auth: [public_v2]
module:
- if_mib
- ip_mib
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9116
- job_name: snmp_exporter
static_configs:
- targets:
- localhost:9116
- <<: *snmp_job
job_name: snmp-long
scrape_interval: 30s
scrape_timeout: 30s
static_configs:
- targets: []
rule_files:
- rules.yaml
@ -220,6 +305,10 @@ prometheus_rules_config:
expr: up{job=~"thanos.+"} == 0
labels:
severity: critical
- alert: Down
expr: up == 0
labels:
severity: critical
- alert: FileSystemUsage
expr: ((node_filesystem_size_bytes{mountpoint!~"fuse.lxcfs|tmpfs"} - node_filesystem_free_bytes) / node_filesystem_size_bytes) > 0.80
for: 1m
@ -246,9 +335,6 @@ prometheus_rules_config:
- alert: MaintenanceMode
expr: maintenance_mode == 1
for: 1m
#- alert: QuietHours
# expr: america_chicago_hour >= 22 or america_chicago_hour < 10
# for: 1m
- name: blackbox.rules
rules:
- alert: ServiceDown
@ -275,6 +361,13 @@ prometheus_rules_config:
# summary: Certificates expiring in < 14 days
summary: "{% raw %}Blackbox SSL certificate will expire soon (instance {{ $labels.instance }}){% endraw %}"
description: "{% raw %}SSL certificate expires in 14 days\n VALUE = {{ $value }}\n LABELS = {{ $labels }}{% endraw %}"
- name: snmp.rules
rules:
- alert: PortDown
expr: ifAdminStatus{ifName=~"(Gi|eth).+", ifAlias!~".+laptop|notebook.+"} == 1 and ifOperStatus == 2
for: 1m
- alert: PortFlapping
expr: changes(ifOperStatus{ifName=~"(Gi|eth).+"}[5m]) > 2
blackbox_exporter_config:
modules:
@ -304,34 +397,6 @@ blackbox_exporter_config:
http:
method: GET
# route:
# receiver: pushover-receiver
# mute_time_intervals:
# - quiet_hours
# routes:
# - receiver: blackhole
# match:
# alertname: MaintenanceMode
# #- receiver: blackhole
# # match:
# # alertname: QuietHours
# receivers:
# - name: blackhole
# - name: pushover-receiver
# pushover_configs:
# - token: "{{ vault_pushover_token }}"
# user_key: "{{ vault_pushover_user_key }}"
# inhibit_rules:
# - source_match:
# alertname: MaintenanceMode
# #- source_match:
# # alertname: QuietHours
# time_intervals:
# - name: quiet_hours
# times:
# - start_time: 03:00
# end_time: 15:00
alertmanager_config:
inhibit_rules:
- source_match:
@ -340,9 +405,13 @@ alertmanager_config:
- name: blackhole
- name: pushover-receiver
pushover_configs:
- token: agwd6wv7xveakykb8e5rz7rw3eg2v3
- token: "{{ vault_alertmanager_pushover_token }}"
user_key: 28G1x3lT4oUtlck50R1H3e6j8kDHjb
- name: discord
discord_configs:
- webhook_url: "{{ vault_alertmanager_discord_webhook_url }}"
route:
repeat_interval: 24h
receiver: pushover-receiver
routes:
- match:
@ -354,6 +423,8 @@ alertmanager_config:
- receiver: pushover-receiver
mute_time_intervals:
- quiet_hours
continue: true
- receiver: discord
time_intervals:
- name: quiet_hours
time_intervals:
@ -369,7 +440,7 @@ node_exporter_du_directories:
- /var/lib/loki
firewall_ipset_loki:
- 10.255.0.0/24
- 169.254.0.0/24
karma_config:
alertmanager:
@ -410,10 +481,116 @@ karma_config:
color: "#ff220c"
alertAcknowledgement:
enabled: true
#duration: 15m0s
#author: karma
#comment: ACK! This alert was acknowledged using karma on %NOW%
thanos_bucket_config: "{{ vault_thanos_bucket_config }}"
kthxbye_listen: :8081
loki_storage_config:
tsdb_shipper:
active_index_directory: "{{ loki_var_path }}/tsdb-index"
cache_location: "{{ loki_var_path }}/tsdb-cache"
gcs:
bucket_name: kill0-net-loki
service_account: "{{ vault_loki_gcs_service_account | string }}"
loki_schema_config:
configs:
- from: 2023-08-11
index:
period: 24h
prefix: index_
object_store: gcs
schema: v12
store: tsdb
- from: 2024-04-10
index:
period: 24h
prefix: index_
object_store: gcs
schema: v13
store: tsdb
loki_query_scheduler:
max_outstanding_requests_per_tenant: 32768
loki_querier:
max_concurrent: 16
loki_compactor:
working_directory: "{{ loki_var_path }}/retention"
delete_request_store: gcs
compaction_interval: 10m
retention_enabled: true
retention_delete_delay: 2h
retention_delete_worker_count: 150
loki_ruler:
alertmanager_url: http://localhost:9093
storage:
type: gcs
gcs:
bucket_name: kill0-net-loki
service_account: "{{ vault_loki_gcs_service_account | string }}"
ring:
kvstore:
store: inmemory
enable_api: true
rsyslog_d:
- name: loki
priority: 10
content: |
if $hostname == [ "ap0", "coresw0", "fw0", "power0", "172.16.100.1", "172.16.100.2" ] then {
action(
type="omfwd"
target="localhost"
port="1514"
protocol="tcp"
action.resumeretrycount="-1"
queue.type="linkedlist"
queue.size="1000000"
queue.filename="loki-fwd"
queue.saveonshutdown="on"
keepalive="on"
template="RSYSLOG_SyslogProtocol23Format"
tcp_framing="octet-counted"
)
}
smokeping_prober_config:
targets:
- hosts:
- dns.google
- vpn-home.kill0.net
- ping-home.kill0.net
- vpn1-sch.corp.nmi.com
- gp-chi.ops.nmi.com
- gp-ash.ops.nmi.com
- 169.254.0.2
- 172.16.100.1
- 172.16.100.2
- 172.16.10.16
network: ip4
- hosts:
- dns.google
- ping-home.kill0.net
- fc00::ffff:169.255.0.2
- fc00::ffff:169.255.0.16
network: ip6
mimir_common:
storage:
backend: gcs
gcs:
bucket_name: kill0-net-mimir
service_account: "{{ vault_mimir_gcs_service_account | string }}"
mimir_blocks_storage:
storage_prefix: blocks
mimir_alertmanager_storage:
storage_prefix: alertmanager
mimir_ruler_storage:
storage_prefix: ruler

View File

@ -0,0 +1,17 @@
$ANSIBLE_VAULT;1.1;AES256
35346264373635663161356339313438613932623165613239353162316265333231623434383030
6435323137313638633663356635373464393730663834320a346362633362323864373636346165
37363637663037653932313165653333643833376133383336363930623338333134623562353239
6430363062323865650a363330653031383666386637633333646339393064396330313037363239
30626538373432633031666264646236613936333965366430653031303131626161376633346435
63323165366666663362353661353634636339393930343862336132613466636131343861343835
64633531336139353961626565363434316230393739626531366661653132616566363234393036
35656331383038396665376236373531323931313632656331356235353664636264393664346131
38633038303364373166366633646330393636366134626437376662386235626233633831363062
32636461646661613734353739663934333365313932306363666464656236366634653032303031
34333032373935343366626537386231306666663934326664353432323338353235306231363464
64653561663662363064313436653036613038633033623737666335636331656461653535643864
62376539343761666366333331373164623230663639373231373763653938343535646166303639
31616463316364366130653033643935356461363938386264306162623933336338363365316162
63396436316338306136616265643562353931356239393661333161396537653366643765303031
64323639653263323837

View File

@ -1,57 +0,0 @@
---
nsd_linode_xfr:
- "{{ lookup('dig', 'axfr1.linode.com.') }}"
- "{{ lookup('dig', 'axfr2.linode.com.') }}"
- "{{ lookup('dig', 'axfr3.linode.com.') }}"
- "{{ lookup('dig', 'axfr4.linode.com.') }}"
- "{{ lookup('dig', 'axfr5.linode.com.') }}"
- "{{ lookup('dig', 'axfr1.linode.com./AAAA') }}"
- "{{ lookup('dig', 'axfr2.linode.com./AAAA') }}"
- "{{ lookup('dig', 'axfr3.linode.com./AAAA') }}"
- "{{ lookup('dig', 'axfr4.linode.com./AAAA') }}"
- "{{ lookup('dig', 'axfr5.linode.com./AAAA') }}"
nsd_provide_xfr:
- "{{ lookup('dig', 'axfr1.linode.com.') }} NOKEY"
- "{{ lookup('dig', 'axfr2.linode.com.') }} NOKEY"
- "{{ lookup('dig', 'axfr3.linode.com.') }} NOKEY"
- "{{ lookup('dig', 'axfr4.linode.com.') }} NOKEY"
- "{{ lookup('dig', 'axfr5.linode.com.') }} NOKEY"
- "{{ lookup('dig', 'axfr1.linode.com./AAAA') }} NOKEY"
- "{{ lookup('dig', 'axfr2.linode.com./AAAA') }} NOKEY"
- "{{ lookup('dig', 'axfr3.linode.com./AAAA') }} NOKEY"
- "{{ lookup('dig', 'axfr4.linode.com./AAAA') }} NOKEY"
- "{{ lookup('dig', 'axfr5.linode.com./AAAA') }} NOKEY"
firewall_dns_whitelist: "{{ nsd_linode_xfr }}"
firewall_ipset_dns: "{{ nsd_linode_xfr }}"
nsd_zones:
- name: cavi.cc
zonefile: cavi.cc.zone
provide-xfr: "{{ nsd_provide_xfr }}"
notify: "{{ nsd_provide_xfr }}"
- name: kill0.net
zonefile: kill0.net.zone
provide-xfr: "{{ nsd_provide_xfr }}"
notify: "{{ nsd_provide_xfr }}"
- name: kill0.com
zonefile: kill0.com.zone
provide-xfr: "{{ nsd_provide_xfr }}"
notify: "{{ nsd_provide_xfr }}"
- name: chill9.com
zonefile: chill9.com.zone
provide-xfr: "{{ nsd_provide_xfr }}"
notify: "{{ nsd_provide_xfr }}"
- name: chill9.net
zonefile: chill9.net.zone
provide-xfr: "{{ nsd_provide_xfr }}"
notify: "{{ nsd_provide_xfr }}"
- name: confabulator.net
zonefile: confabulator.net.zone
provide-xfr: "{{ nsd_provide_xfr }}"
notify: "{{ nsd_provide_xfr }}"
- name: ctrl-v.org
zonefile: ctrl-v.org.zone
provide-xfr: "{{ nsd_provide_xfr }}"
notify: "{{ nsd_provide_xfr }}"

View File

@ -5,7 +5,7 @@ grafana_package_state: present
grafana_service_name: grafana-server.service
grafana_service_state: started
grafana_service_enabled: yes
grafana_service_enabled: true
grafana_etc_path: /etc/grafana
grafana_config_path: "{{ grafana_etc_path }}/grafana.ini"
@ -23,20 +23,28 @@ grafana_config:
http_addr: localhost
http_port: "{{ grafana_port }}"
grafana_ssl_enabled: yes
grafana_ssl_certificate: "/etc/letsencrypt/live/{{ grafana_domain }}/fullchain.pem"
grafana_ssl_certificate_key: "/etc/letsencrypt/live/{{ grafana_domain }}/privkey.pem"
#grafana_ssl_dhparam: "/etc/letsencrypt/ssl-dhparams.pem"
grafana_ssl_enabled: true
grafana_ssl_certificate: "/var/lib/lego/certificates/{{ grafana_domain }}.crt"
grafana_ssl_certificate_key: "/var/lib/lego/certificates/{{ grafana_domain }}.key"
grafana_datasources:
apiVersion: 1
datasources:
deleteDatasources:
- name: influxdb
type: influxdb
orgId: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:8086
database: telegraf
isDefault: yes
orgId: 1
url: http://localhost:9090
isDefault: true
version: 1
- name: Thanos
type: prometheus
access: proxy
orgId: 1
url: http://localhost:10913
version: 1
grafana_dashboards:

View File

@ -18,25 +18,54 @@ certbot_certificates:
- domains:
- cavi.cc
email: rcavicchioni@gmail.com
- domains:
- proxy.kill0.net
email: rcavicchioni@gmail.com
lego_user_environ:
GCE_PROJECT: kill0-net
GCE_SERVICE_ACCOUNT_FILE: "{{ lego_etc_dir_path }}/credentials.json"
lego_bin_user_args:
- --email rcavicchioni@gmail.com
- --dns gcloud
lego_bin_renew_user_args:
- --renew-hook "systemctl reload nginx"
lego_domains:
- name: cavi.cc
- name: dl.kill0.net
- name: git.kill0.net
- name: monitor.kill0.net
- name: proxy.kill0.net
- name: stats.kill0.net
autossh_config: []
wireguard_interfaces:
wg0:
address: 10.255.0.1/32
address:
- 169.254.0.1/24
- fc00::ffff:169.254.0.1/64
private_key: "{{ vault_wireguard_private_keys.wg0 }}"
listen_port: 51820
table: 'off'
wg1:
address:
- 192.168.255.1/24
- 2600:3c00:e000:343::1/128
- fc01::ffff:192.168.255.1/128
- 2600:3c00:e000:343::ffff:192.168.255.1/128
private_key: "{{ vault_wireguard_private_keys.wg1 }}"
listen_port: 51821
restic_tidy_enabled: true
nginx_htpasswd_files: "{{ vault_nginx_htpasswd_files }}"
nginx_vhosts:
cavicc:
server:
- server_name: cavi.cc
root: /var/www/cavicc
listen:
@ -49,7 +78,66 @@ nginx_vhosts:
- server_name: cavi.cc
root: /var/www/cavicc
listen:
- 443 ssl http2
- "[::]:443 ssl http2"
ssl_certificate: /etc/letsencrypt/live/cavi.cc/fullchain.pem
ssl_certificate_key: /etc/letsencrypt/live/cavi.cc/privkey.pem
- 443 ssl
- "[::]:443 ssl"
ssl_certificate: /var/lib/lego/certificates/cavi.cc.crt
ssl_certificate_key: /var/lib/lego/certificates/cavi.cc.key
# ssl_certificate: /etc/letsencrypt/live/cavi.cc/fullchain.pem
# ssl_certificate_key: /etc/letsencrypt/live/cavi.cc/privkey.pem
raw: |
location / {
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
}
proxy:
upstream:
- name: loki_backend
server:
- localhost:3100
#- name: prometheus_backend
# server:
# - localhost:9090
map:
- name: $http_upgrade
variable: $connection_upgrade
content:
default: upgrade
'': close
server:
- server_name: proxy.kill0.net
root: /var/empty
listen:
- 80
- "[::]:80"
raw: |
location / {
return 301 https://$server_name$request_uri;
}
- server_name: proxy.kill0.net
root: /var/empty
listen:
- 443 ssl
- "[::]:443 ssl"
# ssl_certificate: /etc/letsencrypt/live/proxy.kill0.net/fullchain.pem
# ssl_certificate_key: /etc/letsencrypt/live/proxy.kill0.net/privkey.pem
ssl_certificate: /var/lib/lego/certificates/proxy.kill0.net.crt
ssl_certificate_key: /var/lib/lego/certificates/proxy.kill0.net.key
raw: |
auth_basic "Proxy";
auth_basic_user_file /etc/nginx/proxy.htpasswd;
location / {
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
}
location /loki {
proxy_http_version 1.1;
proxy_pass http://loki_backend;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
}
location /prometheus/ {
proxy_pass http://prometheus_backend/;
}

View File

@ -161,6 +161,8 @@ openvpn_certificates:
wireguard_interfaces:
wg0:
address: 10.255.0.16/32
address:
- 169.254.0.2/24
- fc00::ffff:169.254.0.2/64
private_key: "{{ vault_wireguard_private_keys.wg0 }}"
listen_port: 51820

View File

@ -1,22 +0,0 @@
---
#network_interfaces:
# - name: eth0
# address:
# - 45.56.123.101/24
# - 2600:3c00::f03c:91ff:fed5:eeec/64
# gateway:
# - 45.56.123.1
# - fe80::1
firewall_allowed_tcp_ports:
v4:
- 443
- 80
- 8186
v6:
- 443
- 80
- 8186
postfix_sasl_passwd_map:
"[smtp.fastmail.com]:465": "foo:bar"

View File

@ -1,17 +0,0 @@
---
keepalived_vrrp_instances:
VI_1:
state: MASTER
interface: eth0
virtual_router_id: 51
priority: 254
authentication:
auth_type: PASS
auth_pass: asdf
unicast_peer: |
{{ groups['rabbitmq_servers'] | map('extract', hostvars, ['ansible_eth0', 'ipv4', 'address']) | difference([ansible_default_ipv4.address])| list }}
virtual_ipaddress:
- 10.100.100.20/24
track_script:
- chk_rabbitmq
- chk_amqp_port

View File

@ -1,17 +0,0 @@
---
keepalived_vrrp_instances:
VI_1:
state: BACKUP
interface: eth0
virtual_router_id: 51
priority: 253
authentication:
auth_type: PASS
auth_pass: asdf
unicast_peer: |
{{ groups['rabbitmq_servers'] | map('extract', hostvars, ['ansible_eth0', 'ipv4', 'address']) | difference([ansible_default_ipv4.address])| list }}
virtual_ipaddress:
- 10.100.100.20/24
track_script:
- chk_rabbitmq
- chk_amqp_port

View File

@ -1,17 +0,0 @@
---
keepalived_vrrp_instances:
VI_1:
state: BACKUP
interface: eth0
virtual_router_id: 51
priority: 252
authentication:
auth_type: PASS
auth_pass: asdf
unicast_peer: |
{{ groups['rabbitmq_servers'] | map('extract', hostvars, ['ansible_eth0', 'ipv4', 'address']) | difference([ansible_default_ipv4.address])| list }}
virtual_ipaddress:
- 10.100.100.20/24
track_script:
- chk_rabbitmq
- chk_amqp_port

View File

@ -1,7 +0,0 @@
---
#network_interfaces:
# - name: enp1s0
# address:
# - 192.168.124.124/24
# gateway4: 192.168.124.1
#

View File

@ -21,9 +21,6 @@ all:
monitor_servers:
hosts:
jump0.kill0.net
name_servers:
hosts:
jump0.kill0.net
linode:
hosts:
mine0.kill0.net:

View File

@ -3,25 +3,59 @@
become: true
roles:
- common
- role: network
tags:
- network
- netplan
- util
- sudo
- hostsfile
- certs
- role: rsyslog
tags:
- rsyslog
- syslog
- logging
- users
- network
- dns
- role: firewall
tags:
- firewall
- iptables
- openssh
- role: wireguard
tags:
- wireguard
- vpn
- chrony
- unattended-upgrades
- postfix
- restic
- node_exporter
- blackbox_exporter
- mtail
- role: node_exporter
tags:
- prometheus
- monitoring
- role: blackbox_exporter
tags:
- prometheus
- monitoring
- role: mtail
tags:
- prometheus
- monitoring
- supervisor
# - vector
- role: promtail
tags:
- promtail
- loki
- logging
- role: cloudflared
tags:
- cloudflared
- zerotrust
- access
- vpn
- hosts: minecraft_servers
become: true
roles:
@ -34,40 +68,98 @@
- hosts: git_servers
become: true
roles:
- role: certbot
tags:
- tls
- role: nginx
tags:
- nginx
- certbot
- role: gitea
tags:
- gitea
- git
- hosts: stats_servers
become: true
roles:
- role: certbot
tags:
- tls
- role: nginx
tags:
- nginx
- certbot
- influxdb
- role: grafana
tags:
- grafana
- monitoring
- o11y
- hosts: monitor_servers
become: true
roles:
- certbot
- role: nginx
tags:
- nginx
- role: prometheus
tags:
- prometheus
- monitoring
- alertmanager
- blackbox_exporter
- pushgateway
- role: alertmanager
tags:
- prometheus
- monitoring
- role: blackbox_exporter
tags:
- prometheus
- monitoring
- role: pushgateway
tags:
- prometheus
- monitoring
- role: karma
tags:
- prometheus
- monitoring
- role: kthxbye
tags:
- prometheus
- monitoring
- role: thanos
tags:
- prometheus
- thanos
- monitoring
- hosts: name_servers
become: true
roles:
- nsd
- role: loki
tags:
- loki
- logging
- role: logcli
tags:
- logcli
- loki
- logging
- role: smokeping_prober
tags:
- prometheus
- monitoring
- smokeping
- role: mimir
tags:
- prometheus
- mimir
- monitoring
- role: snmp_exporter
tags:
- prometheus
- snmp_exporter
- monitoring
- role: lego
tags:
- acme
- certificates
- lego
- letsencrypt
- pki
- tls
# vim:ft=yaml.ansible:

View File

@ -1,22 +1,35 @@
---
certbot_package_name: certbot
certbot_package_state: present
certbot_package_state: latest
certbot_plugins:
- certbot-dns-cloudflare
- certbot-dns-digitalocean
- certbot-dns-dnsimple
- certbot-dns-dnsmadeeasy
- certbot-dns-gehirn
- certbot-dns-google
- certbot-dns-linode
- certbot-dns-luadns
- certbot-dns-nsone
- certbot-dns-ovh
- certbot-dns-rfc2136
- certbot-dns-route53
- certbot-dns-sakuracloud
certbot_service_name: certbot.service
certbot_bin_path: /usr/local/bin
certbot_path: "{{ certbot_bin_path }}/certbot"
certbot_timer_name: certbot.timer
certbot_timer_state: started
certbot_timer_enabled: yes
certbot_timer_enabled: true
certbot_cron_state: present
certbot_cron_user: root
certbot_cron_file_path: /etc/cron.d/certbot
certbot_cron_env:
path: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
shell: /bin/sh
certbot_cron_command: test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
certbot_cron_hour: "*/12"
certbot_cron_minute: "0"
certbot_etc_path: /etc/letsencrypt
certbot_live_path: "{{ certbot_etc_path }}/live"
certbot_system_timer_on_calender: "*-*-* 00,12:00:00"
certbot_system_timer_randomized_delay_sec: 43200
certbot_credential_path: /root/.secrets/certbot

View File

@ -1,6 +1,4 @@
---
- name: systemd daemon-reload
systemd:
name: "{{ certbot_service_name }}"
daemon_reload: yes
state: restarted
ansible.builtin.systemd:
daemon_reload: true

View File

@ -1,4 +0,0 @@
---
- name: configure ppa
apt_repository:
repo: "ppa:certbot/certbot"

View File

@ -0,0 +1,23 @@
---
- name: configure linode credentials
ansible.builtin.copy:
dest: "{{ certbot_credential_path }}/linode.ini"
owner: root
group: root
mode: 0600
content: "{{ certbot_dns_linode_credentials }}"
no_log: true
- name: certbot (linode)
ansible.builtin.shell: >
certbot certonly \
--dns-linode \
--dns-linode-credentials "{{ certbot_credential_path }}/linode.ini" \
--quiet \
--agree-tos \
--noninteractive \
--email "{{ item.email }}" \
--domain "{{ item.domains | join(',') }}"
args:
creates: "{{ certbot_live_path }}/{{ item.domains | first }}/cert.pem"
loop: "{{ certbot_certificates | default([]) }}"

View File

View File

@ -1,9 +1 @@
---
- name: "determine if certificate for {{ item.domains | join(', ') }}"
stat:
path: "/etc/letsencrypt/live/{{ item.domains | first }}/cert.pem"
register: st
- name: "request certificate for {{ item.domains | join(', ') }}"
command: "certbot certonly -q --webroot -w {{ certbot_challenge_webroot_path }} --agree-tos --noninteractive --email {{ item.email }} -d {{ item.domains | join(',') }}"
when: not st.stat.exists

View File

@ -23,65 +23,51 @@
paths:
- tasks
- name: install certbot modules
package:
- name: install certbot
ansible.builtin.pip:
name: "{{ certbot_package_name }}"
state: "{{ certbot_package_state }}"
- name: configure challenge webroot
file:
path: "{{ certbot_challenge_webroot_path }}"
state: "directory"
- name: install certbot plugins
ansible.builtin.pip:
name: "{{ certbot_plugins }}"
state: latest
- name: create credential path
ansible.builtin.file:
path: "{{ certbot_credential_path }}"
owner: root
group: root
mode: 0755
mode: 0700
state: directory
- name: request certificates
ansible.builtin.include_tasks: "issue.yaml"
loop: "{{ certbot_certificates }}"
- name: configure systemd timer
block:
- name: create systemd timer override directory
file:
path: "/etc/systemd/system/{{ certbot_timer_name }}.d"
owner: root
group: root
mode: 0755
state: directory
- name: include linode tasks
ansible.builtin.include_tasks: configure-linode.yaml
- name: configure systemd timer options
template:
src: certbot.timer.j2
dest: "/etc/systemd/system/{{ certbot_timer_name }}.d/override.conf"
- name: configure renewal service
ansible.builtin.template:
src: certbot.service.j2
dest: "/etc/systemd/system/certbot.service"
owner: root
group: root
mode: 0644
notify: systemd daemon-reload
- name: enable the timer
systemd:
name: "{{ certbot_timer_name }}"
state: "{{ certbot_timer_state }}"
enabled: "{{ certbot_timer_enabled }}"
when: ansible_service_mgr == "systemd"
- name: configure cron job
block:
- name: configure env
cron:
name: "{{ item.key | upper }}"
env: yes
job: "{{ item.value }}"
user: "{{ certbot_cron_user }}"
cron_file: "{{ certbot_cron_file_path }}"
state: "{{ certbot_cron_state }}"
loop: "{{ certbot_cron_env | dict2items }}"
- name: create job
cron:
name: certbot
user: "{{ certbot_cron_user }}"
hour: "{{ certbot_cron_hour }}"
minute: "{{ certbot_cron_minute }}"
cron_file: "{{ certbot_cron_file_path }}"
job: "{{ certbot_cron_command }}"
state: "{{ certbot_cron_state }}"
- name: configure renewal timer
ansible.builtin.template:
src: certbot.timer.j2
dest: "/etc/systemd/system/certbot.timer"
owner: root
group: root
mode: 0644
notify: systemd daemon-reload
- name: manage timer
ansible.builtin.systemd:
name: "{{ certbot_timer_name }}"
enabled: "{{ certbot_timer_enabled }}"
state: "{{ certbot_timer_state }}"

View File

@ -0,0 +1,14 @@
# {{ ansible_managed }}
[Unit]
Description=Certbot renewal
After=network-online.target
Wants=network-online.target
Wants={{ certbot_timer_name }}
[Service]
Type=oneshot
ExecStart={{ certbot_path }} --quiet renew
[Install]
WantedBy=multi-user.target

View File

@ -1,5 +1,12 @@
# {{ ansible_managed }}
[Unit]
Description=Certbot renewal
Requires={{ certbot_service_name }}
[Timer]
OnCalendar={{ certbot_system_timer_on_calender }}
RandomizedDelaySec={{ certbot_system_timer_randomized_delay_sec }}
[Install]
WantedBy=timers.target

View File

@ -0,0 +1,10 @@
---
cloudflared_package_name: cloudflared
cloudflared_package_state: present
cloudflared_service_name: cloudflared.service
cloudflared_service_enabled: true
cloudflared_service_state: started
cloudflared_apt_repository_repo: "deb [signed-by=/etc/apt/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared {{ ansible_lsb.codename }} main"
cloudflared_apt_repository_state: present

Binary file not shown.

View File

@ -0,0 +1,14 @@
---
- name: trust cloudflare apt respository key
ansible.builtin.copy:
src: "cloudflare-main.gpg"
dest: "/etc/apt/keyrings/cloudflare-main.gpg"
owner: root
group: root
mode: 0644
- name: configure cloudflare apt repository
ansible.builtin.apt_repository:
repo: "{{ cloudflared_apt_repository_repo }}"
state: "{{ cloudflared_apt_repository_state | default('present') }}"
filename: cloudflared

View File

@ -0,0 +1,5 @@
---
- name: install package
ansible.builtin.package:
name: "{{ cloudflared_package_name }}"
state: "{{ cloudflared_package_state | default('present') }}"

View File

@ -0,0 +1,28 @@
---
- name: gather os specific variables
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- vars
- name: include os specific tasks
ansible.builtin.include_tasks: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- tasks
- ansible.builtin.include_tasks: install.yaml
# - ansible.builtin.include_tasks: configure.yaml

View File

View File

@ -1,6 +1,6 @@
---
cron_service_name: cron
timezone: UTC
# vim:ft=yaml.ansible:
# common_cron_service_name: cron.service
# common_timezone: Etc/UTC
# common_locale: C.UTF-8
# common_apt_update_cache: true
# common_apt_cache_valid_time: 3600

View File

@ -1,8 +1,5 @@
---
- name: restart cron
service:
name: "{{ cron_service_name }}"
ansible.builtin.service:
name: "{{ common_cron_service_name | default('cron.service') }}"
state: restarted
when: cron_service_name is defined
# vim:ft=yaml.ansible:

View File

@ -1,6 +1,6 @@
---
- name: run apt-get update
apt:
update_cache: yes
cache_valid_time: 3600
ansible.builtin.apt:
update_cache: "{{ common_apt_update_cache | default(true) }}"
cache_valid_time: "{{ common_apt_cache_valid_time | default(3600) }}"
changed_when: false

View File

@ -24,12 +24,17 @@
- tasks
- name: set hostname
hostname:
name: "{{ hostname | default(inventory_hostname) }}"
ansible.builtin.hostname:
name: "{{ common_hostname | default(inventory_hostname) }}"
- name: configure system timezone
timezone:
name: "{{ timezone }}"
ansible.builtin.timezone:
name: "{{ common_timezone | default('Etc/UTC') }}"
notify: restart cron
- name: configure system locale
ansible.builtin.command:
cmd: "localectl set-locale {{ common_locale | default('C.UTF-8') }}"
when: ansible_facts.env.LANG != (common_locale | default('C.UTF-8'))
# vim:ft=yaml.ansible:

View File

@ -4,5 +4,5 @@ dl_server_root: /var/www/dl
dl_access_log: /var/log/nginx/dl.access.log
dl_error_log: /var/log/nginx/dl.error.log
dl_ssl_enabled: false
dl_ssl_certificate: "/etc/letsencrypt/live/{{ dl_server_name }}/fullchain.pem"
dl_ssl_certificate_key: "/etc/letsencrypt/live/{{ dl_server_name }}/privkey.pem"
dl_ssl_certificate: "/var/lib/lego/certificates/{{ dl_server_name }}.crt"
dl_ssl_certificate_key: "/var/lib/lego/certificates/{{ dl_server_name }}.key"

View File

@ -26,10 +26,13 @@ server {
{% if dl_ssl_enabled is defined and
dl_ssl_enabled %}
server {
listen 443 ssl http2;
listen 443 ssl;
{% if ansible_all_ipv6_addresses | length %}
listen [::]:443 ssl http2;
listen [::]:443 ssl;
{% endif %}
http2 on;
server_name {{ dl_server_name }};
access_log {{ dl_access_log }} main;
error_log {{ dl_error_log }} warn;
@ -46,6 +49,10 @@ server {
ssl_dhparam {{ dl_ssl_dhparam }};
{% endif %}
location / {
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
}
location ~ ^\/~(.+?)(\/.*)?$ {
alias /home/$1/public_html$2;
index index.html index.htm;

View File

@ -0,0 +1,12 @@
---
- name: reload docker
ansible.builtin.service:
name: "{{ docker_service_name | default('docker') }}"
state: reloaded
- name: restart docker
ansible.builtin.service:
name: "{{ docker_service_name | default('docker') }}"
state: restarted
listen:
- restart nftables

View File

@ -130,6 +130,9 @@
{% endif %}
{% if firewall_ipset_syslog is defined %}
-A INPUT -p tcp -m tcp --dport 514 -m set --match-set syslog6 src -m comment --comment "accept syslog 514/tcp6" -j LOG_ACCEPT
-A INPUT -p udp -m udp --dport 514 -m set --match-set syslog6 src -m comment --comment "accept syslog 514/udp6" -j LOG_ACCEPT
-A INPUT -p tcp -m tcp --dport 1514 -m set --match-set syslog6 src -m comment --comment "accept syslog 1514/tcp6" -j LOG_ACCEPT
-A INPUT -p udp -m udp --dport 1514 -m set --match-set syslog6 src -m comment --comment "accept syslog 1514/udp6" -j LOG_ACCEPT
{% endif %}
{% if firewall_ipset_influxdb is defined %}
-A INPUT -p tcp -m tcp --dport 8086 -m set --match-set influxdb6 src -m comment --comment "accept influxdb 8086/tcp6" -j LOG_ACCEPT

View File

@ -117,6 +117,8 @@
{% if firewall_ipset_syslog is defined %}
-A INPUT -p tcp -m tcp --dport 514 -m set --match-set syslog4 src -m comment --comment "accept syslog 514/tcp" -j LOG_ACCEPT
-A INPUT -p udp -m udp --dport 514 -m set --match-set syslog4 src -m comment --comment "accept syslog 514/udp" -j LOG_ACCEPT
-A INPUT -p tcp -m tcp --dport 1514 -m set --match-set syslog4 src -m comment --comment "accept syslog 1514/tcp" -j LOG_ACCEPT
-A INPUT -p udp -m udp --dport 1514 -m set --match-set syslog4 src -m comment --comment "accept syslog 1514/udp" -j LOG_ACCEPT
{% endif %}
{% if firewall_ipset_influxdb is defined %}
-A INPUT -p tcp -m tcp --dport 8086 -m set --match-set influxdb4 src -m comment --comment "accept influxdb 8086/tcp" -j LOG_ACCEPT

View File

@ -53,6 +53,8 @@ gitea_config:
colorize: no
service:
register_manual_confirm: true
metrics:
enabled: true
gitea_var_tree:
- "{{ gitea_var_path }}"
@ -62,6 +64,6 @@ gitea_var_tree:
- "{{ gitea_var_path }}/backup"
gitea_ssl_enabled: yes
gitea_ssl_certificate: "/etc/letsencrypt/live/{{ gitea_domain }}/fullchain.pem"
gitea_ssl_certificate_key: "/etc/letsencrypt/live/{{ gitea_domain }}/privkey.pem"
gitea_ssl_certificate: "/var/lib/lego/certificates/{{ gitea_domain }}.crt"
gitea_ssl_certificate_key: "/var/lib/lego/certificates/{{ gitea_domain }}.key"
#gitea_ssl_dhparam: "/etc/letsencrypt/ssl-dhparams.pem"

View File

@ -37,10 +37,13 @@ server {
{% if gitea_ssl_enabled is defined and
gitea_ssl_enabled %}
server {
listen 443 ssl http2;
listen 443 ssl;
{% if ansible_all_ipv6_addresses | length %}
listen [::]:443 ssl http2;
listen [::]:443 ssl;
{% endif %}
http2 on;
server_name {{ gitea_domain }};
access_log /var/log/nginx/gitea.access.log main;
@ -62,6 +65,7 @@ server {
}
location / {
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
limit_req zone=req_bad_actors burst=10 nodelay;
proxy_pass http://gitea_backend;
}

View File

@ -8,6 +8,8 @@ grafana_service_state: started
grafana_service_enabled: true
grafana_etc_path: /etc/grafana
grafana_var_path: /var/lib/grafana
grafana_dashboard_path: "{{ grafana_var_path }}/dashboards"
grafana_config_path: "{{ grafana_etc_path }}/grafana.ini"
grafana_provisioning_path: /etc/grafana/provisioning
@ -24,36 +26,15 @@ grafana_config:
http_port: "{{ grafana_port }}"
grafana_ssl_enabled: true
grafana_ssl_certificate: "/etc/letsencrypt/live/{{ grafana_domain }}/fullchain.pem"
grafana_ssl_certificate_key: "/etc/letsencrypt/live/{{ grafana_domain }}/privkey.pem"
grafana_ssl_certificate: "/var/lib/lego/certificates/{{ grafana_domain }}.crt"
grafana_ssl_certificate_key: "/var/lib/lego/certificates/{{ grafana_domain }}.key"
# grafana_ssl_dhparam: "/etc/letsencrypt/ssl-dhparams.pem"
grafana_user_dashboard_path: files/grafana/dashboards/
grafana_datasources:
apiVersion: 1
datasources:
- name: influxdb
type: influxdb
access: proxy
url: http://localhost:8086
database: telegraf
isDefault: true
version: 1
{}
grafana_dashboards:
apiVersion: 1
providers:
- name: ansible
folder: Built-in
type: file
options:
path: /var/lib/grafana/dashboards
grafana_dashboard_files:
- connectivity.json
- home-networking.json
- iptables.json
- nginx.json
- processes.json
- switching.json
- system.json
- ups.json
{}

View File

View File

@ -55,11 +55,12 @@
- name: provision datasources
ansible.builtin.copy:
dest: "{{ grafana_provisioning_path }}/datasources/datasource.yaml"
dest: "{{ grafana_provisioning_path }}/datasources/ansible.yaml"
content: "{{ grafana_datasources | to_nice_yaml }}"
owner: root
group: "{{ grafana_group }}"
mode: 0640
notify: restart grafana
- name: create dashboard directory
ansible.builtin.file:
@ -71,20 +72,21 @@
- name: provision dashboards
ansible.builtin.copy:
dest: "{{ grafana_provisioning_path }}/dashboards/dashboards.yaml"
dest: "{{ grafana_provisioning_path }}/dashboards/ansible.yaml"
content: "{{ grafana_dashboards | to_nice_yaml }}"
owner: root
group: "{{ grafana_group }}"
mode: 0640
notify: restart grafana
- name: upload user dashboards
ansible.builtin.copy:
src: "files/grafana/dashboards/{{ item }}"
dest: "/var/lib/grafana/dashboards/{{ item | basename }}"
owner: "{{ grafana_user }}"
group: "{{ grafana_group }}"
mode: 0644
loop: "{{ grafana_dashboard_files | default([]) }}"
ansible.posix.synchronize:
src: "{{ grafana_user_dashboard_path }}"
dest: "{{ grafana_dashboard_path }}/"
owner: false
group: false
delete: true
notify: restart grafana
- name: manage service
ansible.builtin.service:

View File

@ -1,3 +1,4 @@
---
- name: configure nginx
ansible.builtin.template:
src: nginx.conf.j2

View File

@ -6,6 +6,11 @@ upstream grafana_backend {
server 127.0.0.1:{{ grafana_port }};
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
{% if ansible_all_ipv6_addresses | length %}
@ -32,10 +37,13 @@ server {
{% if grafana_ssl_enabled is defined and
grafana_ssl_enabled %}
server {
listen 443 ssl http2;
listen 443 ssl;
{% if ansible_all_ipv6_addresses | length %}
listen [::]:443 ssl http2;
listen [::]:443 ssl;
{% endif %}
http2 on;
server_name {{ grafana_domain }};
access_log /var/log/nginx/grafana.access.log main;
@ -59,7 +67,12 @@ server {
}
location / {
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
limit_req zone=req_bad_actors burst=10 nodelay;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://grafana_backend;
}
}

View File

@ -0,0 +1,130 @@
---
lego_go_arch_map:
i386: '386'
x86_64: 'amd64'
lego_go_arch: "{{ lego_go_arch_map[ansible_architecture] | default('amd64') }}"
lego_version: 4.16.1
# curl -L -s https://github.com/go-acme/lego/releases/download/v4.14.2/lego_4.14.2_checksums.txt | awk '{ printf "%s: sha256:%s\n", $2, $1 }' | sort
lego_checksums:
lego_v4.16.1_darwin_amd64.tar.gz: sha256:2555ae9c3976bb6d3d783819c7012572fecbd309330a5010dd1f9882332fa349
lego_v4.16.1_darwin_arm64.tar.gz: sha256:609789c72a9c8e7f4f5916aa08440a299f63c75fee14f42e61904cda01f0736f
lego_v4.16.1_freebsd_386.tar.gz: sha256:41408e99b9f1fb823e53d53feb15cd0cb929ad3cd093b9010c7af7ba71077e55
lego_v4.16.1_freebsd_amd64.tar.gz: sha256:9353c009c4801d7646b3c99803a77aa0f2a041f802c8794d16ba4b31af4a8dfb
lego_v4.16.1_freebsd_arm64.tar.gz: sha256:c39a98c8401a0fe506ac206ae5ef5e167d1dcd9e7f6bb27def954089c0f99839
lego_v4.16.1_freebsd_armv5.tar.gz: sha256:b96b88a84aa51e77da8d4b92f6920b1890ae47c53e59c477d7b3b556b1273446
lego_v4.16.1_freebsd_armv6.tar.gz: sha256:ea41ff383adcf98ff70a65e6da49c7c82d16071f3057e44e1c41b2fe34543f19
lego_v4.16.1_freebsd_armv7.tar.gz: sha256:6e883cb6c12a7bb703018e85623bf2c548eebfd01047bda75820264bb8ff85f2
lego_v4.16.1_linux_386.tar.gz: sha256:3eb2e75cc474b0a0b9a990ddd9c70e7c9631a150487d8434e03a295cfd4b0caa
lego_v4.16.1_linux_amd64.tar.gz: sha256:e9826f955337c1fd825d21b073168692711985e25db013ff6b00e9a55a9644b4
lego_v4.16.1_linux_arm64.tar.gz: sha256:0669037c2bcff11d0599765c63f186dfc98397b6a827f5cb2e48e9e69c12626c
lego_v4.16.1_linux_armv5.tar.gz: sha256:33ff82f3aff43825b0fca7f173825c6cc6b02d9e5607dec147ba172e62c883c9
lego_v4.16.1_linux_armv6.tar.gz: sha256:3532a986667fe4ba42366fe09a5487c273c168779f803d878b4cc990d29c5c94
lego_v4.16.1_linux_armv7.tar.gz: sha256:b9727c1282a320c22d9fbdbdb59e35810c8b7f94d1382bfa87d564429a89629e
lego_v4.16.1_linux_mips64_hardfloat.tar.gz: sha256:055914fab0e26432590fccb54e400e1c0b1ad8d9932f0d418ed9ee7857765eed
lego_v4.16.1_linux_mips64_softfloat.tar.gz: sha256:6d79cde9f3f7598276e9f82d2c0fe94b541b35112c0d03797cae4bd9de289d78
lego_v4.16.1_linux_mips64le_hardfloat.tar.gz: sha256:5a2421aed70c009d746eff8ffb8a1429dbfdda9c60d08790b53b88d7d4e0b270
lego_v4.16.1_linux_mips64le_softfloat.tar.gz: sha256:c1e8afedc29d18e7cb6da4d42c77d41b11041f58637e453be1ac70f65dfba0bc
lego_v4.16.1_linux_mips_hardfloat.tar.gz: sha256:07bcd8f03dda24e7db4ef0be065680a8db2d1ec7b217aea2c4ee7f6a6d731928
lego_v4.16.1_linux_mips_softfloat.tar.gz: sha256:0367bd328a9355b0191ae0f1b77a20e6a7f6c84a0a65d0a7e4a5f240e7737ed4
lego_v4.16.1_linux_mipsle_hardfloat.tar.gz: sha256:49c6117c24e351921e9fdfc0fa01dc7dd007001602b4743f2854b85dde7dd410
lego_v4.16.1_linux_mipsle_softfloat.tar.gz: sha256:e5771a43504deab162291c957c1cf549e287c15f645712c08e56f08e5ed97d4c
lego_v4.16.1_openbsd_386.tar.gz: sha256:7aaa14b081b8c2d18717c463b6ecea434c963366c82ad9824bcf61750b130c73
lego_v4.16.1_openbsd_amd64.tar.gz: sha256:4249afea73a1f8cdec964a0471e841103d6575f6d8549005ec2c06efa063d0fe
lego_v4.16.1_openbsd_arm64.tar.gz: sha256:4e94b6714bfed91c06e7365da1da36624126b323dc2c0fdabe7fd3fb155f7cb5
lego_v4.16.1_solaris_amd64.tar.gz: sha256:e9d33547a2671636bf02148677bd790996fb94688b0a055393675c645de150ec
lego_v4.16.1_windows_386.zip: sha256:980e5d8e6afb700f28c9b9ab539141c45fbd556e12c5b3deb114d7db056d7f0f
lego_v4.16.1_windows_amd64.zip: sha256:2716e8cc14facd60d804f849c1aeff6bb31bfa09719905d8f65ec801ead628ca
lego_v4.16.1_windows_arm64.zip: sha256:28179af7c79f01e8347dcaab65fba5b70abd36dcd0a2bcc2d6803cb177f2b72c
lego_v4.16.1_windows_armv5.zip: sha256:4017c2f1cbd8c838377e6816daccabc96d063b44749407c68e985af7f04fff6c
lego_v4.16.1_windows_armv6.zip: sha256:099992c58012440f693206ab0ea23dd1794f4093fd2ad62b744d6a08e3749efd
lego_v4.16.1_windows_armv7.zip: sha256:4b9557137c5d24996c3b44c223edf9495f0ea7df7f9a2d5da5f3dbc8f8ec8b50
lego_github_rel_path: go-acme/lego
lego_github_project_url: "https://github.com/{{ lego_github_rel_path }}"
lego_release_file: "lego_v{{ lego_version }}_{{ ansible_system | lower }}_{{ lego_go_arch }}.tar.gz"
lego_release_url: "{{ lego_github_project_url }}/releases/download/v{{ lego_version }}/{{ lego_release_file }}"
lego_download_path: "/tmp/{{ lego_release_file }}"
lego_opt_dir_path: "/opt/lego-{{ lego_version }}"
lego_unarchive_dest_path: /tmp/
lego_extracted_path: "/tmp"
lego_binaries:
- lego
lego_user_name: lego
lego_user_shell: /usr/sbin/nologin
lego_user_home: "{{ lego_var_dir_path }}"
lego_group_name: lego
lego_bin_dir_path: /usr/local/bin
lego_bin_path: "{{ lego_bin_dir_path }}/lego"
lego_etc_dir_path: /etc/lego
lego_etc_dir_path_owner: "{{ lego_user_name }}"
lego_etc_dir_path_group: "{{ lego_group_name }}"
lego_etc_dir_path_mode: ugo=rx
lego_etc_dir_path_state: directory
lego_var_dir_path: /var/lib/lego
lego_var_dir_path_owner: "{{ lego_user_name }}"
lego_var_dir_path_group: "{{ lego_group_name }}"
lego_var_dir_path_mode: u=rwx,go=rx
lego_var_dir_path_state: directory
lego_bin_args:
- --accept-tos
- --domains %i
- --domains www.%i
lego_environ:
LEGO_PATH: "{{ lego_var_dir_path }}"
lego_bin_user_args: []
lego_user_environ: {}
lego_credential_files: []
lego_service_name: lego@.service
lego_service_enabled: true
lego_service_state: started
lego_timer_name: lego@.timer
lego_timer_enabled: true
lego_timer_state: started
lego_service_template_src: "{{ lego_service_name }}.j2"
lego_service_template_dest: "/etc/systemd/system/{{ lego_service_name }}"
lego_service_template_owner: root
lego_service_template_group: root
lego_service_template_mode: ugo=r
lego_timer_template_src: "{{ lego_timer_name }}.j2"
lego_timer_template_dest: "/etc/systemd/system/{{ lego_timer_name }}"
lego_timer_template_owner: root
lego_timer_template_group: root
lego_timer_template_mode: ugo=r
lego_systemd_service_d_dir_path: /etc/systemd/system/lego@.service.d
lego_systemd_service_d_dir_path_owner: root
lego_systemd_service_d_dir_path_group: root
lego_systemd_service_d_dir_path_mode: ugo=rx
lego_systemd_service_d_dir_path_state: directory
lego_systemd_service_d_template_src: "environ.conf.j2"
lego_systemd_service_d_template_dest: "{{ lego_systemd_service_d_dir_path }}/environ.conf"
lego_systemd_service_d_template_path_owner: root
lego_systemd_service_d_template_path_group: root
lego_systemd_service_d_template_path_mode: u=r,go=
lego_credential_file_owner: "{{ lego_user_name }}"
lego_credential_file_group: "{{ lego_group_name }}"
lego_credential_file_mode: u=r,go=
# lego_domains:
# - name: example.com
# # not required
# enabled: true
# # not required
# state: started

View File

@ -0,0 +1,5 @@
---
- name: restart lego
systemd:
name: "{{ lego_service_name }}"
daemon_reload: true

View File

@ -0,0 +1,98 @@
---
- name: create group
ansible.builtin.group:
name: "{{ lego_group_name }}"
system: true
- name: create user
ansible.builtin.user:
name: "{{ lego_user_name }}"
shell: "{{ lego_user_shell }}"
home: "{{ lego_user_home }}"
system: true
group: "{{ lego_group_name }}"
- name: create var path
ansible.builtin.file:
path: "{{ lego_var_dir_path }}"
owner: "{{ lego_var_dir_path_owner }}"
group: "{{ lego_var_dir_path_group }}"
mode: "{{ lego_var_dir_path_mode }}"
state: "{{ lego_var_dir_path_state }}"
- name: create etc path
ansible.builtin.file:
path: "{{ lego_etc_dir_path }}"
owner: "{{ lego_etc_dir_path_owner }}"
group: "{{ lego_etc_dir_path_group }}"
mode: "{{ lego_etc_dir_path_mode }}"
state: "{{ lego_etc_dir_path_state }}"
- name: "create {{ lego_systemd_service_d_dir_path }}"
ansible.builtin.file:
path: "{{ lego_systemd_service_d_dir_path }}"
owner: "{{ lego_systemd_service_d_dir_path_owner }}"
group: "{{ lego_systemd_service_d_dir_path_group }}"
mode: "{{ lego_systemd_service_d_dir_path_mode }}"
state: "{{ lego_systemd_service_d_dir_path_state }}"
- name: "create {{ lego_systemd_service_d_template_dest }}"
ansible.builtin.template:
src: "{{ lego_systemd_service_d_template_src }}"
dest: "{{ lego_systemd_service_d_template_dest }}"
owner: "{{ lego_systemd_service_d_template_path_owner }}"
group: "{{ lego_systemd_service_d_template_path_group }}"
mode: "{{ lego_systemd_service_d_template_path_mode }}"
notify:
- restart lego
- name: create credential files
ansible.builtin.copy:
dest: "{{ lego_etc_dir_path }}/{{ item.name }}"
owner: "{{ item.owner | default(lego_credential_file_owner) }}"
group: "{{ item.group | default(lego_credential_file_group) }}"
mode: "{{ item.mode | default(lego_credential_file_mode) }}"
content: "{{ item.content }}"
loop: "{{ lego_credential_files | default([]) }}"
no_log: true
#- name: configure
# ansible.builtin.template:
# src: "{{ lego_config_file_template_src }}"
# dest: "{{ lego_config_file_template_dest }}"
# owner: "{{ lego_config_file_template_owner }}"
# group: "{{ lego_config_file_template_group }}"
# mode: "{{ lego_config_file_template_mode }}"
# notify:
# - restart lego
#
- name: configure systemd unit
ansible.builtin.template:
src: "{{ lego_service_template_src }}"
dest: "{{ lego_service_template_dest }}"
owner: "{{ lego_service_template_owner }}"
group: "{{ lego_service_template_group }}"
mode: "{{ lego_service_template_mode }}"
notify:
- restart lego
- name: configure timer
ansible.builtin.template:
src: "{{ lego_timer_template_src }}"
dest: "{{ lego_timer_template_dest }}"
owner: "{{ lego_timer_template_owner }}"
group: "{{ lego_timer_template_group }}"
mode: "{{ lego_timer_template_mode }}"
#
#- name: manage service
# ansible.builtin.service:
# name: "{{ lego_service_name }}"
# enabled: "{{ lego_service_enabled | default(true) }}"
# state: "{{ lego_service_state | default('started') }}"
- name: manage timers
ansible.builtin.systemd:
name: "lego@{{ item.name }}.timer"
enabled: "{{ item.enabled | default(true) }}"
state: "{{ item.state | default('started') }}"
loop: "{{ lego_domains | default([]) }}"

View File

View File

@ -0,0 +1,56 @@
---
- name: determine install status
ansible.builtin.stat:
path: "{{ lego_opt_dir_path }}/lego"
register: st
- name: create opt path
ansible.builtin.file:
path: "{{ lego_opt_dir_path }}"
owner: root
group: root
mode: 0755
state: directory
- block:
- name: download
ansible.builtin.get_url:
url: "{{ lego_release_url }}"
dest: "{{ lego_download_path }}"
checksum: "{{ lego_checksums[lego_release_file] }}"
register: dl
until: dl is success
retries: 5
delay: 10
- name: extract
ansible.builtin.unarchive:
src: "{{ lego_download_path }}"
dest: "{{ lego_unarchive_dest_path }}"
remote_src: true
- name: install
ansible.builtin.copy:
src: "{{ lego_extracted_path }}/{{ item }}"
dest: "{{ lego_opt_dir_path }}/{{ item }}"
remote_src: true
loop: "{{ lego_binaries }}"
when: not st.stat.exists
- name: permissions
ansible.builtin.file:
path: "{{ lego_opt_dir_path }}/{{ item }}"
owner: root
group: root
mode: 0755
loop: "{{ lego_binaries }}"
- name: symlink
ansible.builtin.file:
src: "{{ lego_opt_dir_path }}/{{ item }}"
dest: "/usr/local/bin/{{ item }}"
owner: root
group: root
mode: 0755
state: link
loop: "{{ lego_binaries }}"

View File

@ -0,0 +1,28 @@
---
- name: gather os specific variables
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- vars
- name: include os specific tasks
ansible.builtin.include_tasks: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- tasks
- ansible.builtin.include_tasks: install.yaml
- ansible.builtin.include_tasks: configure.yaml

View File

@ -0,0 +1,8 @@
# {{ ansible_managed }}
[Service]
{% if lego_user_environ is defined %}
{% for k, v in lego_user_environ.items() %}
Environment={{ k | upper }}={{ v }}
{% endfor %}
{% endif %}

View File

@ -0,0 +1,31 @@
# {{ ansible_managed }}
[Unit]
Description=Let's Encrypt client and ACME library written in Go
After=network-online.target
Wants=network-online.target
[Service]
{% if lego_environ is defined %}
{% for k, v in lego_environ.items() %}
Environment={{ k | upper }}={{ v }}
{% endfor %}
{% endif %}
Type=oneshot
User={{ lego_user_name }}
ExecStart={{ lego_bin_path }} \
{% for arg in lego_bin_args | default([]) + lego_bin_user_args | default([]) %}
{{ arg }} \
{% endfor %}
renew \
{% for arg in lego_bin_renew_user_args | default([]) %}
{{ arg }} {% if not loop.last %}\{{ "\n"}}{% endif %}
{% if loop.last %}
{% endif %}
{% endfor %}
WorkingDirectory={{ lego_var_dir_path }}
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,11 @@
[Unit]
Description=Certbot renewal
Description=Let's Encrypt client and ACME library written in Go
Requires={{ lego_service_name }}%i
[Timer]
OnCalendar=*-*-* 00,12:00:00
# RandomizedDelaySec=1
[Install]
WantedBy=timers.target

View File

View File

@ -0,0 +1,57 @@
---
logcli_go_arch_map:
i386: '386'
x86_64: 'amd64'
logcli_go_arch: "{{ logcli_go_arch_map[ansible_architecture] | default('amd64') }}"
logcli_version: 2.9.5
logcli_checksums:
logcli-darwin-amd64.zip: sha256:b224dc8872167be0c5f07b1c22471b21604419b625b4a6e69b2c7751bc409d98
logcli-darwin-arm64.zip: sha256:ad93156ae1132038de7a6b42633bdc59aac1a04e816aeae2796bc6dddddff14a
logcli-freebsd-amd64.zip: sha256:952f48394a080b88a100001b9c454e8793071ba4cd8cc95811bd446b4215a9a3
logcli-linux-amd64.zip: sha256:a22f7e29bb9ef8f6f70e31926bbffc646b9e36b3265458e199c497b305d21cc2
logcli-linux-arm.zip: sha256:0ad5c86191916121acea30d44011d84d33e5ca27497691980de16f1508b209f5
logcli-linux-arm64.zip: sha256:06b6a6b961f5004c51eb7922509dbbb189701b1f3925ba1bb2289894fef7861e
logcli-windows-amd64.exe.zip: sha256:d1a37c56fa2a1dfa97855d2a26826ba89569d50846a6022be03936423f04e19b
loki-canary-darwin-amd64.zip: sha256:9f73e81666397e195ae092c518df32200bab71f72ff778c839abba0283f8f4b3
loki-canary-darwin-arm64.zip: sha256:fa3a96bec9b30ec06bf5271182646161ab8056c51b07e00da14ce21d53bbd871
loki-canary-freebsd-amd64.zip: sha256:170c0ea9bf6349cce9b9fb5be6b27d0b8477fc57e5a0849ad7c828ba3de79f15
loki-canary-linux-amd64.zip: sha256:e4ff7cfb302851b98d4df1dc7793b3fdc7fd9680d2e75fc0484abcd08412f198
loki-canary-linux-arm.zip: sha256:02750db39ecba743da3036ca28a3b426c7d068efeee86b875f7870ba8798dca2
loki-canary-linux-arm64.zip: sha256:e0c0c31c89cad8ddffbd11f9467778e9b30bdfbdce955fba67871365a07ab3a1
loki-canary-windows-amd64.exe.zip: sha256:54564cbd123fbdd1b95fe9882bd916e2e9432b53826a97c04179c48ff0314912
loki-darwin-amd64.zip: sha256:b5831c0da363b3b075ddbdaa6e6e1323858b17c0d6c0052908aebaa637bc522c
loki-darwin-arm64.zip: sha256:1b73e4867730c252ce0e3720dd42fea5bd7921dd3cda4aa5f3764e43e1495374
loki-freebsd-amd64.zip: sha256:c3ac9b0aa16ca494a1537c28fe036440cd701d5273c5c8bbdb47426ecb5a041e
loki-linux-amd64.zip: sha256:9d919a55e7a2dbaeab46e777a0589d7e304c71fed011f989143883cbc887e348
loki-linux-arm.zip: sha256:104efc28b322523bf5bced67bdcc3746e1f7f872057f6ef54f25ab00ce426b39
loki-linux-arm64.zip: sha256:491833bf201c55388b82c3d1f583a9d4426c1b778ed3dc710cd67c8cbbbb67bb
loki-windows-amd64.exe.zip: sha256:1acee64bb69bd54ff6549edd2f670d0a3802727d9efced8705c7a712412d8ef7
promtail-darwin-amd64.zip: sha256:54032f2781d3acfef7dd7ad12b7f38ec4f5d0eb8ba047ebecb9911a6dd4b6cc6
promtail-darwin-arm64.zip: sha256:405ed21efcaa21ae5bbe4b7e16ca888ae8238716c46a176ea9c5e2a7b2b2a633
promtail-freebsd-amd64.zip: sha256:5a68f6fa6c7ae96919f13b4fffb188f72f9b16e38f40cf3962b97989c9739a99
promtail-linux-amd64.zip: sha256:e444bcff2d6677d284350819d3d1b7b473a1699357689230254fbc602b28dac7
promtail-linux-arm.zip: sha256:d0cc7552b8ce69534893040e6518288a6899c4f3acf9d4e7d32335f5f2f6145d
promtail-linux-arm64.zip: sha256:b23bd750dc5f6a76d808826ebc9d3c8b3540adb329578b650571a10d2be348b8
promtail-windows-386.exe.zip: sha256:a121de0b043db194c65422f863211efe566da3bec338a92f0623dff6f3c435d1
promtail-windows-amd64.exe.zip: sha256:d9c4b5bb58d3ece2e4ff78cd7fef65f5fadd7d9fe73ceb2dfa4a2990f944466f
logcli_github_rel_path: grafana/loki
logcli_github_project_url: "https://github.com/{{ logcli_github_rel_path }}"
logcli_release_file: "logcli-{{ ansible_system | lower }}-{{ logcli_go_arch }}.zip"
logcli_release_url: "{{ logcli_github_project_url }}/releases/download/v{{ logcli_version }}/{{ logcli_release_file }}"
logcli_download_path: "/tmp/logcli-{{ logcli_version }}-{{ ansible_system | lower }}-{{ logcli_go_arch }}.zip"
logcli_opt_path: "/opt/logcli-{{ logcli_version }}"
logcli_unarchive_dest_path: /tmp/
logcli_extracted_path: "/tmp/logcli-{{ ansible_system | lower }}-{{ logcli_go_arch }}"
logcli_binaries:
- logcli
logcli_loki_addr: http://localhost:3100
logcli_profile_d_path: /etc/profile.d/logcli.sh
logcli_profile_d_env:
LOKI_ADDR: "{{ logcli_loki_addr }}"

View File

@ -0,0 +1,11 @@
---
- name: set logcli environment variables
ansible.builtin.copy:
dest: "{{ logcli_profile_d_path }}"
owner: root
group: root
mode: 0755
content: |
{% for k, v in logcli_profile_d_env.items() %}
export {{ k }}="{{ v }}"
{% endfor %}

View File

View File

@ -0,0 +1,56 @@
---
- name: determine install status
ansible.builtin.stat:
path: "{{ logcli_opt_path }}/logcli"
register: st
- name: create opt path
ansible.builtin.file:
path: "{{ logcli_opt_path }}"
owner: root
group: root
mode: 0755
state: directory
- block:
- name: download
ansible.builtin.get_url:
url: "{{ logcli_release_url }}"
dest: "{{ logcli_download_path }}"
checksum: "{{ logcli_checksums[logcli_release_file] }}"
register: dl
until: dl is success
retries: 5
delay: 10
- name: extract
ansible.builtin.unarchive:
src: "{{ logcli_download_path }}"
dest: "{{ logcli_unarchive_dest_path }}"
remote_src: true
- name: install
ansible.builtin.copy:
src: "{{ logcli_extracted_path }}"
dest: "{{ logcli_opt_path }}/{{ item }}"
remote_src: true
loop: "{{ logcli_binaries }}"
when: not st.stat.exists
- name: permissions
ansible.builtin.file:
path: "{{ logcli_opt_path }}/{{ item }}"
owner: root
group: root
mode: 0755
loop: "{{ logcli_binaries }}"
- name: symlink
ansible.builtin.file:
src: "{{ logcli_opt_path }}/{{ item }}"
dest: "/usr/local/bin/{{ item }}"
owner: root
group: root
mode: 0755
state: link
loop: "{{ logcli_binaries }}"

View File

@ -0,0 +1,28 @@
---
- name: gather os specific variables
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- vars
- name: include os specific tasks
ansible.builtin.include_tasks: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- tasks
- ansible.builtin.include_tasks: install.yaml
- ansible.builtin.include_tasks: configure.yaml

View File

View File

@ -26,12 +26,17 @@ loki_user_shell: /usr/sbin/nologin
loki_group: loki
loki_group_state: "{{ loki_user_state | default('present') }}"
loki_config_path: /etc/loki.yaml
loki_var_path: /var/lib/loki
loki_var_owner: "{{ loki_user }}"
loki_var_group: "{{ loki_group }}"
loki_var_mode: "0755"
loki_var_mode: "0700"
loki_etc_path: /etc/loki
loki_etc_owner: "{{ loki_user }}"
loki_etc_group: "{{ loki_group }}"
loki_etc_mode: "0755"
loki_config_path: "{{ loki_etc_path }}/config.yaml"
loki_bin_path: /usr/local/bin
@ -39,36 +44,51 @@ loki_auth_enabled: false
loki_server:
http_listen_port: 3100
grpc_listen_port: 9096
loki_ingester:
lifecycler:
address: 127.0.0.1
loki_common:
instance_addr: 127.0.0.1
path_prefix: "{{ loki_var_path }}"
storage:
filesystem:
chunks_directory: "{{ loki_var_path }}/chunks"
rules_directory: "{{ loki_var_path }}/rules"
replication_factor: 1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
loki_query_range:
results_cache:
cache:
embedded_cache:
enabled: true
max_size_mb: 100
# loki_storage_config:
# {}
loki_schema_config:
configs:
- from: 2020-05-15
store: boltdb
object_store: filesystem
- from: 2020-10-24
store: boltdb-shipper
object_store: gcs
schema: v11
index:
prefix: index_
period: 168h
period: 24h
loki_storage_config:
boltdb:
directory: "{{ loki_var_path }}/index"
filesystem:
directory: "{{ loki_var_path }}/chunks"
loki_ruler:
alertmanager_url: http://localhost:9093
# loki_query_scheduler:
# {}
# loki_querier:
# {}
# loki_compactor:
# {}
loki_limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
ingestion_burst_size_mb: 16
retention_period: 744h

View File

@ -15,14 +15,13 @@
home: "{{ loki_var_path }}"
state: "{{ loki_user_state | default('present') }}"
- name: configure
template:
src: loki.yaml.j2
dest: "{{ loki_config_path }}"
owner: root
group: root
mode: 0444
notify: restart loki
- name: create etc path
file:
path: "{{ loki_etc_path }}"
state: directory
owner: "{{ loki_etc_owner }}"
group: "{{ loki_etc_group }}"
mode: "{{ loki_etc_mode }}"
- name: create var path
file:
@ -32,6 +31,15 @@
group: "{{ loki_var_group }}"
mode: "{{ loki_var_mode }}"
- name: configure
template:
src: config.yaml.j2
dest: "{{ loki_config_path }}"
owner: "{{ loki_user }}"
group: "{{ loki_group }}"
mode: 0400
notify: restart loki
- name: configure systemd template
template:
src: "{{ loki_service_name }}.j2"

View File

@ -0,0 +1,55 @@
{{ ansible_managed | comment }}
---
{% if loki_auth_enabled is defined %}
auth_enabled: {{ loki_auth_enabled | bool | lower }}
{% endif %}
{% if loki_server is defined %}
server:
{{ loki_server | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_common is defined %}
common:
{{ loki_common | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_query_range is defined %}
query_range:
{{ loki_query_range | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_storage_config is defined %}
storage_config:
{{ loki_storage_config | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_schema_config is defined %}
schema_config:
{{ loki_schema_config | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_ruler is defined %}
ruler:
{{ loki_ruler | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_query_scheduler is defined %}
query_scheduler:
{{ loki_query_scheduler | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_querier is defined %}
querier:
{{ loki_querier | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_compactor is defined %}
compactor:
{{ loki_compactor | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_limits_config is defined %}
limits_config:
{{ loki_limits_config | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}

View File

@ -1,19 +1,19 @@
{{ ansible_managed | comment }}
[Unit]
Description=Loki
After=network-online.target
Description=Loki service
After=network.target
[Service]
Type=simple
User={{ loki_user }}
Group={{ loki_group }}
ExecStart={{ loki_bin_path }}/loki \
-config.file {{ loki_config_path }}
WorkingDirectory={{ loki_var_path }}
Restart=always
RestartSec=1
WorkingDirectory={{ loki_var_path }}
TimeoutSec = 120
Restart = on-failure
RestartSec = 2
[Install]
WantedBy=multi-user.target

View File

@ -1,30 +0,0 @@
{{ ansible_managed | comment }}
---
{% if loki_auth_enabled is defined %}
auth_enabled: {{ loki_auth_enabled | bool | lower }}
{% endif %}
{% if loki_server is defined %}
server:
{{ loki_server | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_ingester is defined %}
ingester:
{{ loki_ingester | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_schema_config is defined %}
schema_config:
{{ loki_schema_config | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_storage_config is defined %}
storage_config:
{{ loki_storage_config | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}
{% if loki_limits_config is defined %}
limits_config:
{{ loki_limits_config | to_nice_yaml(indent=2) | indent(2, False) }}
{% endif -%}

View File

@ -0,0 +1,68 @@
---
mimir_package_name: mimir
mimir_package_state: present
mimir_service_name: mimir.service
mimir_service_enabled: true
mimir_service_state: started
mimir_apt_repository_repo: deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main
mimir_apt_repository_state: present
mimir_version_regex: ^mimir, version ([\d.]+)
mimir_user_name: mimir
mimir_user_comment: mimir user
mimir_user_state: present
mimir_user_shell: /usr/sbin/nologin
mimir_user_system: true
mimir_user_createhome: false
mimir_group_name: mimir
mimir_group_state: "{{ mimir_user_state | default('present') }}"
mimir_group_system: true
mimir_var_dir_path: /var/lib/mimir
mimir_var_dir_owner: "{{ mimir_user_name }}"
mimir_var_dir_group: "{{ mimir_group_name }}"
mimir_var_dir_mode: "0700"
mimir_etc_dir_path: /etc/mimir
mimir_etc_dir_owner: "{{ mimir_user_name }}"
mimir_etc_dir_group: "{{ mimir_group_name }}"
mimir_etc_dir_mode: "0755"
mimir_config_file_path: "{{ mimir_etc_dir_path }}/config.yml"
mimir_config_file_path_owner: "{{ mimir_user_name }}"
mimir_config_file_path_group: "{{ mimir_group_name }}"
mimir_config_file_path_mode: "0755"
m# imir_common:
# {}
mimir_server:
http_listen_port: 9009
mimir_alertmanager:
sharding_ring:
replication_factor: 1
# mimir_compactor:
# {}
# mimir_distributor:
# {}
mimir_ingester:
ring:
replication_factor: 1
mimir_store_gateway:
sharding_ring:
replication_factor: 1
# mimir_blocks_storage:
# {}
# mimir_ruler_storage:
# {}

Binary file not shown.

View File

@ -0,0 +1,6 @@
---
- name: restart mimir
systemd:
name: "{{ mimir_service_name }}"
daemon_reload: true
state: restarted

View File

@ -0,0 +1,14 @@
---
- name: trust grafana apt respository key
ansible.builtin.copy:
src: "grafana.gpg"
dest: "/etc/apt/keyrings/grafana.gpg"
owner: root
group: root
mode: 0644
- name: configure grafana apt repository
ansible.builtin.apt_repository:
repo: "{{ mimir_apt_repository_repo }}"
state: "{{ mimir_apt_repository_state | default('present') }}"
filename: grafana

View File

@ -0,0 +1,48 @@
---
- name: create group
ansible.builtin.group:
name: "{{ mimir_group_name }}"
system: "{{ mimir_group_system | default(true) }}"
state: "{{ mimir_group_name_state | default('present') }}"
- name: create user
ansible.builtin.user:
name: "{{ mimir_user_name }}"
comment: "{{ mimir_user_comment }}"
system: "{{ mimir_user_system | default(true) }}"
shell: "{{ mimir_user_shell | default('/usr/sbin/nologin') }}"
group: "{{ mimir_group_name }}"
createhome: "{{ mimir_user_createhome | default(false) }}"
home: "{{ mimir_var_dir_path }}"
state: "{{ mimir_user_state | default('present') }}"
- name: create etc path
ansible.builtin.file:
path: "{{ mimir_etc_dir_path }}"
state: directory
owner: "{{ mimir_etc_dir_owner }}"
group: "{{ mimir_etc_dir_group }}"
mode: "{{ mimir_etc_dir_mode }}"
- name: create var path
ansible.builtin.file:
path: "{{ mimir_var_dir_path }}"
state: directory
owner: "{{ mimir_var_dir_owner }}"
group: "{{ mimir_var_dir_group }}"
mode: "{{ mimir_var_dir_mode }}"
- name: configure
template:
src: config.yml.j2
dest: "{{ mimir_config_file_path }}"
owner: "{{ mimir_user_name }}"
group: "{{ mimir_group_name }}"
mode: 0400
notify: restart mimir
- name: manage service
service:
name: "{{ mimir_service_name }}"
enabled: "{{ mimir_service_enabled }}"
state: "{{ mimir_service_state }}"

View File

View File

@ -0,0 +1,5 @@
---
- name: install package
ansible.builtin.package:
name: "{{ mimir_package_name }}"
state: "{{ mimir_package_state | default('present') }}"

View File

@ -0,0 +1,28 @@
---
- name: gather os specific variables
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- vars
- name: include os specific tasks
ansible.builtin.include_tasks: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- tasks
- ansible.builtin.include_tasks: install.yaml
- ansible.builtin.include_tasks: configure.yaml

View File

@ -0,0 +1,51 @@
# {{ ansible_managed }}
---
{% if mimir_common is defined %}
common:
{{ mimir_common | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_server is defined %}
server:
{{ mimir_server | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_alertmanager is defined %}
alertmanager:
{{ mimir_alertmanager | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_compactor is defined %}
compactor:
{{ mimir_compactor | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_distributor is defined %}
distributor:
{{ mimir_distributor | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_ingester is defined %}
ingester:
{{ mimir_ingester | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_store_gateway is defined %}
store_gateway:
{{ mimir_store_gateway | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_alertmanager_storage is defined %}
alertmanager_storage:
{{ mimir_alertmanager_storage | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_blocks_storage is defined %}
blocks_storage:
{{ mimir_blocks_storage | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}
{% if mimir_ruler_storage is defined %}
ruler_storage:
{{ mimir_ruler_storage | to_nice_yaml(indent=2) | indent(4, False) }}
{% endif -%}

View File

View File

@ -11,8 +11,8 @@ minecraft_port: 25565
minecraft_user: minecraft
minecraft_group: minecraft
minecraft_jar_url: https://launcher.mojang.com/v1/objects/e00c4052dac1d59a1188b2aa9d5a87113aaf1122/server.jar
minecraft_jar_checksum: sha256:deefd056f0cf89c3d7fd48d03f56a8a73943586e8c061fdabd0fd92d32ced2b2
minecraft_jar_url: https://piston-data.mojang.com/v1/objects/84194a2f286ef7c14ed7ce0090dba59902951553/server.jar
minecraft_jar_checksum: sha256:3af73a9dc5a102e38147946360dd27d4d70bae7055bf91cf2151cd5d121b79e0
minecraft_opt_path: /opt/minecraft
minecraft_var_path: /var/opt/minecraft

View File

@ -12,7 +12,7 @@ mtail_service_enabled: yes
mtail_version_regex: ^mtail version (\S+)
mtail_github_project_url: https://github.com/google/mtail
mtail_release_file: "mtail_{{ mtail_version }}_{{ ansible_system | capitalize }}_{{ ansible_architecture }}.tar.gz"
mtail_release_file: "mtail_{{ mtail_version }}_{{ ansible_system | lower }}_{{ mtail_go_arch }}.tar.gz"
mtail_release_url: "{{ mtail_github_project_url }}/releases/download/v{{ mtail_version }}/{{ mtail_release_file }}"
mtail_download_path: "/tmp/{{ mtail_release_file }}"
mtail_checksum_url: "{{ mtail_github_project_url }}/releases/download/v{{ mtail_version }}/checksums.txt"

Some files were not shown because too many files have changed in this diff Show More