Remove development environment as I havent used it neither updated on a long time
This commit is contained in:
parent
9dbd5e409f
commit
80171fcf90
7 changed files with 0 additions and 428 deletions
92
development/Vagrantfile
vendored
92
development/Vagrantfile
vendored
|
@ -1,92 +0,0 @@
|
||||||
# -*- mode: ruby -*-
|
|
||||||
# vi: set ft=ruby :
|
|
||||||
|
|
||||||
require 'pathname'
|
|
||||||
BASE_URL = 'http://bit.ly/'
|
|
||||||
LAST_RELEASE_DATE = '2013-09-28'
|
|
||||||
LOCAL_BOXES_PATH = Pathname('../boxes/output').expand_path
|
|
||||||
def lxc_box_url(release_name)
|
|
||||||
box_name = "vagrant-lxc-#{release_name}-amd64-#{LAST_RELEASE_DATE}"
|
|
||||||
local_box_file = LOCAL_BOXES_PATH.join("#{box_name}.box")
|
|
||||||
|
|
||||||
local_box_file.exist? ?
|
|
||||||
local_box_file.to_s :
|
|
||||||
"#{BASE_URL}/#{box_name}"
|
|
||||||
end
|
|
||||||
|
|
||||||
BOXES = {
|
|
||||||
precise: {
|
|
||||||
lxc_url: lxc_box_url('precise'),
|
|
||||||
vbox_url: 'http://files.vagrantup.com/precise64.box'
|
|
||||||
},
|
|
||||||
quantal: {
|
|
||||||
lxc_url: lxc_box_url('quantal'),
|
|
||||||
vbox_url: 'https://github.com/downloads/roderik/VagrantQuantal64Box/quantal64.box'
|
|
||||||
},
|
|
||||||
raring: {
|
|
||||||
lxc_url: lxc_box_url('raring'),
|
|
||||||
vbox_url: 'http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-amd64-vagrant-disk1.box'
|
|
||||||
},
|
|
||||||
saucy: {
|
|
||||||
vbox_url: 'http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box'
|
|
||||||
},
|
|
||||||
squeeze: {
|
|
||||||
lxc_url: lxc_box_url('squeeze'),
|
|
||||||
# https://gist.github.com/henare/1964037
|
|
||||||
vbox_url: 'http://dl.dropbox.com/u/174733/debian-squeeze-64.box'
|
|
||||||
},
|
|
||||||
wheezy: {
|
|
||||||
lxc_url: lxc_box_url('wheezy'),
|
|
||||||
vbox_url: 'http://puppet-vagrant-boxes.puppetlabs.com/debian-70rc1-x64-vbox4210.box'
|
|
||||||
},
|
|
||||||
sid: {
|
|
||||||
lxc_url: lxc_box_url('sid'),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Vagrant.require_plugin 'vagrant-lxc'
|
|
||||||
Vagrant.require_plugin 'vagrant-cachier'
|
|
||||||
Vagrant.require_plugin 'vagrant-pristine'
|
|
||||||
|
|
||||||
Vagrant.configure("2") do |config|
|
|
||||||
config.vm.synced_folder "../", "/vagrant", id: 'vagrant-root', nfs: true
|
|
||||||
|
|
||||||
config.cache.scope = :machine
|
|
||||||
|
|
||||||
ip_suffix = 30
|
|
||||||
BOXES.each do |box_name, box_config|
|
|
||||||
config.vm.define(box_name.to_sym) do |vm_config|
|
|
||||||
vm_config.vm.network :private_network, ip: "192.168.50.#{ip_suffix += 1}"
|
|
||||||
vm_config.vm.box = "#{box_name}64"
|
|
||||||
|
|
||||||
if box_config[:vbox_url]
|
|
||||||
vm_config.vm.provider :virtualbox do |vb, vb_config|
|
|
||||||
vb_config.vm.box_url = box_config[:vbox_url]
|
|
||||||
vb_config.vm.hostname = 'vbox'
|
|
||||||
|
|
||||||
vb.customize [
|
|
||||||
"modifyvm", :id,
|
|
||||||
"--memory", '1536',
|
|
||||||
"--cpus", '2'
|
|
||||||
]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if box_config[:lxc_url]
|
|
||||||
vm_config.vm.provider :lxc do |lxc, lxc_config|
|
|
||||||
lxc_config.vm.box_url = box_config[:lxc_url]
|
|
||||||
lxc_config.vm.hostname = 'lxc-dev-box'
|
|
||||||
|
|
||||||
# Required to boot nested containers
|
|
||||||
lxc.customize 'aa_profile', 'unconfined' unless %w(squeeze wheezy sid).include? box_name.to_s
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
config.vm.provision :puppet do |puppet|
|
|
||||||
puppet.manifests_path = "."
|
|
||||||
puppet.manifest_file = "site.pp"
|
|
||||||
puppet.options << [ '--verbose', '--debug' ]
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,37 +0,0 @@
|
||||||
###############################################################################
|
|
||||||
# This file has the same configs as the built in /etc/default/lxc on Ubuntu,
|
|
||||||
# we only changed IPs to 10.0.254.* to avoid collision with LXC default 10.0.3.*
|
|
||||||
# which is likely to be running from the host machine
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# MIRROR to be used by ubuntu template at container creation:
|
|
||||||
# Leaving it undefined is fine
|
|
||||||
#MIRROR="http://archive.ubuntu.com/ubuntu"
|
|
||||||
# or
|
|
||||||
#MIRROR="http://<host-ip-addr>:3142/archive.ubuntu.com/ubuntu"
|
|
||||||
|
|
||||||
# LXC_AUTO - whether or not to start containers symlinked under
|
|
||||||
# /etc/lxc/auto
|
|
||||||
LXC_AUTO="true"
|
|
||||||
|
|
||||||
# Leave USE_LXC_BRIDGE as "true" if you want to use lxcbr0 for your
|
|
||||||
# containers. Set to "false" if you'll use virbr0 or another existing
|
|
||||||
# bridge, or mavlan to your host's NIC.
|
|
||||||
USE_LXC_BRIDGE="true"
|
|
||||||
|
|
||||||
# If you change the LXC_BRIDGE to something other than lxcbr1, then
|
|
||||||
# you will also need to update your /etc/lxc/lxc.conf as well as the
|
|
||||||
# configuration (/var/lib/lxc/<container>/config) for any containers
|
|
||||||
# already created using the default config to reflect the new bridge
|
|
||||||
# name.
|
|
||||||
# If you have the dnsmasq daemon installed, you'll also have to update
|
|
||||||
# /etc/dnsmasq.d/lxc and restart the system wide dnsmasq daemon.
|
|
||||||
LXC_BRIDGE="lxcbr0"
|
|
||||||
LXC_ADDR="10.0.253.1"
|
|
||||||
LXC_NETMASK="255.255.255.0"
|
|
||||||
LXC_NETWORK="10.0.253.0/24"
|
|
||||||
LXC_DHCP_RANGE="10.0.253.2,10.0.253.254"
|
|
||||||
LXC_DHCP_MAX="253"
|
|
||||||
|
|
||||||
LXC_SHUTDOWN_TIMEOUT=120
|
|
|
@ -1,37 +0,0 @@
|
||||||
###############################################################################
|
|
||||||
# This file has the same configs as the built in /etc/default/lxc on Ubuntu,
|
|
||||||
# we only changed IPs to 10.0.254.* to avoid collision with LXC default 10.0.3.*
|
|
||||||
# which is likely to be running from the host machine
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# MIRROR to be used by ubuntu template at container creation:
|
|
||||||
# Leaving it undefined is fine
|
|
||||||
#MIRROR="http://archive.ubuntu.com/ubuntu"
|
|
||||||
# or
|
|
||||||
#MIRROR="http://<host-ip-addr>:3142/archive.ubuntu.com/ubuntu"
|
|
||||||
|
|
||||||
# LXC_AUTO - whether or not to start containers symlinked under
|
|
||||||
# /etc/lxc/auto
|
|
||||||
LXC_AUTO="true"
|
|
||||||
|
|
||||||
# Leave USE_LXC_BRIDGE as "true" if you want to use lxcbr0 for your
|
|
||||||
# containers. Set to "false" if you'll use virbr0 or another existing
|
|
||||||
# bridge, or mavlan to your host's NIC.
|
|
||||||
USE_LXC_BRIDGE="true"
|
|
||||||
|
|
||||||
# If you change the LXC_BRIDGE to something other than lxcbr1, then
|
|
||||||
# you will also need to update your /etc/lxc/lxc.conf as well as the
|
|
||||||
# configuration (/var/lib/lxc/<container>/config) for any containers
|
|
||||||
# already created using the default config to reflect the new bridge
|
|
||||||
# name.
|
|
||||||
# If you have the dnsmasq daemon installed, you'll also have to update
|
|
||||||
# /etc/dnsmasq.d/lxc and restart the system wide dnsmasq daemon.
|
|
||||||
LXC_BRIDGE="lxcbr0"
|
|
||||||
LXC_ADDR="10.0.251.1"
|
|
||||||
LXC_NETMASK="255.255.255.0"
|
|
||||||
LXC_NETWORK="10.0.251.0/24"
|
|
||||||
LXC_DHCP_RANGE="10.0.253.2,10.0.251.254"
|
|
||||||
LXC_DHCP_MAX="253"
|
|
||||||
|
|
||||||
LXC_SHUTDOWN_TIMEOUT=120
|
|
|
@ -1,37 +0,0 @@
|
||||||
###############################################################################
|
|
||||||
# This file has the same configs as the built in /etc/default/lxc on Ubuntu,
|
|
||||||
# we only changed IPs to 10.0.254.* to avoid collision with LXC default 10.0.3.*
|
|
||||||
# which is likely to be running from the host machine
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# MIRROR to be used by ubuntu template at container creation:
|
|
||||||
# Leaving it undefined is fine
|
|
||||||
#MIRROR="http://archive.ubuntu.com/ubuntu"
|
|
||||||
# or
|
|
||||||
#MIRROR="http://<host-ip-addr>:3142/archive.ubuntu.com/ubuntu"
|
|
||||||
|
|
||||||
# LXC_AUTO - whether or not to start containers symlinked under
|
|
||||||
# /etc/lxc/auto
|
|
||||||
LXC_AUTO="true"
|
|
||||||
|
|
||||||
# Leave USE_LXC_BRIDGE as "true" if you want to use lxcbr0 for your
|
|
||||||
# containers. Set to "false" if you'll use virbr0 or another existing
|
|
||||||
# bridge, or mavlan to your host's NIC.
|
|
||||||
USE_LXC_BRIDGE="true"
|
|
||||||
|
|
||||||
# If you change the LXC_BRIDGE to something other than lxcbr1, then
|
|
||||||
# you will also need to update your /etc/lxc/lxc.conf as well as the
|
|
||||||
# configuration (/var/lib/lxc/<container>/config) for any containers
|
|
||||||
# already created using the default config to reflect the new bridge
|
|
||||||
# name.
|
|
||||||
# If you have the dnsmasq daemon installed, you'll also have to update
|
|
||||||
# /etc/dnsmasq.d/lxc and restart the system wide dnsmasq daemon.
|
|
||||||
LXC_BRIDGE="lxcbr0"
|
|
||||||
LXC_ADDR="10.0.250.1"
|
|
||||||
LXC_NETMASK="255.255.255.0"
|
|
||||||
LXC_NETWORK="10.0.250.0/24"
|
|
||||||
LXC_DHCP_RANGE="10.0.253.2,10.0.250.254"
|
|
||||||
LXC_DHCP_MAX="253"
|
|
||||||
|
|
||||||
LXC_SHUTDOWN_TIMEOUT=120
|
|
|
@ -1,37 +0,0 @@
|
||||||
###############################################################################
|
|
||||||
# This file has the same configs as the built in /etc/default/lxc on Ubuntu,
|
|
||||||
# we only changed IPs to 10.0.254.* to avoid collision with LXC default 10.0.3.*
|
|
||||||
# which is likely to be running from the host machine
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# MIRROR to be used by ubuntu template at container creation:
|
|
||||||
# Leaving it undefined is fine
|
|
||||||
#MIRROR="http://archive.ubuntu.com/ubuntu"
|
|
||||||
# or
|
|
||||||
#MIRROR="http://<host-ip-addr>:3142/archive.ubuntu.com/ubuntu"
|
|
||||||
|
|
||||||
# LXC_AUTO - whether or not to start containers symlinked under
|
|
||||||
# /etc/lxc/auto
|
|
||||||
LXC_AUTO="true"
|
|
||||||
|
|
||||||
# Leave USE_LXC_BRIDGE as "true" if you want to use lxcbr0 for your
|
|
||||||
# containers. Set to "false" if you'll use virbr0 or another existing
|
|
||||||
# bridge, or mavlan to your host's NIC.
|
|
||||||
USE_LXC_BRIDGE="true"
|
|
||||||
|
|
||||||
# If you change the LXC_BRIDGE to something other than lxcbr1, then
|
|
||||||
# you will also need to update your /etc/lxc/lxc.conf as well as the
|
|
||||||
# configuration (/var/lib/lxc/<container>/config) for any containers
|
|
||||||
# already created using the default config to reflect the new bridge
|
|
||||||
# name.
|
|
||||||
# If you have the dnsmasq daemon installed, you'll also have to update
|
|
||||||
# /etc/dnsmasq.d/lxc and restart the system wide dnsmasq daemon.
|
|
||||||
LXC_BRIDGE="lxcbr0"
|
|
||||||
LXC_ADDR="10.0.254.1"
|
|
||||||
LXC_NETMASK="255.255.255.0"
|
|
||||||
LXC_NETWORK="10.0.254.0/24"
|
|
||||||
LXC_DHCP_RANGE="10.0.254.2,10.0.254.254"
|
|
||||||
LXC_DHCP_MAX="253"
|
|
||||||
|
|
||||||
LXC_SHUTDOWN_TIMEOUT=120
|
|
|
@ -1,37 +0,0 @@
|
||||||
###############################################################################
|
|
||||||
# This file has the same configs as the built in /etc/default/lxc on Ubuntu,
|
|
||||||
# we only changed IPs to 10.0.254.* to avoid collision with LXC default 10.0.3.*
|
|
||||||
# which is likely to be running from the host machine
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# MIRROR to be used by ubuntu template at container creation:
|
|
||||||
# Leaving it undefined is fine
|
|
||||||
#MIRROR="http://archive.ubuntu.com/ubuntu"
|
|
||||||
# or
|
|
||||||
#MIRROR="http://<host-ip-addr>:3142/archive.ubuntu.com/ubuntu"
|
|
||||||
|
|
||||||
# LXC_AUTO - whether or not to start containers symlinked under
|
|
||||||
# /etc/lxc/auto
|
|
||||||
LXC_AUTO="true"
|
|
||||||
|
|
||||||
# Leave USE_LXC_BRIDGE as "true" if you want to use lxcbr0 for your
|
|
||||||
# containers. Set to "false" if you'll use virbr0 or another existing
|
|
||||||
# bridge, or mavlan to your host's NIC.
|
|
||||||
USE_LXC_BRIDGE="true"
|
|
||||||
|
|
||||||
# If you change the LXC_BRIDGE to something other than lxcbr1, then
|
|
||||||
# you will also need to update your /etc/lxc/lxc.conf as well as the
|
|
||||||
# configuration (/var/lib/lxc/<container>/config) for any containers
|
|
||||||
# already created using the default config to reflect the new bridge
|
|
||||||
# name.
|
|
||||||
# If you have the dnsmasq daemon installed, you'll also have to update
|
|
||||||
# /etc/dnsmasq.d/lxc and restart the system wide dnsmasq daemon.
|
|
||||||
LXC_BRIDGE="lxcbr0"
|
|
||||||
LXC_ADDR="10.0.252.1"
|
|
||||||
LXC_NETMASK="255.255.255.0"
|
|
||||||
LXC_NETWORK="10.0.252.0/24"
|
|
||||||
LXC_DHCP_RANGE="10.0.253.2,10.0.252.254"
|
|
||||||
LXC_DHCP_MAX="253"
|
|
||||||
|
|
||||||
LXC_SHUTDOWN_TIMEOUT=120
|
|
|
@ -1,151 +0,0 @@
|
||||||
Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/', '/usr/local/bin'] }
|
|
||||||
|
|
||||||
stage { 'preinstall':
|
|
||||||
before => Stage['main']
|
|
||||||
}
|
|
||||||
|
|
||||||
class apt_get_update {
|
|
||||||
exec { 'apt-get -y update':
|
|
||||||
unless => "test -f /etc/default/lxc"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class { 'apt_get_update':
|
|
||||||
stage => preinstall
|
|
||||||
}
|
|
||||||
|
|
||||||
# Because I'm lazy ;)
|
|
||||||
exec {
|
|
||||||
'echo "alias be=\"bundle exec\"" >> /home/vagrant/.bashrc':
|
|
||||||
unless => 'grep -q "bundle exec" /home/vagrant/.bashrc';
|
|
||||||
|
|
||||||
'echo "export VAGRANT_DEFAULT_PROVIDER=lxc" >> /home/vagrant/.bashrc':
|
|
||||||
unless => 'grep -q "VAGRANT_DEFAULT_PROVIDER" /home/vagrant/.bashrc';
|
|
||||||
|
|
||||||
'echo "cd /vagrant" >> /home/vagrant/.bashrc':
|
|
||||||
unless => 'grep -q "cd /vagrant" /home/vagrant/.bashrc';
|
|
||||||
}
|
|
||||||
|
|
||||||
# Overwrite LXC default configs
|
|
||||||
exec {
|
|
||||||
'config-lxc':
|
|
||||||
# We need to do this otherwise IPs will collide with the host's lxc dhcp server.
|
|
||||||
# If we install the package prior to setting this configs the container will go crazy.
|
|
||||||
command => "cp /vagrant/development/lxc-configs/${hostname} /etc/default/lxc"
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
package {
|
|
||||||
[ 'libffi-dev', 'bsdtar', 'exuberant-ctags', 'ruby1.9.1-dev', 'htop', 'git',
|
|
||||||
'build-essential', 'redir', 'curl', 'vim', 'btrfs-tools', 'psmisc' ]:
|
|
||||||
ensure => 'installed'
|
|
||||||
;
|
|
||||||
|
|
||||||
'lxc':
|
|
||||||
require => Exec['config-lxc']
|
|
||||||
;
|
|
||||||
|
|
||||||
'bundler':
|
|
||||||
ensure => 'installed',
|
|
||||||
provider => 'gem'
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Upgrade kernel if needed
|
|
||||||
package {
|
|
||||||
[ 'linux-image-generic', 'linux-headers-generic' ]:
|
|
||||||
ensure => 'latest'
|
|
||||||
}
|
|
||||||
|
|
||||||
# Make sure we can create and boot nested containers
|
|
||||||
if $hostname == 'vbox' {
|
|
||||||
package { 'apparmor-utils': }
|
|
||||||
exec { 'aa-complain /usr/bin/lxc-start': }
|
|
||||||
}
|
|
||||||
|
|
||||||
# Allow gems to be installed on vagrant user home avoiding "sudo"s
|
|
||||||
# Tks to http://wiki.railsplayground.com/railsplayground/show/How+to+install+gems+and+non+root+user
|
|
||||||
file {
|
|
||||||
'/home/vagrant/gems':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'vagrant',
|
|
||||||
group => 'vagrant'
|
|
||||||
;
|
|
||||||
|
|
||||||
'/home/vagrant/.gemrc':
|
|
||||||
content => '
|
|
||||||
---
|
|
||||||
:verbose: true
|
|
||||||
gem: --no-ri --no-rdoc
|
|
||||||
:update_sources: true
|
|
||||||
:sources:
|
|
||||||
- http://gems.rubyforge.org
|
|
||||||
- http://gems.github.com
|
|
||||||
:backtrace: false
|
|
||||||
:bulk_threshold: 1000
|
|
||||||
:benchmark: false
|
|
||||||
gemhome: /home/vagrant/gems
|
|
||||||
gempath:
|
|
||||||
- /home/vagrant/gems
|
|
||||||
- /var/lib/gems/1.9.1
|
|
||||||
'
|
|
||||||
}
|
|
||||||
exec {
|
|
||||||
'set-gem-paths':
|
|
||||||
command => 'cat << EOF >> /home/vagrant/.profile
|
|
||||||
export GEM_HOME=/home/vagrant/gems
|
|
||||||
export GEM_PATH=/home/vagrant/gems:/var/lib/gems/1.9.1
|
|
||||||
export PATH=$PATH:/home/vagrant/gems/bin
|
|
||||||
EOF',
|
|
||||||
unless => 'grep -q "GEM_HOME" /home/vagrant/.profile'
|
|
||||||
}
|
|
||||||
|
|
||||||
# Bundle!
|
|
||||||
exec {
|
|
||||||
'su -l vagrant -c "cd /vagrant && bundle install"':
|
|
||||||
# We are checking for guard-rspec here but it could be any gem...
|
|
||||||
unless => 'gem list guard | grep -q rspec',
|
|
||||||
cwd => '/vagrant',
|
|
||||||
require => [
|
|
||||||
Exec['set-gem-paths'],
|
|
||||||
File['/home/vagrant/gems', '/home/vagrant/.gemrc'],
|
|
||||||
Package['bundler']
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Setup vagrant default ssh key
|
|
||||||
file {
|
|
||||||
'/home/vagrant/.ssh':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'vagrant',
|
|
||||||
group => 'vagrant'
|
|
||||||
}
|
|
||||||
exec {
|
|
||||||
'download-private-key':
|
|
||||||
command => 'wget https://raw.github.com/mitchellh/vagrant/master/keys/vagrant -O /home/vagrant/.ssh/id_rsa',
|
|
||||||
creates => '/home/vagrant/.ssh/id_rsa',
|
|
||||||
require => File['/home/vagrant/.ssh'],
|
|
||||||
user => 'vagrant'
|
|
||||||
;
|
|
||||||
|
|
||||||
'wget https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/id_rsa.pub':
|
|
||||||
creates => '/home/vagrant/.ssh/id_rsa.pub',
|
|
||||||
require => File['/home/vagrant/.ssh'],
|
|
||||||
user => 'vagrant'
|
|
||||||
;
|
|
||||||
}
|
|
||||||
file {
|
|
||||||
'/home/vagrant/.ssh/id_rsa':
|
|
||||||
ensure => 'present',
|
|
||||||
mode => '0600',
|
|
||||||
require => Exec['download-private-key']
|
|
||||||
}
|
|
||||||
|
|
||||||
# Passwordless sudo wrapper script
|
|
||||||
file {
|
|
||||||
'/usr/bin/lxc-vagrant-wrapper':
|
|
||||||
ensure => 'present',
|
|
||||||
mode => '0755',
|
|
||||||
content => "#!/usr/bin/env ruby
|
|
||||||
exec ARGV.join(' ')"
|
|
||||||
}
|
|
Loading…
Reference in a new issue