Category: hacking
January 6, 2022
Turning a Raspberry Pi into a Day/Night clock
One of my kids is an early riser. And for the last year, that meant we’re all early risers, regardless of if we’ve gotten enough sleep. So in an effort to have everyone well rested, I’ve put a small 3.5" TFT screen on an unused Raspberry Pi and coded up a simple HTML page, CSS stylesheet and javascript to display a fullscreen clock on boot. In addition, the background of the clock is green when it’s between 7am and 7pm, and red during the night.
Category: automation
September 12, 2021
opengear - ansible role
I have created a simplified version of the Opengear ansible role I’m using in my production DC deployment. See link to the repo below. Opengear’s configuration is a mix of unix and it’s own internal database. To make matters more challenging, the Opengear config format is not really idempotent so you have to watch out when doing tasks like creating new users. So my hack is to essentially overwrite existing users every time I do an ansible playbook run.
September 5, 2021
Creating a Juniper SRX VM for Libvirt/vagrant
I needed to replicate a Juniper SRX firewall to create and test a BGP config for a customer. I could have done this in GNS3/EVE-NG or some other virtual enviornment, but I find that Vagrant/Libvirt gives me the most usability when trying to reuse a setup over time, such as for automated testing.
So with that goal in mind, I needed to create a vagrant box of Juniper’s vSRX firewall, but specifically for use with libvirt.
August 12, 2021
1password on linux - ansible role
I’ve been using 1password as my password manager for many years. They’ve recently released 1password for Linux. I created a quick ansible role to deploy it. It’s not pretty since I couldn’t figure out the cleanest way to deal with gpg, so improvements would be appreciated!
ansible_role_1password_linux
Requirements Tested on Ubuntu 20.04 Role Variables None
July 26, 2021
Setting up mysql server via ansible for MailSteward Pro
I’ve been keeping an email archive in an SQL database for years, and using MailSteward Pro to make easy work of adding to the archive. I recently had to re-setup my servers, and created an ansible role to make setup of mysql easier. MailSteward wants some non-standard sql password settings, and by default SQL connections are allowed only from localhost, so that needs to be changed.
ansible_role_mailsteward_mysql
Requirements Tested on Ubuntu 20.
May 4, 2021
Raspberry Pi to NVIDIA DGX
Great things are done by a series of small things brought together – Vincent van Gogh
I recently finished the networking deployment for a £35m greenfield DC in the UK. One of the enjoyable parts of this DC build was starting the entire deployment and automation stack from a Raspberry Pi:
Nice example of going from one extreme in ARM CPU computing to the other.
October 27, 2020
Creating a Fortinet VM for Libvirt/vagrant
I needed to replicate a production Fortinet firewall environment to do some testing. I could have done this in GNS3/EVE-NG or some other virtual enviornment, but I find that Vagrant/Libvirt gives me the most usability when trying to reuse a setup over time, such as for automated testing.
So with that goal in mind, I needed to create a vagrant box of Fortinet’s FortiVM firewall, but specifically for use with libvirt.
August 29, 2020
Prometheus node_exporter on Ubiquiti EdgeOS Router configured via ansible
My home router is a Ubiquiti EdgeMAX router running EdgeOS 2.0.6. I chose it because wanted a router that could run sflow for testing purposes. I recently came across someone successfully installing Prometheus node_exporter on EdgeOS, so I gave it a try. Since I’d already ansible-automated the install of node_exporter on a switch running Cumulus Linux, I wrote a new playbook with only minor modifications for EdgeOS and it worked perfectly.
August 28, 2020
Hugo, Gitlab and Pipelines
I’ve decided to try and document the useful workflows and code I’ll generate during my upcoming new job. Here’s how I went about automating the creation of these blog pages and publishing of this blog to a directory on my web server. I’ll first focus on the process and code, then at the bottom of this page will be descriptions about why I’ve chosen these tools and specific workflow.
Tools Hugo: A open-source static site generator Ananke: The Hugo theme used for the blog GitLab: SCM (Source Code Management) tool/site including CI pipelines VS Code: My preferred code editing platform GitKraken: A GUI for git because I’m lazy sometimes Workflow Init a repo It’s easiest to setup a git repository first, then proceed with all the remaining steps by creating the files in the repo directory.
Category: CI-CD
September 5, 2021
Creating a Juniper SRX VM for Libvirt/vagrant
I needed to replicate a Juniper SRX firewall to create and test a BGP config for a customer. I could have done this in GNS3/EVE-NG or some other virtual enviornment, but I find that Vagrant/Libvirt gives me the most usability when trying to reuse a setup over time, such as for automated testing.
So with that goal in mind, I needed to create a vagrant box of Juniper’s vSRX firewall, but specifically for use with libvirt.
October 27, 2020
Creating a Fortinet VM for Libvirt/vagrant
I needed to replicate a production Fortinet firewall environment to do some testing. I could have done this in GNS3/EVE-NG or some other virtual enviornment, but I find that Vagrant/Libvirt gives me the most usability when trying to reuse a setup over time, such as for automated testing.
So with that goal in mind, I needed to create a vagrant box of Fortinet’s FortiVM firewall, but specifically for use with libvirt.
August 28, 2020
Hugo, Gitlab and Pipelines
I’ve decided to try and document the useful workflows and code I’ll generate during my upcoming new job. Here’s how I went about automating the creation of these blog pages and publishing of this blog to a directory on my web server. I’ll first focus on the process and code, then at the bottom of this page will be descriptions about why I’ve chosen these tools and specific workflow.
Tools Hugo: A open-source static site generator Ananke: The Hugo theme used for the blog GitLab: SCM (Source Code Management) tool/site including CI pipelines VS Code: My preferred code editing platform GitKraken: A GUI for git because I’m lazy sometimes Workflow Init a repo It’s easiest to setup a git repository first, then proceed with all the remaining steps by creating the files in the repo directory.
Category: telemetry
August 29, 2020
Prometheus node_exporter on Ubiquiti EdgeOS Router configured via ansible
My home router is a Ubiquiti EdgeMAX router running EdgeOS 2.0.6. I chose it because wanted a router that could run sflow for testing purposes. I recently came across someone successfully installing Prometheus node_exporter on EdgeOS, so I gave it a try. Since I’d already ansible-automated the install of node_exporter on a switch running Cumulus Linux, I wrote a new playbook with only minor modifications for EdgeOS and it worked perfectly.