cookbook 'slack_handler', '= 0.6.0'
slack_handler (13) Versions 0.6.0 Follow15
Installs/Configures a Chef handler for reporting results to a Slack channel.
cookbook 'slack_handler', '= 0.6.0', :supermarket
knife supermarket install slack_handler
knife supermarket download slack_handler
Description
A cookbook for a chef_handler that sends reports and exceptions to Slack. There are two options for use:
1. Providing a team name and api_key (Uses the slackr gem)
2. Providing a hash containing incoming webhook url(s)
This cookbook was originally a fork of dcm-ops/chef-slack_handler by [Dan Ryan](dan.ryan@enstratius.com). We have taken over maintenance of this cookbook and released it to Supermarket.
Requirements
- The
chef_handlercookbook - An existing Slack incoming webhook(s)
Usage 1
- Create a new Slack webhook (https://slack.com/services/new/incoming-webhook)
- Set the
teamandapi_keyattributes above on the node/environment/etc. - Include this
slack_handlerrecipe.
Usage 1 Attributes
-
node['chef_client']['handler']['slack']['team']- Your Slack team name (<team-name>.slack.com) -
node['chef_client']['handler']['slack']['api_key']- The API key of your Slack incoming webhook -
node['chef_client']['handler']['slack']['channel']- The #channel to send the results, should include the hash
Optional attributes
* node['chef_client']['handler']['slack']['username'] - The username of the Slack message, defaults to the node name
* node['chef_client']['handler']['slack']['icon_url'] - The Slack message icon, defaults to nil
* node['chef_client']['handler']['slack']['icon_emoji'] - The Slack message icon defined by available :emoji:, defaults to nil
* node['chef_client']['handler']['slack']['timeout'] - Timeout in seconds for the Slack API call, defaults to 15
* node['chef_client']['handler']['slack']['fail_only'] - Only report when runs fail as opposed to every single occurrence, defaults to false
* node['chef_client']['handler']['slack']['message_detail_level'] - The level of detail in the message. Valid options are basic, elapsed and resources, defaults to basic
* node['chef_client']['handler']['slack']['cookbook_detail_level'] - The level of detail about the cookbook used in the message. Valid options are off and all, defaults to off
NOTE: If both icon_url and icon_emoji are set, icon_url will take precedence.
Usage 2
- Create a new Slack webhook (https://slack.com/services/new/incoming-webhook)
- Set the attributes as specified below
- Include this
slack_handlerrecipe.
Usage 2 Attributes
Push as many webhooks as you wish onto the node config:
```
Add webhook1 URL
node['chef_client']['handler']['slack']['webhooks']['name'].push('webhook1')
node['chef_client']['handler']['slack']['webhooks']['webhook1']['url'] = 'https://hooks.slack.com/1/2/3'
Add webhook2 URL
node['chef_client']['handler']['slack']['webhooks']['name'].push('webhook2')
node['chef_client']['handler']['slack']['webhooks']['webhook2']['url'] = 'https://hooks.slack.com/1/2/4'
```
Optional attributes global to all webhooks:
```
Timeout in seconds for the Slack API call, defaults to 15
node['chef_client']['handler']['slack']['timeout'] = 30
Customizations for Slack WebHook config
See https://api.slack.com/incoming-webhooks#customizations_for_custom_integrations
The username of the Slack message, defaults to Slack WebHook config (i.e. nil)
node['chef_client']['handler']['slack']['username'] = 'Chef Bot'
Icon URL, defaults to Slack WebHook config (i.e. nil)
node['chef_client']['handler']['slack']['icon_url'] = 'https://avatars1.githubusercontent.com/u/29740'
Emoji for the Slack call, defaults to Slack WebHook config (i.e. nil)
node['chef_client']['handler']['slack']['icon_emoji'] = ':fork_and_knife:'
Only report when runs fail as opposed to every single occurrence, defaults to false
node['chef_client']['handler']['slack']['fail_only'] = true
The level of detail in the message. Valid options are 'basic', 'elapsed' and 'resources', defaults to 'basic'
node['chef_client']['handler']['slack']['message_detail_level'] = 'resources'
The level of detail about the cookbook used in the message. Valid options are 'off' and 'all', defaults to 'off'
node['chef_client']['handler']['slack']['cookbook_detail_level'] = 'all'
``icon_url
NOTE: If bothandicon_emojiare set,icon_url` will take precedence.
Each webhook may also override the fail_only, message_detail_level and cookbook_detail_level global optional attributes:
```
Optional attributes for webhook1
node['chef_client']['handler']['slack']['webhooks']['webhook1']['fail_only'] = true
node['chef_client']['handler']['slack']['webhooks']['webhook1']['message_detail_level'] = 'elapsed'
node['chef_client']['handler']['slack']['webhooks']['webhook1']['cookbook_detail_level'] = 'all'
```
Credits
Borrowed everything from the logstash_handler cookbook here, who in turn borrowed quite a bit from the graphite_handler cookbook here.
License
slack_handler is provided under the Apache License 2.0. See LICENSE for details.
Changelog
v0.6.0
- Fix a bug in run_context where we should be calling
Chef.run_context, correct an incorrect method name. (#22)
v0.5.0
- Added
cookbook_detail_levelconfiguration which provides the optional ability to include a list of all cookbooks used in the message to Slack. Values inside README.md (#17) - Some defaults have been removed from the WebHook integration to allow Slack WebHook default configuration to be used, can still be overridden (#16). The slackr integration remains the same. Specifically:
-
usernameno longer defaults tonode.name -
usernameno longer defaults tochef_handler -
icon_emojino longer defaults to:fork_and_knife:
-
- Optional
fail_only,message_detail_levelandcookbook_detail_levelattributes for WebHook can now drop down to global attributes (#18) - icon_url now works as expected for WebHook configuration (#15)
- Clarified items in README.md including
channelbeing mandatory for the slackr integration; presence of optionaltimeoutattribute; what the defaults are (#21)
v0.4.0 (2016-03-09)
- Add CHANGELOG.md (#11)
- Move exception from message to text attachment (#12)
v0.3.0 (2016-02-18)
- Downgrade level of the webhook log message from
warntoinfo
v0.2.0 (2016-02-01)
- Add Rubocop and Foodcritic
- Fix ruby syntax
- Fix bug when not using webhooks
- Add circle.yml for CircleCI
- Webhook handler honors
:icon_urlattribute
v0.1.0 (2015-05-25)
- Initial release to Supermarket at f32996d
Forked
Forked from dcm-ops/chef-slack_handler on 2015-05-18.
Foodcritic Metric
0.6.0 passed this metric
0.6.0 passed this metric