Keeping things updated with Apt-Dater

One challenge of running servers, especially if you have more than a few, is keeping all of the software up to date on them. Patches are released constantly, and keeping software updated is a major security concern. One great tool that can help automate this is apt-dater, a text based utility that lets you interactively update packages on systems. Installing apt-dater is included in the main Debian and Ubuntu repositories, so you just have to run apt-get install apt-dater on the host you’ll use to update systems, and apt-get install apt-dater-host on your servers....

December 30, 2021

LVM Basics

This is a quick how-to showing my procedure for setting up new drives with LVM. What is LVM LVM stands for Logical Volume Manager and is a newer way to manage partitions and disks in Linux. If you’ve never used LVM, it makes adding partitions, resizing things, adding disks, and more easy and slick on Linux. Basically, it’s an abstraction layer between your disks and partitions. You can have partitions span multiple disks, change them around on the fly, move them around, etc without any of the fuss of before....

October 17, 2021

My Personal Backup Strategy

I’m pretty protective of my data. I like to make sure all my important file are backed up, and I employ a 3-2-1 backup strategy for basically everything. What are 3-2-1 Backups This is a term that is floated around frequently when talking about backups. It basically boils down to these rules: You have 3 independent copies of your data. Of those 3 copies, 2 of them are on different systems (Different servers, different SANs, etc)....

October 7, 2021

Promxox/Rclone Offsite Backup

One of the most important parts of keeping data safe is offsite backups. One excellent tool for this is Rclone, a tool that copies data to local and remote locations with ease. I don’t use Rclone for all my backups, which I’ll get into, but I use it for some cases and it’s a great tool. Why I Use Rclone I operate a dedicated server where the hardware is managed by a third-party....

September 27, 2021

Custom Debian ISO

If you’re installing Debian on a regular basis, or want to automate the installation a bit more, building a custom Debian installation ISO can be quite handy. You can automate some of the more tedious parts of the installation, install extra packages and run additional setup, or even completely automate the installation! Why? In my case, I’m working with some automated provisioning using Puppet and Packer. Most of the time, you can start with a pre-installed operating system and work from there....

September 7, 2021

Puppet Without a Puppet Server

One tool that is pretty neat for anyone who manages more than one machine is Puppet. In it’s simplest form, Puppet is designed to codify actions you may take on your server and run them automatically. The typical deployment for Puppet relies on a central Puppet server (the “Puppetmaster”), and clients distributed around your network. What if, say, we wanted to run Puppet without this central server? Why Puppet is great, and a centralized Puppet server is equally great....

August 4, 2021

Fix Virtualmin Proxy with Let's Encrypt

This is a minor inconvenience that I’ve dealt with for far too long. When using Virtualmin as a reverse proxy, it doesn’t handle Let’s Encrypt verification records correctly and forwards them to the upstream service. In my case, this would cause certificates to issue correctly initially, but then fail to renew after three months is up. Since every request that hits the server was getting sent to the upstream server (including any requests to ....

June 14, 2021

Condensed PHPMyAdmin Configuration

This is something that bothered me when adding more than one server to PHPMyAdmin. The default configuration is very verbose, and largely isn’t needed for simple use cases. In my case, I boiled down the config options I use most frequently, and changed the format to be more inline. The format doesn’t look too good on the site, but it is pretty clean once in a wider editor. $cfg['Servers'] = [ 1 => [ 'host' => 'xxx', // MySQL hostname or IP address 'port' => '', // MySQL port - leave blank for default port 'socket' => '', // Path to the socket - leave blank for default socket 'ssl' => true, // Use SSL for connecting to MySQL server?...

December 2, 2019 · Andrew