Skip to content

Instantly share code, notes, and snippets.

@RulerOf
RulerOf / Berksfile
Last active July 2, 2025 23:34
Dynamically generate a chef Berksfile from an existing Chef Policyfile.rb
require 'chef-cli/policyfile_services/install'
def policyfile_to_berksfile(policyfile_path)
pf = ChefCLI::PolicyfileServices::Install
.new(policyfile: policyfile_path)
.policyfile_compiler
# ------------------------------------------------------------------
# 1. Sources
# ------------------------------------------------------------------
@RulerOf
RulerOf / main.py
Created May 7, 2021 02:35
Predictable Shuffle with Python
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 / README.md
Created March 31, 2021 13:44
DNS SRV Records with Terraform

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 / Dockerfile
Created May 22, 2024 19:43
Build ImageMagick into a Ruby AWS Lambda build image at /opt
FROM public.ecr.aws/sam/build-ruby3.2:latest as builder
# Prereqs
RUN yum install -y git gcc gcc-c++ cpp cpio make cmake automake autoconf chkconfig clang clang-libs dos2unix zlib zlib-devel zip unzip tar perl libxml2 bzip2 bzip2-libs xz xz-libs pkgconfig libtool
# libjpg
RUN cd /root && \
curl https://github.com/winlibs/libjpeg/archive/refs/tags/libjpeg-9c.tar.gz -L -o tmp-libjpeg.tar.gz && \
tar xf tmp-libjpeg.tar.gz && \
cd libjpeg* && \
@RulerOf
RulerOf / pfsense-on-centos-8.md
Last active January 9, 2024 22:18
Installing pfSense on KVM in CentOS 8

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 / vwlc-on-kvm.md
Last active December 29, 2023 07:01
How to install the Cisco vWLC on KVM using virt-install

Installing the Cisco vWLC on KVM using virt-install

Cisco has a few different guides for installing their vWLC on KVM, but most of them focus on oVirt-style installations that are heavy on hand-crafted XML and [what appears to be] the use of OpenStack. If you're just using a plain single-host KVM setup and want to install the vWLC in a VM, this guide is for you.

Instructions

First, download the vWLC KVM installation image appropriate for your setup. I'm going to use version 8.5.171.0 (you'll have to create an account to download it), and then transfer it to your KVM server:

AndrewBobulskys-MacBook-Pro:~ andrewbobulsky$ scp ~/Downloads/MFG_CTVM_LARGE_8.5.171.0.iso 10.0.25.2:/tmp                   100%  367MB  40.7MB/s   00:09    
@RulerOf
RulerOf / get-sshfingerprint.ps1
Created January 31, 2019 20:49
Get SSH host key fingerprint using PowerShell. Requires the WinSCP .Net assembly.
function Get-SshFingerprint {
param( [string]$ssh_server )
# Load WinSCP .NET assembly
Add-Type -Path "${env:ProgramFiles(x86)}\WinSCP\WinSCPnet.dll"
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = $ssh_server
@RulerOf
RulerOf / plex-streaming-quality-settings.md
Last active October 16, 2023 03:53
Adjusting Plex Media Player streaming quality defaults and per-stream

Setting a default quality in Plex Media Player desktop

The Plex Media Player desktop application's default quality setting is in different places depending on the interface you're using. The Plex Web UI is used as a point-and-click interface, whereas the Plex Media Player TV UI is used as a remote-friendly interface.

Plex Web UI Plex Media Player TV UI
@RulerOf
RulerOf / readme.md
Last active June 29, 2023 04:30
Chef fails with 'No candidate version available' when using amazon-linux-extras on Amazon Linux 2

The Problem

We have a few packages we like to install through Amazon Linux Extras repo, but we discovered that this doesn't work right:

execute 'Enable java 11 via amazon-linux-extras' do
  command 'amazon-linux-extras enable java-openjdk11'
end

package 'java-11-openjdk'
@RulerOf
RulerOf / ec2-exec.sh
Created November 16, 2021 10:05
Synchronously run commands on an SSM-managed EC2 instance
#!/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