From a97cf92b2b533a2c650d94bfb75028dd36420566 Mon Sep 17 00:00:00 2001 From: Ossi Salmi Date: Sun, 26 Dec 2010 19:38:03 +0200 Subject: [PATCH] Deploy abusehelper and wiki sources via puppet instead of svn --- abusehelper/Makefile | 24 ++++++ abusehelper/manifests/init.pp | 23 +++--- wiki/Makefile | 34 +++++++++ wiki/manifests/init.pp | 135 +++++++++++++++++++++++----------- 4 files changed, 165 insertions(+), 51 deletions(-) create mode 100644 abusehelper/Makefile create mode 100644 wiki/Makefile diff --git a/abusehelper/Makefile b/abusehelper/Makefile new file mode 100644 index 0000000..4bc2a64 --- /dev/null +++ b/abusehelper/Makefile @@ -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) diff --git a/abusehelper/manifests/init.pp b/abusehelper/manifests/init.pp index 5f41dfc..40573bd 100644 --- a/abusehelper/manifests/init.pp +++ b/abusehelper/manifests/init.pp @@ -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 diff --git a/wiki/Makefile b/wiki/Makefile new file mode 100644 index 0000000..59e30cf --- /dev/null +++ b/wiki/Makefile @@ -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) diff --git a/wiki/manifests/init.pp b/wiki/manifests/init.pp index c8bd5f8..02526ff 100644 --- a/wiki/manifests/init.pp +++ b/wiki/manifests/init.pp @@ -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}"], }