Skip to content

Instantly share code, notes, and snippets.

@werdnum
Created February 16, 2015 14:32
Show Gist options
  • Save werdnum/8e2847c3295f5d810d86 to your computer and use it in GitHub Desktop.
Save werdnum/8e2847c3295f5d810d86 to your computer and use it in GitHub Desktop.
# = Class: labs_vagrant
#
# Configure a labs host to use MediaWiki-Vagrant to manage local wikis
#
# == Parameters:
# - $install_directory: Directory to install MediaWiki-Vagrant in.
# Default /srv/vagrant
#
class labs_vagrant(
$install_directory = '/srv/vagrant',
) {
$legacy_directory = '/mnt/vagrant'
if $install_directory != $legacy_directory {
exec { 'migrate legacy files':
command => template('labs_vagrant/migrate_legacy.erb'),
onlyif => "/usr/bin/test -d ${legacy_directory}",
before => Git::Clone['vagrant'],
}
}
file { '/home/vagrant':
ensure => 'directory',
owner => 'vagrant',
group => 'vagrant',
}
sudo::user { 'vagrant' :
privileges => [
'ALL=(ALL) NOPASSWD: ALL',
],
}
sudo::group { 'wikidev_vagrant':
privileges => [
'ALL=(vagrant) NOPASSWD: ALL',
],
group => 'wikidev',
}
# precise-compat branch should be checked out if this is a precise installation
if $::lsbdistcodename == 'precise' {
$branch_name = 'precise-compat'
} else {
$branch_name = 'master'
}
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