Deploy abusehelper and wiki sources via puppet instead of svn

This commit is contained in:
Ossi Salmi 2010-12-26 19:38:03 +02:00 committed by Timo Mkinen
parent b7be3a0c09
commit a97cf92b2b
4 changed files with 165 additions and 51 deletions

24
abusehelper/Makefile Normal file
View file

@ -0,0 +1,24 @@
AHELPERURL = http://abusehelper.googlecode.com/svn/trunk
AHELPER = $(shell svn info $(AHELPERURL) | awk '/^Revision:/ { print $$2 }')
AHELPERSRC = /usr/local/src/abusehelper-$(AHELPER)
OUT = /srv/puppet/files/common/packages
all: tarball
tarball: $(OUT)/abusehelper.tar.gz
$(AHELPERSRC):
( umask 022 ; mkdir -p $(AHELPERSRC) ; cd $(AHELPERSRC) && \
svn export -r $(AHELPER) $(AHELPERURL) abusehelper )
$(OUT)/abusehelper-$(AHELPER).tar.gz: $(AHELPERSRC)
( umask 022 ; cd $(AHELPERSRC) && \
tar zcvf $(OUT)/abusehelper-$(AHELPER).tar.gz abusehelper )
$(OUT)/abusehelper.tar.gz: $(OUT)/abusehelper-$(AHELPER).tar.gz
( umask 022 ; cd $(OUT) && \
ln -fs abusehelper-$(AHELPER).tar.gz abusehelper.tar.gz )
clean: override AHELPER = *
clean:
rm -fr $(AHELPERSRC)

View file

