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_handler
cookbook - An existing Slack incoming webhook(s)
Usage 1
- Create a new Slack webhook (https://slack.com/services/new/incoming-webhook)
- Set the
team
andapi_key
attributes above on the node/environment/etc. - Include this
slack_handler
recipe.
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_handler
recipe.
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 bothand
icon_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_level
configuration 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:
-
username
no longer defaults tonode.name
-
username
no longer defaults tochef_handler
-
icon_emoji
no longer defaults to:fork_and_knife:
-
- Optional
fail_only
,message_detail_level
andcookbook_detail_level
attributes 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
channel
being mandatory for the slackr integration; presence of optionaltimeout
attribute; 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
warn
toinfo
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_url
attribute
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