puppet-meetbot/manifests/init.pp

66 lines
1.3 KiB
Puppet

class vcs {
# if we already have the git repo the pull updates
exec { "update_meetbot_repo":
command => "git pull --ff-only",
cwd => "/tmp/meetbot",
path => "/bin:/usr/bin",
onlyif => "test -d /tmp/meetbot"
}
# otherwise get a new clone of it
exec { "clone_meebot_repo":
command => "git clone https://github.com/emonty/meetbot.git /tmp/meetbot",
path => "/bin:/usr/bin",
onlyif => "test ! -d /tmp/meetbot"
}
}
class meetbot {
stage { 'first': before => Stage['main'] }
class { 'vcs':
stage => 'first'
}
user { "meetbot":
shell => "/sbin/nologin",
home => "/var/lib/meetbot",
system => true,
gid => "meetbot",
require => Group["meetbot"]
}
group { "meetbot":
ensure => present
}
package { ['supybot', 'nginx', 'python-twisted']:
ensure => present
}
service { "nginx":
ensure => running,
hasrestart => true
}
file { "/var/lib/meetbot":
ensure => directory,
owner => 'meetbot',
require => User['meetbot']
}
file { "/usr/share/pyshared/supybot/plugins/MeetBot":
ensure => directory,
recurse => true,
source => "/tmp/meetbot/MeetBot",
require => Package["supybot"]
}
file { "/etc/nginx/sites-enabled/default":
ensure => absent,
require => Package['nginx']
}
}