Skip to content

Instantly share code, notes, and snippets.

@werdnum
Last active August 29, 2015 14:15
Show Gist options
  • Save werdnum/d9accb2d4a0815171052 to your computer and use it in GitHub Desktop.
Save werdnum/d9accb2d4a0815171052 to your computer and use it in GitHub Desktop.
Labs-Vagrant on your own VM

I like labs-vagrant, and I like it even better when I can run it on my own server.

Eight commands to get labs-vagrant on your own Ubuntu server, from scratch.

# apt-get install puppet git
# git clone https://git.wikimedia.org/git/operations/puppet.git
# cd puppet
# git checkout -B production origin/production
# cd ..
# wget https://gist.github.com/werdnum/d9accb2d4a0815171052/raw/62cb5df6eaa193c9f4d1eb71ecf65dd123c14a4f/labs-vagrant.pp
# puppet apply --modulepath=puppet/modules labs-vagrant.pp
# labs-vagrant provision
$install_directory = "/srv/vagrant"
package { 'git-core': ensure => 'present' }
file { '/home/vagrant':
ensure => 'directory',
owner => 'vagrant',
group => 'vagrant',
}
user { 'vagrant': ensure => 'present' }
group { 'wikidev': ensure => 'present' }
sudo::user { 'vagrant' :
privileges => [
'ALL=(ALL) NOPASSWD: ALL',
],
}
sudo::group { 'wikidev_vagrant':
privileges => [
'ALL=(vagrant) NOPASSWD: ALL',
],
group => 'wikidev',
}
git::clone { 'vagrant':
directory => $install_directory,
origin => 'https://gerrit.wikimedia.org/r/mediawiki/vagrant',
owner => 'vagrant',
group => 'wikidev',
shared => true,
branch => $branch_name,
}
file { "${install_directory}/logs":
ensure => 'directory',
owner => 'vagrant',
group => 'www-data',
mode => '0775',
require => Git::Clone['vagrant'],
}
file { '/vagrant':
ensure => 'link',
target => $install_directory,
require => Git::Clone['vagrant'],
}
file { '/bin/labs-vagrant':
ensure => 'link',
target => '/vagrant/lib/labs-vagrant.rb',
mode => '0555',
require => File['/vagrant'],
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment