install popcon
authorPeter Palfrader <peter@palfrader.org>
Thu, 1 Dec 2016 10:19:44 +0000 (10:19 +0000)
committerPeter Palfrader <peter@palfrader.org>
Thu, 1 Dec 2016 10:19:44 +0000 (10:19 +0000)
manifests/site.pp
modules/popcon/manifests/init.pp [new file with mode: 0644]
modules/popcon/templates/popularity-contest.conf.erb [new file with mode: 0644]

index 9b3aa43..c06a641 100644 (file)
@@ -40,6 +40,7 @@ node default {
        include dsa_lvm
        include grub
        include multipath
+       include popcon
        if $::lsbdistcodename == squeeze {
                include roles::udldap::client
        } else {
diff --git a/modules/popcon/manifests/init.pp b/modules/popcon/manifests/init.pp
new file mode 100644 (file)
index 0000000..ab289ef
--- /dev/null
@@ -0,0 +1,11 @@
+class popcon {
+       $popcon_host_id = hkdf('/etc/puppet/secret', "popcon_host_id-${::fqdn}")
+
+       package { 'popularity-contest':
+               ensure => installed,
+       }
+
+       file { '/etc/popularity-contest.conf':
+               content => template('popcon/popularity-contest.conf.erb')
+       }
+}
diff --git a/modules/popcon/templates/popularity-contest.conf.erb b/modules/popcon/templates/popularity-contest.conf.erb
new file mode 100644 (file)
index 0000000..14b2fb7
--- /dev/null
@@ -0,0 +1,21 @@
+##
+### THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
+### USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git
+###
+
+PARTICIPATE="yes"
+USEHTTP="yes"
+<%=
+# hostids are 32 hexchars long
+id_short = popcon_host_id[0,32]
+
+# slightly biased, but meh
+day = (popcon_host_id[0].ord + 256*popcon_host_id[1].ord) % 7
+
+conf = []
+conf << "MY_HOSTID=\"#{id_short}\""
+conf << "DAY=\"#{day}\""
+
+conf.join("\n")
+-%>
+