Skip to content

Instantly share code, notes, and snippets.

Avatar

Phil Christensen philchristensen

View GitHub Profile
@philchristensen
philchristensen / refresh-puppet-modules.py
Created Aug 1, 2014
Update script for split-environment Puppetmaster module dirs
View refresh-puppet-modules.py
#!/usr/bin/env python
import sys
import os
import os.path
import logging
import subprocess
ENV_DIR = "environments"
MODULES = ['core', 'site']
@philchristensen
philchristensen / post-update.sh
Created Aug 1, 2014
Gitolite post-update script to auto-update a multi-environment puppetmaster
View post-update.sh
#!/bin/bash
branch=$(git rev-parse --symbolic --abbrev-ref $1)
module=$(basename $PWD)
valid=0
for modname in site-puppet.git core-puppet.git; do
if [[ "$module" == "$modname" ]]; then
valid=1
fi
@philchristensen
philchristensen / simple-update-puppetmaster-hook.git
Created Sep 19, 2014
Simpler Git/Gitolite post-update hook for single modules
View simple-update-puppetmaster-hook.git
#!/bin/bash
branch=$(git rev-parse --symbolic --abbrev-ref $1)
module=$(basename $PWD)
valid=0
if [[ "$module" == "puppet.git" ]]; then
valid=1
modulename="dram"
fi
@philchristensen
philchristensen / eth1.cfg.erb
Created Sep 22, 2014
Sample Ubuntu config to recognize an attached ENI
View eth1.cfg.erb
# /etc/network/interfaces.d/eth1.cfg
# The secondary network interface
auto eth1
iface eth1 inet dhcp
address <%= @ipaddress_eth1 %>
netmask <%= @netmask %>
up ip route add default via <%= GATEWAY_ADDRESS %> dev eth1 table out
up ip rule add from <%= @ipaddress_eth1 %>/32 table out
up ip rule add to <%= @ipaddress_eth1 %>/32 table out
up ip route flush cache
View mdserv
#!/usr/bin/python
"""
To use this to mimic the EC2 metadata service entirely, run it like:
# where 'eth0' is *some* interface. if i used 'lo:0' i got 5 second or so delays on response.
sudo ifconfig eth0:0 169.254.169.254 netmask 255.255.255.255
sudo ./mdserv 169.254.169.254:80
Then:
wget -q http://169.254.169.254/latest/meta-data/instance-id -O -; echo
curl --silent http://169.254.169.254/latest/meta-data/instance-id ; echo
@philchristensen
philchristensen / bash_profile.sh
Created Mar 11, 2015
Enable ssh-agent automatically on a per-session basis
View bash_profile.sh
SSH_ENV="$HOME/.ssh/environment"
function start_agent {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}
@philchristensen
philchristensen / xaz_host.rb
Created Apr 8, 2015
Custom puppet function for finding sibling autoscaling group instances in other AZs
View xaz_host.rb
require 'aws-sdk'
module Puppet::Parser::Functions
newfunction(:xaz_host, :type => :rvalue) do |args|
current_az = lookupvar('ec2_placement_availability_zone')
asg_prefix, domain = args
Aws.config[:credentials] = Aws::Credentials.new(
"AKIAJSUKG23H6XC3FE3A",
"byQczPLjJwDMCcYjtnKgPS/7NfM1D0XpuEU9scmt"
@philchristensen
philchristensen / java.pp
Created May 29, 2015
Puppet Java manifest
View java.pp
exec { "accept-oracle-license":
command => "/bin/echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections",
unless => "/usr/bin/debconf-get-selections | /bin/grep shared/accepted-oracle-license-v1-1"
}->
apt::ppa { "ppa:webupd8team/java": }
ensure_packages(['oracle-java7-installer', 'tomcat7'], {
require => Apt::Ppa['ppa:webupd8team/java']
})
@philchristensen
philchristensen / DPColorPickerView.m
Created Jul 28, 2015
Draw a color wheel in Objective-C
View DPColorPickerView.m
//
// DPColorPickerView.m
// DMXPerformer
//
// Created by Phil Christensen on 4/14/13.
// Copyright (c) 2013 bubblehouse. All rights reserved.
//
#import "DPColorPickerView.h"
#import "DPColorGrabberView.h"
@philchristensen
philchristensen / README.txt
Created Oct 29, 2010
Script to automate converting batches of audio files
View README.txt
SoundGlue
by Phil Christensen
9-18-2005
This is a script that will handle the ins and outs of converting popular lossless
sound formats to mp3. To the purists, I say, "go to hell!", and to everyone else
I recommend not distributing the lossy files back to the world.
This has some tie-ins with etree.org, or more specifically, with FurtherNet,
although since the advent of BitTorrent, I guess FN doesn't get used quite as