- requires installing node-exporter on proxmox hosts. See Node-Exporter install notes
- requires setting up proxmox api access roles and access key
- script to export grafana dashboards to json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Ansible testing using Assert | |
When we run Ansible to manage server configurations, we assume (if there is no red errors) that it worked. But if you are developing ansible modules for your systems, and want to take the DevOps approach and work on CICD pipelines, you need to have some tests in there to prove that what you asked ansible to do has actually worked. | |
One of the best ways to do this within ansible, is to use the Assert module. It asserts that a given expression is true. When you combine this with the output of a command that’s registered to a variable, there is almost no limit to what you can test. | |
I’m going to use the TDD (Test driven development) method where we create the tests before we start writing any ansible code to manage our systems. I expect the tests to fail. Then we’ll write ansible to pass the tests. That’s it. | |
This demo will cover the following: | |
• Create some tests using the command and assert modules. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TZ=America/New_York | |
PUID=1000 | |
PGID=1000 | |
MYSQL_DATABASE=librenms | |
MYSQL_USER=librenms | |
MYSQL_PASSWORD=password |
Moved to https://virtualize.link/secure/
This gist explains how to setup DOH for Firefox using dnscrypt-proxy and nextdns.io.
Get a Linux server with a static IP (DO droplet would work). Download and install dnscrypt-proxy.
Edit dnscrypt-proxy.toml
(see wiki):
[local_doh]
listen_addresses = ['123.456.789.1:3000']
path = "/dns-query"
cert_file = "fullchain.pem"
cert_key_file = "privkey.pem"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM XXXX | |
#Install cron | |
RUN apt-get update; \ | |
apt-get install -y cron; \ | |
apt-get clean; \ | |
touch /var/log/cron.log | |
COPY crontab.txt /etc/cron.d/crontab | |
COPY run-cron.sh /usr/local/app/entrypoint/run-cron.sh |
Docker filesystem layers can be tricky to wrap your head around, and even more so how indoes work. Lets take an example and see what happens when you tail a file that exists in the image as part of your container entrypoint:
host$ docker run -d --rm --name test-inode debian tail -f /etc/issue
54bbfa8fa1f6751593dcf23103a1cdaec7fde8ffbcb3e31bab466b4f7a3581e7
Now make some changes to the file:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
from PyQt5.QtCore import pyqtSlot, QSortFilterProxyModel, Qt, QUrl, QDir, QAbstractListModel | |
from PyQt5.QtGui import QGuiApplication | |
from PyQt5.QtQml import QQmlApplicationEngine | |
class SortProxyModel(QSortFilterProxyModel): | |
@pyqtSlot(str, Qt.SortOrder) | |
def sortData(self, roleName, order): |
NewerOlder