This commit is contained in:
GitHub Merge Button 2012-03-26 12:58:06 -07:00
commit 9bd0b35aca
7 changed files with 168 additions and 0 deletions

2
.gitignore vendored
View file

@ -14,3 +14,5 @@ src/static/js/jquery.js
src/static/js/prefixfree.js src/static/js/prefixfree.js
npm-debug.log npm-debug.log
*.DS_Store *.DS_Store
run.log
vagrant/.vagrant

20
vagrant/Vagrantfile vendored Normal file
View file

@ -0,0 +1,20 @@
Vagrant::Config.run do |config|
config.vm.box = "lucid32"
config.vm.box_url = "http://files.vagrantup.com/lucid32.box"
config.vm.customize ["modifyvm", :id, "--memory", "512"]
config.vm.network :hostonly, "33.33.33.10"
# enable this to see the GUI if vagrant cannot connect
#config.vm.boot_mode = :gui
config.vm.provision :puppet do |puppet|
puppet.manifests_path = "puppet/manifests"
puppet.manifest_file = "init.pp"
# enable this to see verbose and debug puppet output
#puppet.options = "--verbose --debug"
end
Vagrant::Config.run do |config|
config.vm.share_folder("etherpad-code", "/home/etherpad/dev/etherpad", "../", :nfs => true)
end
end

View file

@ -0,0 +1,53 @@
class etherpad-lite {
package { "curl":
ensure => latest,
require => Exec["apt-get-update"];
}
file { "/home/etherpad":
require => User[etherpad],
owner => etherpad,
group => etherpad,
mode => 775,
recurse=> false,
ensure => directory;
}
file { "/home/etherpad/dev":
require => File["/home/etherpad"],
owner => etherpad,
group => etherpad,
mode => 775,
recurse=> false,
ensure => directory;
}
user { "etherpad":
ensure => "present",
uid => "10000",
shell => "/bin/bash",
managehome => true;
}
exec { "/bin/bash bin/installDeps.sh":
alias => "install-etherpad-deps",
require => Exec["install-npm"],
environment => "HOME=/home/etherpad",
cwd => "/home/etherpad/dev/etherpad",
logoutput => on_failure,
user => "etherpad";
}
exec { "/bin/bash bin/run.sh > run.log 2>&1 &":
alias => "run-etherpad-lite",
require => Exec["install-etherpad-deps"],
environment => "HOME=/home/etherpad",
cwd => "/home/etherpad/dev/etherpad",
logoutput => on_failure,
user => "etherpad";
}
group { "puppet":
ensure => "present",
}
}

View file

@ -0,0 +1,54 @@
class node-js {
package { ["build-essential"]:
ensure => latest,
require => Exec["apt-get-update"];
}
exec { "/usr/bin/apt-get update":
alias => "apt-get-update";
}
exec {
"/usr/bin/wget -N http://nodejs.org/dist/${node_version}/node-${node_version}.tar.gz":
alias => "download-node",
user => "etherpad",
cwd => "/home/etherpad/dev/",
require => File["/home/etherpad/dev"];
"/bin/tar zxf node-${node_version}.tar.gz":
alias => "unpack-node",
user => "etherpad",
cwd => "/home/etherpad/dev/",
creates => "/home/etherpad/dev/etherpad/node-${node_version}",
require => Exec["download-node"];
"/home/etherpad/dev/node-${node_version}/configure --prefix=/home/etherpad/node-${node_version} && /usr/bin/make install":
alias => "install-node",
environment => "HOME=/home/etherpad",
user => "etherpad",
cwd => "/home/etherpad/dev/node-${node_version}",
creates => "/home/etherpad/node-${node_version}",
timeout => 0,
require => [Exec["unpack-node"], Package["build-essential"]];
"/usr/bin/wget -N http://registry.npmjs.org/npm/-/npm-${npm_version}.tgz":
alias => "download-npm",
user => "etherpad",
cwd => "/home/etherpad/dev/",
require => Exec["install-node"];
"/bin/mkdir npm-${npm_version} && /bin/tar -C npm-${npm_version} -xf npm-${npm_version}.tgz":
alias => "unpack-npm",
user => "etherpad",
cwd => "/home/etherpad/dev/",
creates => "/home/etherpad/dev/npm-${npm_version}",
require => Exec["download-npm"];
"/usr/bin/make install":
alias => "install-npm",
environment => ["HOME=/home/etherpad", "UID=10000"],
user => "etherpad",
cwd => "/home/etherpad/dev/npm-${npm_version}/package",
require => Exec["unpack-npm"];
}
}

View file

@ -0,0 +1,11 @@
$node_version = "v0.6.14"
$npm_version = "1.1.12"
Exec {
logoutput => on_failure,
path => "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/ruby/bin/:/home/etherpad/node-${node_version}/bin",
}
import "classes/*"
import "nodes/*"

View file

@ -0,0 +1,4 @@
node default {
include node-js
include etherpad-lite
}

View file

@ -0,0 +1,24 @@
#!/bin/bash
#
# Quick bootstrap script for an Ubuntu Lucid host
#
# This allows you to bootstrap any Lucid box (VM, physical hardware, etc)
# using Puppet and automatically install a full Etherpad environment on it.
#
apt-get install git-core puppet rsync
GIT_REPO_URL="git://github.com/rhelmer/etherpad-lite.git"
mkdir /puppet
# Clone the project from github
useradd etherpad
su - etherpad
mkdir dev
cd dev
git clone $GIT_REPO_URL etherpad
exit
# Let puppet take it from here...
puppet /home/etherpad/dev/puppet/manifests/*.pp