Skip to content

Instantly share code, notes, and snippets.

@robbkidd
robbkidd / gist:12f4ddfc8007529a9b84
Created December 10, 2014 18:02
Ugly Way to Get Chef to Install an RPM from a URL
where_the_cool_packages_at = {}
where_the_cool_packages_at << { :package => "awesomeness.rpm", # this will be used as the downloaded filename
:url => "https://awesomesauce.example.com/download/this/awesomeness.rpm" # where to get it
}
where_the_cool_packages_at << { :package => "otherthing.rpm",
:url => "https://someotherthing.example.com/download/the/otherthing.rpm"
}
where_the_cool_packages_at.each do |package, url|
# download the thing from `url` and put it in Chef's file cache
@robbkidd
robbkidd / blargle.rb
Created December 11, 2014 01:04
RSpec in Your Ruby
require 'rspec'
class HiThere
def blarg
"hi there"
end
end
describe HiThere do
it 'says hi' do
# Packaging ruby with fpm is a bit meta
# You need ruby install to use fpm
# I used an RVM install on a VM install fpm in a packaging gemset
# Install EPEL if you don't have it already
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# Install deps for ruby build
yum install rpm-build readline-devel.x86_64 libffi-devel.x86_64 libyaml-devel.x86_64 zlib-devel.x86_64 openssl-devel.x86_64
@robbkidd
robbkidd / .rubinius_last_error
Created May 18, 2011 20:57
Rubinus crash during 'bundle install' of pr_geohash
rubinius 1.2.4dev installed via RVM v1.6.5 on Ubuntu 10.10
Installing pr_geohash (1.0.0) *** glibc detected *** /home/robb/.rvm/rubies/rbx-head/bin/rbx: free(): invalid next size (fast): 0x0b617120 ***
Rubinius Crash Report #rbxcrashreport
Error: signal SIGABRT
[[Backtrace]]
/home/robb/.rvm/rubies/rbx-head/bin/rbx[0x80acf2c]
@robbkidd
robbkidd / gist:1085842
Created July 16, 2011 00:35
Rubinius fails to run bundle
» ruby -v
rubinius 2.0.0dev (1.8.7 4b04a866 yyyy-mm-dd JI) [i686-pc-linux-gnu]
» gem install bundler
Fetching: bundler-1.0.15.gem (100%)
Successfully installed bundler-1.0.15
1 gem installed
Installing ri documentation for bundler-1.0.15...
Installing RDoc documentation for bundler-1.0.15...
@robbkidd
robbkidd / check_table_and_sequence_names.rb
Created July 27, 2012 21:52
Quick method to display the names of your PostgreSQL tables and their pkeys and sequences.
def check_table_and_sequence_names
connection = ActiveRecord::Base.connection
if connection.adapter_name == "PostgreSQL"
table_names = connection.tables.keep_if { |t| t !~ /schema_migrations/ }
table_names.map { |t| [t, connection.pk_and_sequence_for(t)].flatten }
end
end
check_table_and_sequence_names
# => [["tablename", "primarykeyname", "sequencename"]]
@robbkidd
robbkidd / safe_rename.log
Created July 28, 2012 17:30
Renaming a Postgres sequence used by multiple tables.
testy=# CREATE SEQUENCE common_fruit_id_seq;
CREATE SEQUENCE
testy=#
testy=# CREATE TABLE apples (
testy(# id INT4 DEFAULT nextval('common_fruit_id_seq') NOT NULL,
testy(# price NUMERIC
testy(# );
CREATE TABLE
testy=#
testy=# CREATE TABLE oranges (
@robbkidd
robbkidd / gist:3764326
Created September 21, 2012 22:37
Escaping things
#include <stdio.h>
#include <string>
#include <string.h>
int main() {
std::string str = "ab:cd:ef";
const char *psz = str.c_str();
for (;;)
{
@robbkidd
robbkidd / README.md
Last active December 11, 2015 00:19
Multiple NICs in a Vagrant machine

With this Vagrantfile, you will have a Vagrant VM with three NICs. Vagrant uses eth0 for NAT'ing the guest to the outside world. (I do not know a way to override this. Vagrant is very unhappy with eth0 being the NAT interface.) eth1 and eth2 will be on separate virtual subnets available only between the host and the guest.

web [2013-02-12T17:35:11+00:00] INFO: *** Chef 10.20.0 ***
web [2013-02-12T17:35:11+00:00] INFO: [inet6] no default interface, picking the first ipaddress
web [2013-02-12T17:35:11+00:00] INFO: Client key /etc/chef/client.pem is not present - registering
web [2013-02-12T17:35:12+00:00] INFO: HTTP Request Returned 404 Not Found: Cannot load node web
web [2013-02-12T17:35:12+00:00] INFO: Setting the run_list to ["role[chef-client]"] from JSON
web
web ================================================================================
web Error expanding the run_list:
web ================================================================================
web