Skip to content

Instantly share code, notes, and snippets.

Avatar

Richard Caceres rchrd2

View GitHub Profile
View time_range_regex.py
"""
A pretty nice time parsing regex.
@author Richard Caceres, @rchrd2
"""
import re
# The history for this regex is stored in my gist
# https://gist.github.com/rchrd2/9773922
time_range_regex = re.compile(r'''
@rchrd2
rchrd2 / Procfile
Last active Aug 29, 2015
Procfile for gulp + python server in ./public
View Procfile
# Run with "foreman start"
gulp: gulp
server: sh -c 'cd public && python -m SimpleHTTPServer 9876'
@rchrd2
rchrd2 / bootstrap_puppet.sh
Last active Aug 29, 2015
First steps to setup a new puppet agent
View bootstrap_puppet.sh
# Install NTP for clock syncing
apt-get install -y ntp
/etc/init.d/ntp start
# Install Puppet from official packages
cd
mkdir source
cd source
sudo wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
@rchrd2
rchrd2 / gist:e5810e7fa15b7beb713d
Created Jun 19, 2014
/etc/nagios3/conf.d/localhost_nagios2.cfg
View gist:e5810e7fa15b7beb713d
# A simple configuration file for monitoring the local host
# This can serve as an example for configuring other servers;
# Custom services specific to this host are added here, but services
# defined in nagios2-common_services.cfg may also apply.
#
define host{
use generic-host ; Name of host template to use
host_name localhost
alias localhost
@rchrd2
rchrd2 / check_redis_llen.sh
Created Jun 21, 2014
Nagios check_redis_llen.sh
View check_redis_llen.sh
#!/bin/bash
# A simple nagios check for Redis set length
#
# It doesn't require any redis libraries and uses the raw api
#
# @author Richard Caceres (me@rchrd.net)
# @license MIT
# @example check_redis_llen -c 50 -w 10 -k celery -h localhost -p 6379
# Parse -c -w args
@rchrd2
rchrd2 / repo.pp
Last active Aug 29, 2015
Continuous integration with Puppet and Github.com
View repo.pp
# Clones a repository from our github
# Info: https://github.com/puppetlabs/puppetlabs-vcsrepo/blob/master/README.GIT.markdown
class web::repo ($revision, $latest=false) {
# Git is used to install our repositories
ensure_resource('package', 'git', {'ensure' => 'present'})
class { 'ssh::client':
storeconfigs_enabled => false,
@rchrd2
rchrd2 / pull-changes.pp
Created Jun 22, 2014
example puppet unless for git changes
View pull-changes.pp
exec { 'pull-changes':
# This unless command makes it so this exec only runs when the branch is behind the head
unless => [
"/bin/bash -c 'cd /var/www/django/django \
&& CURRBRANCH=$(/usr/bin/git rev-parse --abbrev-ref HEAD)\
&& /usr/bin/git fetch origin \$CURRBRANCH \
&& /usr/bin/git rev-list HEAD...origin/\$CURRBRANCH --count'\
| /bin/grep '0'"
],
@rchrd2
rchrd2 / sshd_config
Last active Aug 29, 2015
Enable SSH Tunneling
View sshd_config
# Enable ssh tunneling on remote server
GatewayPorts yes
ClientAliveInterval 30
ClientAliveCountMax 99999
# Example tunnel from local server
# $ ssh -R8081:127.0.0.1:8080 root@example.com
# $ curl example.com:8081
View celery_wrapper.sh
#!/bin/bash
generic_handler () {
kill -s $1 $PID
while kill -0 $PID &>/dev/null
do
wait $PID
done
}
@rchrd2
rchrd2 / install_puppet_modules.sh
Created Dec 16, 2014
install_puppet_modules.sh
View install_puppet_modules.sh
#!/bin/bash
# This is a little script that will install the required puppet modules.
# It was written to help setup vagrant. It is called as a provision script.
#
# # This installs the modules
# config.vm.provision :shell do |shell|
# shell.path = "./puppet/install_puppet_modules.sh"
# end
#