Skip to content

Instantly share code, notes, and snippets.

@RulerOf
RulerOf / ec2-exec.sh
Created November 16, 2021 10:05
Synchronously run commands on an SSM-managed EC2 instance
View ec2-exec.sh
#!/bin/bash
which jq > /dev/null 2>&1
if [ "$?" -ne 0 ]; then
>&2 echo Error: this script requires jq; exit 1
fi
which aws > /dev/null 2>&1
if [ "$?" -ne 0 ]; then
>&2 echo Error: this script requires awscli; exit 1
@RulerOf
RulerOf / script.sh
Created June 2, 2021 15:44
Dump linux release information
View script.sh
#!/bin/bash
if [ -f /etc/os-release ]; then
# freedesktop.org and systemd
. /etc/os-release
OS=$NAME
VER=$VERSION_ID
elif type lsb_release >/dev/null 2>&1; then
# linuxbase.org
OS=$(lsb_release -si)
@RulerOf
RulerOf / main.py
Created May 7, 2021 02:35
Predictable Shuffle with Python
View main.py
import random
shuffle_key = "QRUzaKNB4V5pparzJWTa"
# Imagine we have a list of images that's 200k items long
frame_list = [*range(1,200000)]
# Shuffle the frame list with the key
random.Random(shuffle_key).shuffle(frame_list)
@RulerOf
RulerOf / install.sh
Created April 4, 2021 15:41
Install OpenVSwitch with os-net-config on Debian Buster
View install.sh
# Install python3 and OVS
sudo apt install python3-pip openvswitch-switch -y
# Install os-net-config
sudo pip3 install os-net-config
# Create os-net-config file
sudo mkdir -p /etc/os-net-config
sudo touch /etc/os-net-config/config.yaml
@RulerOf
RulerOf / README.md
Created March 31, 2021 13:44
DNS SRV Records with Terraform
View README.md

DNS SRV with Terraform (On AWS Route53)

DNS SRV records are a little cryptic. Even when you create them, it's not particularly obvious what the information in the SRV record actaully means.

When creating the records with Terraform, you can for_each the resource to supply one or more maps that contain better descriptors of the SRV record's constituent components. See the example in the terraform snippet below. Refer here for a longer explanation.

@RulerOf
RulerOf / README.md
Last active April 9, 2021 14:26
Provides a bare-minimum configuration to keep Amazon Linux 2 on Lightsail updated if you want it to be a "hands off" setup.
View README.md

Amazon Linux 2 on Lightsail, Bare Minimum Setup

The idea here is to give a set of "common sense" defaults for running Amazon Linux 2 on Lightsail. These defaults include:

  • Automatic Updates
  • Live Kernel Patching
  • Automatic Reboots when Required by Updates

Usage

@RulerOf
RulerOf / pfsense-on-centos-8.md
Last active June 24, 2022 11:08
Installing pfSense on KVM in CentOS 8
View pfsense-on-centos-8.md

Installing pfSense on KVM in CentOS 8

We download the latest release of pfSense as a gzipped ISO, then extract it and pass it to virt-install to get the VM up and running. Interactive portions of setup are done with virt-install's native console redirection. This guide assumes you've already installed and configured KVM, and that you've created network bridges already.

Instructions

Find the latest release here.

Download the gzipped memstick-serial image from a mirror into a directory that KVM can access, then unzip it:

@RulerOf
RulerOf / README.md
Created June 30, 2020 01:48
Bookmarklet to make a youtube video fill the window
View README.md

Use the minified code inside of a bookmarklet. You can test it directly in your browser console on any YouTube video page. It ought to work anywhere but was only tested in Chrome 83.

When you're on a YouTube page, click the bookmarklet and it'll take you to the embedded version of the player that fills the entire window without requiring you to go to full screen mode. This is particularly useful if you have a 16:10 monitor.

The non-minified code is included as a reference to show how it works. There are other window-filling bookmarklets out there. I made this one because I wanted to write it.

@RulerOf
RulerOf / README.md
Last active November 30, 2022 21:20
Dynamic DNS Script I used for Google Domains with DD-WRT
View README.md

DD-WRT Dynamic DNS for Google Domains

Create a Synthetic Record for Dynamic DNS. Copy the script and substitute your synthetic record's username, password, and FQDN in the config section.

Go to Administration > Commands tab and paste the code into the Command box, then click Save Custom Script.

Go to Administration > Management tab. Scroll down to the Cron section, and toggle Cron: Enable

In the Additional Cron Scripts section, put:

@RulerOf
RulerOf / example.tf
Created August 12, 2019 23:01
Turning two lists of maps into a single map output
View example.tf
variable "map1" {
default = [
{
name = "map1name1",
default_ip_address = "map1addr1"
},
{
name = "map1name2",
default_ip_address = "map1addr2"
}