diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-05-11 12:54:22 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-05-11 12:54:43 +0200 |
commit | c8511b2019b44360887d33a9626ec14c81736aee (patch) | |
tree | 68826f98d5e040c34dbc249570d306664020de5c | |
parent | 5a5b32d87d06cfc6dce82cf83cb023ed2764fc45 (diff) | |
download | Puppet-c8511b2019b44360887d33a9626ec14c81736aee.tar.gz Puppet-c8511b2019b44360887d33a9626ec14c81736aee.tar.zst Puppet-c8511b2019b44360887d33a9626ec14c81736aee.zip |
Add slack notification for puppet
-rw-r--r-- | .gitmodules | 3 | ||||
m--------- | external_modules/slack | 0 | ||||
-rw-r--r-- | modules/base_installation/manifests/puppet.pp | 8 | ||||
-rw-r--r-- | modules/base_installation/templates/puppet/puppet.conf.erb | 15 | ||||
-rw-r--r-- | modules/base_installation/templates/puppet/slack.yaml.erb | 12 |
5 files changed, 33 insertions, 5 deletions
diff --git a/.gitmodules b/.gitmodules index 357cc1d..0f21622 100644 --- a/.gitmodules +++ b/.gitmodules | |||
@@ -61,3 +61,6 @@ | |||
61 | [submodule "modules/redis"] | 61 | [submodule "modules/redis"] |
62 | path = external_modules/redis | 62 | path = external_modules/redis |
63 | url = git://git.immae.eu/github/arioch/puppet-redis | 63 | url = git://git.immae.eu/github/arioch/puppet-redis |
64 | [submodule "external_modules/slack"] | ||
65 | path = external_modules/slack | ||
66 | url = git://git.immae.eu/github/cegeka/puppet-slack | ||
diff --git a/external_modules/slack b/external_modules/slack new file mode 160000 | |||
Subproject 5abc0909a05b6665d94c63771ab81620aecc1f2 | |||
diff --git a/modules/base_installation/manifests/puppet.pp b/modules/base_installation/manifests/puppet.pp index 3ca226a..05fe9a1 100644 --- a/modules/base_installation/manifests/puppet.pp +++ b/modules/base_installation/manifests/puppet.pp | |||
@@ -82,6 +82,7 @@ class base_installation::puppet ( | |||
82 | } | 82 | } |
83 | 83 | ||
84 | $xmpp = lookup("base_installation::notify_xmpp", { "default_value" => {} }) | 84 | $xmpp = lookup("base_installation::notify_xmpp", { "default_value" => {} }) |
85 | $slack = lookup("base_installation::notify_slack", { "default_value" => {} }) | ||
85 | 86 | ||
86 | file { "$base_installation::puppet_conf_path/puppet.conf": | 87 | file { "$base_installation::puppet_conf_path/puppet.conf": |
87 | content => template("base_installation/puppet/puppet.conf.erb"), | 88 | content => template("base_installation/puppet/puppet.conf.erb"), |
@@ -95,6 +96,13 @@ class base_installation::puppet ( | |||
95 | } | 96 | } |
96 | } | 97 | } |
97 | 98 | ||
99 | unless empty($slack) { | ||
100 | file { "$base_installation::puppet_conf_path/slack.yaml": | ||
101 | content => template("base_installation/puppet/slack.yaml.erb"), | ||
102 | require => File[$base_installation::puppet_conf_path], | ||
103 | } | ||
104 | } | ||
105 | |||
98 | if file("$base_installation::puppet_conf_path/host_ldap.info", "/dev/null") != "" and | 106 | if file("$base_installation::puppet_conf_path/host_ldap.info", "/dev/null") != "" and |
99 | empty($facts["ldapvar"]) { | 107 | empty($facts["ldapvar"]) { |
100 | fail("LDAP was activated but facts are not available") | 108 | fail("LDAP was activated but facts are not available") |
diff --git a/modules/base_installation/templates/puppet/puppet.conf.erb b/modules/base_installation/templates/puppet/puppet.conf.erb index 03b33bb..da39468 100644 --- a/modules/base_installation/templates/puppet/puppet.conf.erb +++ b/modules/base_installation/templates/puppet/puppet.conf.erb | |||
@@ -1,9 +1,14 @@ | |||
1 | [main] | 1 | [main] |
2 | <% if @xmpp.count > 0 %> | 2 | <% |
3 | reports = store,xmpp | 3 | reports = ["store"] |
4 | <% else %> | 4 | if @xmpp.count > 0 |
5 | reports = store | 5 | reports << "xmpp" |
6 | <% end %> | 6 | end |
7 | if @slack.count > 0 | ||
8 | reports << "slack" | ||
9 | end | ||
10 | %> | ||
11 | reports = <%= reports.join(",") %> | ||
7 | 12 | ||
8 | basemodulepath = <%= @puppet_code_path %>/modules:<%= @puppet_code_path %>/external_modules | 13 | basemodulepath = <%= @puppet_code_path %>/modules:<%= @puppet_code_path %>/external_modules |
9 | 14 | ||
diff --git a/modules/base_installation/templates/puppet/slack.yaml.erb b/modules/base_installation/templates/puppet/slack.yaml.erb new file mode 100644 index 0000000..bcfb9f8 --- /dev/null +++ b/modules/base_installation/templates/puppet/slack.yaml.erb | |||
@@ -0,0 +1,12 @@ | |||
1 | --- | ||
2 | :slack_webhook: '<%= @slack["webhook"] %>' | ||
3 | :slack_channel: '<%= @slack["channel"] %>' | ||
4 | :slack_username: '<%= @slack["username"] %>' | ||
5 | :slack_icon_url: '<%= @slack["icon_url"] %>' | ||
6 | :slack_statuses: | ||
7 | <% @slack["statuses"].each do |status| %> | ||
8 | - <%= status %> | ||
9 | <% end %> | ||
10 | :foreman_api_host: ~ | ||
11 | :puppetboard_api_host: ~ | ||
12 | |||