Don't just keep adding to the sudoers file in xvm-munin-config
[invirt/packages/xvm-munin-config.git] / debian / xvm-munin-master-config.postinst
1 #!/bin/sh
2 # postinst script for #PACKAGE#
3 #
4 # see: dh_installdeb(1)
5
6 set -e
7
8 # summary of how this script can be called:
9 #        * <postinst> `configure' <most-recently-configured-version>
10 #        * <old-postinst> `abort-upgrade' <new version>
11 #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12 #          <new-version>
13 #        * <postinst> `abort-remove'
14 #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
15 #          <failed-install-package> <version> `removing'
16 #          <conflicting-package> <version>
17 # for details, see http://www.debian.org/doc/debian-policy/ or
18 # the debian-policy package
19
20
21 case "$1" in
22     configure)
23         # So munin can read the mail log
24         adduser munin adm
25         
26         # First clear out the old stuff we threw in /etc/sudoers
27         perl -i.bak -ne 's%^### (BEGIN|END) xvm-munin-config\s*$%%m && ($skip = ($1 eq "BEGIN")); print unless $skip;' /etc/sudoers
28         
29         # So munin can sudo to get to postfix queue info
30         cat >>/etc/sudoers <<EOF
31 ### BEGIN xvm-munin-config
32 munin ALL=(postfix) SETENV: NOPASSWD: /etc/munin/plugins/postfix_mailqueue
33 munin ALL=(munin) SETENV: NOPASSWD: ALL
34 ### END xvm-munin-config
35 EOF
36         
37         # So munin can read from the database
38         su postgres -c 'createuser -S -D -R munin' || true
39         su postgres -c 'psql invirt --quiet' <<EOF
40 GRANT SELECT ON pg_class TO munin;
41 GRANT SELECT ON pg_index TO munin;
42 GRANT SELECT ON pg_statio_user_tables TO munin;
43 GRANT SELECT ON pg_stat_activity TO munin;
44 GRANT SELECT ON pg_locks TO munin;
45 EOF
46         
47         # Install munin plugins that are now configured
48         munin-node-configure --suggest --shell | sh
49         
50         invoke-rc.d munin-node restart
51     ;;
52
53     abort-upgrade|abort-remove|abort-deconfigure)
54     ;;
55
56     *)
57         echo "postinst called with unknown argument \`$1'" >&2
58         exit 1
59     ;;
60 esac
61
62 # dh_installdeb will replace this with shell code automatically
63 # generated by other debhelper scripts.
64
65 #DEBHELPER#
66
67 exit 0