Monitoring Best Practices

Introduction This article is a summary of monitoring best practices as outlined in the book “Practical Monitoring” by Mike Julian. I did not add my thoughts and experience to it, it’s just a simple summary of core concepts from first 3 chapters of the book. The whole book is tool-agnostic and focuses on common themes that occur in different kinds of monitoring systems, so the article also tries to follow this concept....

November 14, 2023 · 6 min

Automating Flutter/Firebase APK build with Github Actions

This blog post will cover a way to publish APK files with GitHub Actions for Flutter mobile app with Firebase backend. Workflow example. GitHub Repository Secrets Flutter/Firebase apps have 3 files that hold sensitive information: services.json - Google Cloud credentials in JSON format, this is used by Firebase keystore.jks - Key used to sign the app key.properties - Key properties, such as key password, alias and it’s location All of the above will be encoded (not encrypted!...

September 2, 2023 · 3 min

Ansibe: Finding Public IP Addresses With Filter Plugin

Consider a large inventory file full of hosts, some of them only have private IP addresses, but some of them have public IPs as well. The goal is to identify which hosts have a public IP and print it in a debug message. The process involves running a playbook with a custom filter plugin to examine every host. If a public IP exists on a host, the print a debug message to identify the host....

May 11, 2023 · 2 min

Ansibe: Create Sub Inventory

Consider a large inventory file full of hosts. The goal is to create a smaller list, a ‘sub-inventory’, containing only hosts with a specific service - Docker, in this case. The process involves running a playbook to examine every host. If Docker exists on a host, this host gets added to the smaller list. What’s the significance of this action? During the initial creation of the large inventory, hosts with Docker weren’t categorized separately....

April 6, 2023 · 2 min

Ansible: Combining one variable from multiple sources

Case study: Imagine that firewalld needs to be configured on multiple servers with Ansible. Different servers might have different ports and services are allowed through the firewall. But at the same time some settings are same across all servers, for example the default zone. This article will attempt to provide the best way to configure host_vars and group_vars for firewalld configuration. Since the main focus of this article is on variables, only localhost will be used in examples below....

April 5, 2023 · 3 min

Migrating Nginx to Docker

There are many ways to install a Nginx web server on Linux. It can be installed using OS’s packager manager, either from distro’s repositories on from Nginx’s official repos. It can be compiled from source. But my favorite way is definitely in a Docker container. Main benefits are: Nothing is installed on the system Many different versions are available (without adding external repositories) It’s easy to transition from a normal install to Docker Step 1: Preparing Nginx configuration file I already wrote about creating a basic Nginx configuration file here, so I will just briefly point out what was changed to be used in Docker....

March 1, 2023 · 2 min