@ -2,22 +2,25 @@
#
class abusehelper {
if !$abusehelper_revision {
fail("\$abusehelper_revision must be set.")
}
package { [ "python-pyme", "python-tz" ]:
ensure => installed,
}
include svn::client
svn::export { "/usr/local/src/abusehelper":
source => "http://abusehelper.googlecode.com/svn/trunk",
ensure => $abusehelper_revision,
file { "/usr/local/src/abusehelper.tar.gz":
ensure => present,
mode => 0644,
owner => root,
group => root,
source => "puppet:///files/packages/abusehelper.tar.gz",
links => follow,
}
util::extract::tar { "/usr/local/src/abusehelper":
strip => 1,
source => "/usr/local/src/abusehelper.tar.gz",
require => File["/usr/local/src/abusehelper.tar.gz"],
}
python::setup::install { "/usr/local/src/abusehelper":
require => Svn::Export["/usr/local/src/abusehelper"],
require => Util::Extract::Tar["/usr/local/src/abusehelper"],
}
include user::system

34
wiki/Makefile Normal file
View file

@ -0,0 +1,34 @@
GWIKIURL = http://svn.graphingwiki.webfactional.com/trunk
GWIKI = $(shell svn info $(GWIKIURL) | awk '/^Revision:/ { print $$2 }')
GWIKISRC = /usr/local/src/graphingwiki-$(GWIKI)
MOIN = 1.8.8
MOINURL = http://static.moinmo.in/files/moin-$(MOIN).tar.gz
OUT = /srv/puppet/files/common/packages
all: tarball
tarball: $(OUT)/graphingwiki.tar.gz $(OUT)/moin.tar.gz
$(GWIKISRC):
( umask 022 ; mkdir -p $(GWIKISRC) && cd $(GWIKISRC) && \
svn export -r $(GWIKI) $(GWIKIURL) graphingwiki )
$(OUT)/graphingwiki-$(GWIKI).tar.gz: $(GWIKISRC)
( umask 022 ; mkdir -p $(OUT) && cd $(GWIKISRC) && \
tar zcvf $(OUT)/graphingwiki-$(GWIKI).tar.gz graphingwiki )
$(OUT)/graphingwiki.tar.gz: $(OUT)/graphingwiki-$(GWIKI).tar.gz
( umask 022 ; cd $(OUT) && \
ln -fs graphingwiki-$(GWIKI).tar.gz graphingwiki.tar.gz )
$(OUT)/moin-$(MOIN).tar.gz:
( umask 022 ; mkdir -p $(OUT) && cd $(OUT) && \
wget -N $(MOINURL) )
$(OUT)/moin.tar.gz: $(OUT)/moin-$(MOIN).tar.gz
( umask 022 ; cd $(OUT) && \
ln -fs moin-$(MOIN).tar.gz moin.tar.gz )
clean: override GWIKI = *
clean:
rm -fr $(GWIKISRC)

View file

@ -1,41 +1,34 @@
# Install MoinMoin.
#
# === Global variables
#
# $wiki_moin_version:
# MoinMoin version number.
#
class wiki::moin {
if !$wiki_moin_version {
fail("\$wiki_moin_version must be set.")
}
custom::file { "/usr/local/src/moin-${wiki_moin_version}.tar.gz":
file { "/usr/local/src/moin.tar.gz":
ensure => present,
mode => 0644,
owner => root,
group => root,
source => "http://static.moinmo.in/files/moin-${wiki_moin_version}.tar.gz",
source => "puppet:///files/packages/moin.tar.gz",
links => follow,
}
file { "/usr/local/src/moin-${wiki_moin_version}.patch":
file { "/usr/local/src/moin.patch":
ensure => present,
mode => 0644,
owner => root,
group => root,
source => "puppet:///files/wiki/moin-${wiki_moin_version}.patch",
source => "puppet:///files/packages/moin.patch",
links => follow,
}
util::extract::tar { "/usr/local/src/moin-${wiki_moin_version}":
util::extract::tar { "/usr/local/src/moin":
strip => 1,
source => "/usr/local/src/moin-${wiki_moin_version}.tar.gz",
require => Custom::File["/usr/local/src/moin-${wiki_moin_version}.tar.gz"],
source => "/usr/local/src/moin.tar.gz",
require => File["/usr/local/src/moin.tar.gz"],
}
util::patch { "/usr/local/src/moin-${wiki_moin_version}":
source => "/usr/local/src/moin-${wiki_moin_version}.patch",
require => Util::Extract::Tar["/usr/local/src/moin-${wiki_moin_version}"],
util::patch { "/usr/local/src/moin":
source => "/usr/local/src/moin.patch",
require => Util::Extract::Tar["/usr/local/src/moin"],
}
python::setup::install { "/usr/local/src/moin-${wiki_moin_version}":
require => Util::Patch["/usr/local/src/moin-${wiki_moin_version}"],
python::setup::install { "/usr/local/src/moin":
require => Util::Patch["/usr/local/src/moin"],
}
}
@ -43,21 +36,20 @@ class wiki::moin {
# Fetch graphingwiki from svn.
#
# === Global variables
#
# $wiki_gwiki_revision:
# Graphingwiki revision.
#
class wiki::graphingwiki::common {
if !$wiki_graphingwiki_revision {
fail("\$wiki_graphingwiki_revision must be set.")
file { "/usr/local/src/graphingwiki.tar.gz":
ensure => directory,
mode => 0644,
owner => root,
group => root,
source => "puppet:///files/packages/graphingwiki.tar.gz",
links => follow,
}
include svn::client
svn::export { "/usr/local/src/graphingwiki":
source => "http://svn.graphingwiki.webfactional.com/trunk",
ensure => $wiki_gwiki_revision,
util::extract::tar { "/usr/local/src/graphingwiki":
strip => 1,
source => "/usr/local/src/graphingwiki.tar.gz",
require => File["/usr/local/src/graphingwiki.tar.gz"],
}
}
@ -68,7 +60,7 @@ class wiki::graphingwiki::common {
class wiki::graphingwiki inherits wiki::graphingwiki::common {
python::setup::install { "/usr/local/src/graphingwiki/graphingwiki":
require => Svn::Export["/usr/local/src/graphingwiki"],
require => Util::Extract::Tar["/usr/local/src/graphingwiki"],
}
}
@ -79,7 +71,7 @@ class wiki::graphingwiki inherits wiki::graphingwiki::common {
class wiki::opencollab inherits wiki::graphingwiki::common {
python::setup::install { "/usr/local/src/graphingwiki/opencollab":
require => Svn::Export["/usr/local/src/graphingwiki"],
require => Util::Extract::Tar["/usr/local/src/graphingwiki"],
}
}
@ -90,7 +82,7 @@ class wiki::opencollab inherits wiki::graphingwiki::common {
class wiki::collab inherits wiki::graphingwiki::common {
python::setup::install { "/usr/local/src/graphingwiki/collab":
require => Svn::Export["/usr/local/src/graphingwiki"],
require => Util::Extract::Tar["/usr/local/src/graphingwiki"],
}
}
@ -172,13 +164,52 @@ class wiki::collab::base {
mode => 2660,
owner => collab,
group => collab,
require => [ File["/srv/wikis"], User["collab"], Group["collab"], ],
require => [ File["/srv/wikis"], User["collab"], Group["collab"],
Python::Setup::Install["/usr/local/src/graphingwiki/collab"],
Python::Setup::Install["/usr/local/src/moin"], ],
}
File["/srv/wikis/collab/underlay"] {
source => "/usr/local/share/moin/underlay",
recurse => true,
exec { "collab-copy-underlay":
user => collab,
group => collab,
path => "/bin:/usr/bin:/sbin:/usr/sbin",
cwd => $operatingsystem ? {
ubuntu => "/usr/local/share/moin/underlay",
default => "/usr/share/moin/underlay",
},
command => "cp -R * /srv/wikis/collab/underlay && chmod -R g=u,o-rwx /srv/wikis/collab/underlay/*",
creates => "/srv/wikis/collab/underlay/pages",
require => File["/srv/wikis/collab/underlay"],
}
file { "/srv/wikis/collab/config/collabfarm.py":
ensure => present,
mode => 0660,
owner => collab,
group => collab,
source => "/usr/local/src/graphingwiki/collab/config/collabfarm.py",
replace => false,
require => File["/srv/wikis/collab/config"],
}
file { "/srv/wikis/collab/config/intermap.txt":
ensure => present,
mode => 0660,
owner => collab,
group => collab,
source => "/usr/local/src/graphingwiki/collab/config/intermap.txt",
replace => false,
require => File["/srv/wikis/collab/config"],
}
file { "/srv/wikis/collab/config/logging.conf":
ensure => present,
mode => 0660,
owner => collab,
group => collab,
source => "/usr/local/src/graphingwiki/collab/config/logging.conf",
replace => false,
require => File["/srv/wikis/collab/config"],
}
file { "/srv/wikis/collab/htdocs/.htaccess":
@ -187,9 +218,28 @@ class wiki::collab::base {
owner => collab,
group => collab,
source => "puppet:///wiki/htaccess",
replace => false,
require => File["/srv/wikis/collab/htdocs"],
}
file { "/etc/local/collab":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
file { "/etc/local/collab/collab.ini":
ensure => present,
mode => 0644,
owner => root,
group => root,
source => "/usr/local/src/graphingwiki/collab/config/collab.ini",
replace => false,
require => [ File["/etc/local/collab"],
Python::Setup::Install["/usr/local/src/graphingwiki/collab"], ],
}
if !$wiki_collab_fqdn {
$wiki_collab_fqdn = $homename
}
@ -202,7 +252,10 @@ class wiki::collab::base {
file { "/srv/www/https/${wiki_collab_fqdn}/moin_static":
ensure => link,
target => "/usr/local/share/moin/htdocs",
target => $operatingsystem ? {
ubuntu => "/usr/local/share/moin/htdocs",
default => "/usr/share/moin/htdocs",
},
require => File["/srv/www/https/${wiki_collab_fqdn}"],
}