From 0e351d3ab799d85d16c0ee926bbc05a530247664 Mon Sep 17 00:00:00 2001 From: Michael Scherer Date: Sun, 9 Jan 2011 11:18:38 +0000 Subject: move concat to external ( taken from the web ) --- modules/concat/manifests/fragment.pp | 51 ----------- modules/concat/manifests/init.pp | 164 ----------------------------------- modules/concat/manifests/setup.pp | 36 -------- 3 files changed, 251 deletions(-) delete mode 100644 modules/concat/manifests/fragment.pp delete mode 100644 modules/concat/manifests/init.pp delete mode 100644 modules/concat/manifests/setup.pp (limited to 'modules/concat/manifests') diff --git a/modules/concat/manifests/fragment.pp b/modules/concat/manifests/fragment.pp deleted file mode 100644 index 890d43a4..00000000 --- a/modules/concat/manifests/fragment.pp +++ /dev/null @@ -1,51 +0,0 @@ -# Puts a file fragment into a directory previous setup using concat -# -# OPTIONS: -# - target The file that these fragments belong to -# - content If present puts the content into the file -# - source If content was not specified, use the source -# - order By default all files gets a 10_ prefix in the directory -# you can set it to anything else using this to influence the -# order of the content in the file -# - ensure Present/Absent or destination to a file to include another file -# - mode Mode for the file -# - owner Owner of the file -# - group Owner of the file -# - backup Controls the filebucketing behavior of the final file and -# see File type reference for its use. Defaults to 'puppet' -define concat::fragment($target, $content='', $source='', $order=10, $ensure = "present", $mode = 0644, $owner = root, $group = root, $backup = "puppet") { - $safe_name = regsubst($name, '/', '_', 'G') - $safe_target_name = regsubst($target, '/', '_', 'G') - $concatdir = $concat::setup::concatdir - $fragdir = "${concatdir}/${safe_target_name}" - - # if content is passed, use that, else if source is passed use that - # if neither passed, but $ensure is in symlink form, make a symlink - case $content { - "": { - case $source { - "": { - case $ensure { - "", "absent", "present", "file", "directory": { - crit("No content, source or symlink specified") - } - } - } - default: { File{ source => $source } } - } - } - default: { File{ content => $content } } - } - - file{"${fragdir}/fragments/${order}_${safe_name}": - mode => $mode, - owner => $owner, - group => $group, - ensure => $ensure, - backup => $backup, - alias => "concat_fragment_${name}", - notify => Exec["concat_${target}"] - } -} - -# vi:tabstop=4:expandtab:ai diff --git a/modules/concat/manifests/init.pp b/modules/concat/manifests/init.pp deleted file mode 100644 index b94411c2..00000000 --- a/modules/concat/manifests/init.pp +++ /dev/null @@ -1,164 +0,0 @@ -# A system to construct files using fragments from other files or templates. -# -# This requires at least puppet 0.25 to work correctly as we use some -# enhancements in recursive directory management and regular expressions -# to do the work here. -# -# USAGE: -# The basic use case is as below: -# -# concat{"/etc/named.conf": -# notify => Service["named"] -# } -# -# concat::fragment{"foo.com_config": -# target => "/etc/named.conf", -# order => 10, -# content => template("named_conf_zone.erb") -# } -# -# # add a fragment not managed by puppet so local users -# # can add content to managed file -# concat::fragment{"foo.com_user_config": -# target => "/etc/named.conf", -# order => 12, -# ensure => "/etc/named.conf.local" -# } -# -# This will use the template named_conf_zone.erb to build a single -# bit of config up and put it into the fragments dir. The file -# will have an number prefix of 10, you can use the order option -# to control that and thus control the order the final file gets built in. -# -# SETUP: -# The class concat::setup defines a variable $concatdir - you should set this -# to a directory where you want all the temporary files and fragments to be -# stored. Avoid placing this somewhere like /tmp since you should never -# delete files here, puppet will manage them. -# -# There's some regular expression magic to figure out the puppet version but -# if you're on an older 0.24 version just set $puppetversion = 24 -# -# Before you can use any of the concat features you should include the -# class concat::setup somewhere on your node first. -# -# DETAIL: -# We use a helper shell script called concatfragments.sh that gets placed -# in /usr/local/bin to do the concatenation. While this might seem more -# complex than some of the one-liner alternatives you might find on the net -# we do a lot of error checking and safety checks in the script to avoid -# problems that might be caused by complex escaping errors etc. -# -# LICENSE: -# Apache Version 2 -# -# LATEST: -# http://github.com/ripienaar/puppet-concat/ -# -# CONTACT: -# R.I.Pienaar -# Volcane on freenode -# @ripienaar on twitter -# www.devco.net - - -# Sets up so that you can use fragments to build a final config file, -# -# OPTIONS: -# - mode The mode of the final file -# - owner Who will own the file -# - group Who will own the file -# - force Enables creating empty files if no fragments are present -# - warn Adds a normal shell style comment top of the file indicating -# that it is built by puppet -# - backup Controls the filebucketing behavior of the final file and -# see File type reference for its use. Defaults to 'puppet' -# -# ACTIONS: -# - Creates fragment directories if it didn't exist already -# - Executes the concatfragments.sh script to build the final file, this script will create -# directory/fragments.concat. Execution happens only when: -# * The directory changes -# * fragments.concat != final destination, this means rebuilds will happen whenever -# someone changes or deletes the final file. Checking is done using /usr/bin/cmp. -# * The Exec gets notified by something else - like the concat::fragment define -# - Copies the file over to the final destination using a file resource -# -# ALIASES: -# - The exec can notified using Exec["concat_/path/to/file"] or Exec["concat_/path/to/directory"] -# - The final file can be referened as File["/path/to/file"] or File["concat_/path/to/file"] -define concat($mode = 0644, $owner = "root", $group = "root", $warn = "false", $force = "false", $backup = "puppet") { - $safe_name = regsubst($name, '/', '_', 'G') - $concatdir = $concat::setup::concatdir - $version = $concat::setup::majorversion - $fragdir = "${concatdir}/${safe_name}" - $concat_name = "fragments.concat.out" - $default_warn_message = '# This file is managed by Puppet. DO NOT EDIT.' - - case $warn { - 'true',true,yes,on: { $warnmsg = "$default_warn_message" } - 'false',false,no,off: { $warnmsg = "" } - default: { $warnmsg = "$warn" } - } - - $warnmsg_escaped = regsubst($warnmsg, "'", "'\\\\''", 'G') - $warnflag = $warnmsg_escaped ? { - '' => '', - default => "-w '$warnmsg_escaped'" - } - - case $force { - 'true',true,yes,on: { $forceflag = "-f" } - 'false',false,no,off: { $forceflag = "" } - default: { fail("Improper 'force' value given to concat: $force") } - } - - File{ - owner => root, - group => root, - mode => $mode, - backup => $backup - } - - file{$fragdir: - ensure => directory; - - "${fragdir}/fragments": - ensure => directory, - recurse => true, - purge => true, - force => true, - ignore => [".svn", ".git", ".gitignore"], - source => $version ? { - 24 => "puppet:///concat/null", - default => undef, - }, - notify => Exec["concat_${name}"]; - - "${fragdir}/fragments.concat": - ensure => present; - - "${fragdir}/${concat_name}": - ensure => present; - - $name: - source => "${fragdir}/${concat_name}", - owner => $owner, - group => $group, - checksum => md5, - mode => $mode, - ensure => present, - alias => "concat_${name}"; - } - - exec{"concat_${name}": - user => root, - group => root, - notify => File[$name], - subscribe => File[$fragdir], - alias => "concat_${fragdir}", - require => [ File["/usr/local/bin/concatfragments.sh"], File[$fragdir], File["${fragdir}/fragments"], File["${fragdir}/fragments.concat"] ], - unless => "/usr/local/bin/concatfragments.sh -o ${fragdir}/${concat_name} -d ${fragdir} -t ${warnflag} ${forceflag}", - command => "/usr/local/bin/concatfragments.sh -o ${fragdir}/${concat_name} -d ${fragdir} ${warnflag} ${forceflag}", - } -} diff --git a/modules/concat/manifests/setup.pp b/modules/concat/manifests/setup.pp deleted file mode 100644 index 9676fb66..00000000 --- a/modules/concat/manifests/setup.pp +++ /dev/null @@ -1,36 +0,0 @@ -# Sets up the concat system. -# -# $concatdir should point to a place where you wish the fragments to -# live. This should not be somewhere like /tmp since ideally these files -# should not be deleted ever, puppet should always manage them -# -# $puppetversion should be either 24 or 25 to enable a 24 compatible -# mode, in 24 mode you might see phantom notifies this is a side effect -# of the method we use to clear the fragments directory. -# -# The regular expression below will try to figure out your puppet version -# but this code will only work in 0.24.8 and newer. -# -# It also copies out the concatfragments.sh file to /usr/local/bin -class concat::setup { - $concatdir = "/var/lib/puppet/concat" - $majorversion = regsubst($puppetversion, '^[0-9]+[.]([0-9]+)[.][0-9]+$', '\1') - - file{"/usr/local/bin/concatfragments.sh": - owner => root, - group => root, - mode => 755, - source => $majorversion ? { - 24 => "puppet:///concat/concatfragments.sh", - default => "puppet:///modules/concat/concatfragments.sh" - }; - - $concatdir: - ensure => directory, - owner => root, - group => root, - mode => 755; - } -} - -# vi:tabstop=4:expandtab:ai -- cgit v1.2.1