]> gitweb.fluxo.info Git - puppet-puppet.git/commitdiff
Add standalone class.
authordrebs <drebs@riseup.net>
Tue, 12 Aug 2014 19:10:52 +0000 (16:10 -0300)
committerdrebs <drebs@riseup.net>
Wed, 13 Aug 2014 15:48:23 +0000 (12:48 -0300)
files/puppet
manifests/base.pp [new file with mode: 0644]
manifests/daemon.pp
manifests/master.pp
manifests/repo.pp [moved from manifests/master/update.pp with 90% similarity]
manifests/standalone.pp [new file with mode: 0644]

index d9f5fd435e6e2d3a76eb51e0a46951f89ee04199..3b85c50e36c6d19b57ab931ed5ef9534358f4bfc 100644 (file)
@@ -1,7 +1,7 @@
 # Defaults for puppet - sourced by /etc/init.d/puppet
 
 # Start puppet on boot?
-START=yes
+START=<?= start_on_boot ? "yes" : "no" ?>
 
 # Startup options
 DAEMON_OPTS=""
diff --git a/manifests/base.pp b/manifests/base.pp
new file mode 100644 (file)
index 0000000..299ecc6
--- /dev/null
@@ -0,0 +1,28 @@
+# manage puppet package
+class puppet::base(
+  $start_on_boot = false
+) {
+  include puppet
+
+  case $ensure {
+    '': {
+      $daemon_ensure = $::lsbdistcodename ? {
+        'squeeze' => 'latest',
+        default   => installed,
+      }
+    }
+  }
+
+  package { "puppet":
+   ensure  => $daemon_ensure,
+  }
+
+  file { "/etc/default/puppet":
+    source => "puppet:///modules/puppet/puppet",
+    owner  => "root",
+    group  => "root",
+    mode   => 0644,
+    ensure => present,
+  }
+
+}
index c8a5b1e36464d8fb6bacb6971358a92d2a5e5ef3..59d83ba8a0268fb984942b5258873633a33ef7c9 100644 (file)
@@ -1,3 +1,4 @@
+# manage puppet service
 class puppet::daemon(
   $master        = false,
   $ensure        = hiera('puppet::daemon::ensure',       ''),
@@ -6,29 +7,12 @@ class puppet::daemon(
   $configtimeout = hiera('puppet::daemon::configtimeout', "120"),
   $server        = hiera('puppet::daemon::server',        "puppet.${::domain}")
 ) {
-  include puppet
-
-  case $ensure {
-    '': {
-      $daemon_ensure = $::lsbdistcodename ? {
-        'squeeze' => 'latest',
-        default   => installed,
-      }
-    }
-  }
-
-  package { "puppet":
-   ensure  => $daemon_ensure,
-   require => Package["cron"],
+  class { "puppet::base":
+    start_on_boot => true
   }
 
-  file { "/etc/default/puppet":
-    source => "puppet:///modules/puppet/puppet",
-    owner  => "root",
-    group  => "root",
-    mode   => 0644,
-    ensure => present,
-    notify => Service["puppet"],
+  package { "cron":
+    ensure => installed,
   }
 
   service { "puppet":
index 94727d1c24ed9bfb774451ad5245eaf419bb03f0..cd9852ac0fa8bbf757feb635a6681d6090b20302 100644 (file)
@@ -115,7 +115,7 @@ class puppet::master(
   }
 
   # update config
-  class { 'puppet::master::update':
+  class { 'puppet::repo::update':
     ensure => $main ? {
       true    => present,
       default => absent,
similarity index 90%
rename from manifests/master/update.pp
rename to manifests/repo.pp
index 4c7a42ca7c3eb5ea53df0a8e8ff41457f8409436..1623a3c40f623c7ee13955cbac90bbc15290aa28 100644 (file)
@@ -1,7 +1,7 @@
-class puppet::master::update(
-  $ensure  = present,
-  $method  = hiera('puppet::master::update::method', 'cron')
-) {
+# manage a git repo that updates /etc/puppet
+class puppet::repo {
+  include puppet
+
   # make sure we have a puppet repo
   exec { "make-puppet-repo":
     command => "/bin/sh -c 'mkdir -p /var/git/repositories/puppet.git && cd /var/git/repositories/puppet.git && git --bare init'",
@@ -10,27 +10,6 @@ class puppet::master::update(
     require => [ User['gitolite'], File['/var/git/repositories'] ],
   }
 
-  # puppet update script
-  file { "/usr/local/sbin/update-puppet-conf.sh":
-    source => "puppet:///modules/puppet/update-puppet-conf.sh",
-    owner  => "puppet",
-    group  => "puppet",
-    mode   => 0750,
-    ensure => present,
-  }
-
-  # cron rule to update puppet config repository every 5 minutes
-  cron { "puppet-update":
-    command  => "/usr/local/sbin/update-puppet-conf.sh > /dev/null 2>&1",
-    user     => puppet,
-    minute   => "*/5",
-    ensure   => $method ? {
-      'cron'  => $ensure,
-      default => absent,
-    },
-    require  => [ File["/usr/local/sbin/update-puppet-conf.sh"], User["puppet"] ],
-  }
-
   # use a post-update hook
   file { '/var/git/repositories/puppet.git/hooks/post-update':
     mode    => 0750,
@@ -64,3 +43,32 @@ class puppet::master::update(
     }
   }
 }
+
+class puppet::repo::update(
+  $ensure  = present,
+  $method  = hiera('puppet::update::method', 'cron')
+) {
+  include puppet::repo
+
+  # puppet update script
+  file { "/usr/local/sbin/update-puppet-conf.sh":
+    source => "puppet:///modules/puppet/update-puppet-conf.sh",
+    owner  => "puppet",
+    group  => "puppet",
+    mode   => 0750,
+    ensure => present,
+  }
+
+  # cron rule to update puppet config repository every 5 minutes
+  cron { "puppet-update":
+    command  => "/usr/local/sbin/update-puppet-conf.sh > /dev/null 2>&1",
+    user     => puppet,
+    minute   => "*/5",
+    ensure   => $method ? {
+      'cron'  => $ensure,
+      default => absent,
+    },
+    require  => [ File["/usr/local/sbin/update-puppet-conf.sh"], User["puppet"] ],
+  }
+
+}
diff --git a/manifests/standalone.pp b/manifests/standalone.pp
new file mode 100644 (file)
index 0000000..342fbe4
--- /dev/null
@@ -0,0 +1,13 @@
+# manage a puppet standalone installation with no agent
+class puppet::standalone {
+
+  include puppet::base  # agent will not start on boot by default
+  include puppet::repo
+
+  service { "puppet":
+    enable     => false,
+    ensure     => stopped,
+    hasrestart => true,
+    require    => [ Package["puppet"], File["/etc/default/puppet"] ],
+  }
+}