chef-handler-sns 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +116 -170
- data/lib/chef/handler/sns.rb +245 -36
- data/lib/chef/handler/sns/config.rb +168 -36
- data/lib/chef/handler/sns/config/ohai.rb +90 -27
- data/lib/chef/handler/sns/version.rb +29 -2
- data/test/helper.rb +23 -2
- data/test/test_chef_handler_sns.rb +233 -141
- data/test/test_chef_handler_sns_config.rb +89 -71
- data/test/test_chef_handler_sns_config_ohai.rb +57 -47
- metadata +100 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4942f7c8128f0db8c5fff746db6ce6c145633ec
|
4
|
+
data.tar.gz: 17e60816d695b726125920dfbed4dd8c2fdf4645
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8e752973f6478d533766d085c04a805ea805d9bcf06c7bba77450c6b3139517536021ead48e0d29904a9644f133d41b214a342139bb1292282768639ba36e97
|
7
|
+
data.tar.gz: bcc56c9011c521dc14f5fae3c92981cddf92c65da1021af89337d9c9f754ea5ef961cda784edbe17cae3d5acb16508c76e0fe45c7e80277f421a85b7ce654346
|
data/LICENSE
CHANGED
@@ -175,7 +175,7 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
175
175
|
|
176
176
|
END OF TERMS AND CONDITIONS
|
177
177
|
|
178
|
-
Copyright 2014
|
178
|
+
Copyright 2014 Xabier de Zuazo
|
179
179
|
|
180
180
|
Licensed under the Apache License, Version 2.0 (the "License");
|
181
181
|
you may not use this file except in compliance with the License.
|
data/README.md
CHANGED
@@ -1,30 +1,29 @@
|
|
1
1
|
# Chef Handler SNS
|
2
2
|
[![Gem Version](http://img.shields.io/gem/v/chef-handler-sns.svg?style=flat)](http://badge.fury.io/rb/chef-handler-sns)
|
3
|
-
[![
|
4
|
-
[![
|
5
|
-
[![
|
6
|
-
|
3
|
+
[![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg?style=flat)](http://www.rubydoc.info/gems/chef-handler-sns)
|
4
|
+
[![GitHub](http://img.shields.io/badge/github-zuazo/chef--handler--sns-blue.svg?style=flat)](https://github.com/zuazo/chef-handler-sns)
|
5
|
+
[![License](https://img.shields.io/github/license/zuazo/chef-handler-sns.svg?style=flat)](#license-and-author)
|
6
|
+
|
7
|
+
[![Dependency Status](http://img.shields.io/gemnasium/zuazo/chef-handler-sns.svg?style=flat)](https://gemnasium.com/zuazo/chef-handler-sns)
|
8
|
+
[![Code Climate](http://img.shields.io/codeclimate/github/zuazo/chef-handler-sns.svg?style=flat)](https://codeclimate.com/github/zuazo/chef-handler-sns)
|
9
|
+
[![Build Status](http://img.shields.io/travis/zuazo/chef-handler-sns/2.0.0.svg?style=flat)](https://travis-ci.org/zuazo/chef-handler-sns)
|
10
|
+
[![Coverage Status](http://img.shields.io/coveralls/zuazo/chef-handler-sns/2.0.0.svg?style=flat)](https://coveralls.io/r/zuazo/chef-handler-sns?branch=2.0.0)
|
11
|
+
[![Inline docs](http://inch-ci.org/github/zuazo/chef-handler-sns.svg?branch=master&style=flat)](http://inch-ci.org/github/zuazo/chef-handler-sns)
|
7
12
|
|
8
13
|
A simple Chef report handler that reports status of a Chef run through [Amazon SNS](http://aws.amazon.com/sns/), [including IAM roles support](#usage-with-amazon-iam-roles).
|
9
14
|
|
10
15
|
[Amazon SNS](http://aws.amazon.com/sns/) can send notifications by SMS, email, [Amazon SQS](http://aws.amazon.com/sqs/) queues or to any HTTP endpoint.
|
11
16
|
|
12
|
-
We recommend using the [chef_handler_sns cookbook](
|
17
|
+
We recommend using the [`chef_handler_sns` cookbook](https://supermarket.chef.io/cookbooks/chef_handler_sns) for easy installation.
|
13
18
|
|
14
19
|
This Chef Handler is heavily based on [Joshua Timberman](https://github.com/jtimberman) examples.
|
15
20
|
|
16
|
-
*
|
21
|
+
* https://docs.chef.io/handlers.html#exception-report-handlers
|
17
22
|
|
18
23
|
## Requirements
|
19
24
|
|
20
25
|
* Amazon AWS: uses Amazon SNS service.
|
21
|
-
*
|
22
|
-
* `aws-sdk` requires `nokogiri`, which also has the following requirements:
|
23
|
-
* `libxml2-dev` and `libxslt-dev` installed (optional).
|
24
|
-
* `gcc` and `make` installed (this will compile and install libxml2 and libxslt internally if not found).
|
25
|
-
* For `Ruby 1.8`, you need to install old versions of the following dependencies:
|
26
|
-
* `mime-types < 2.0`.
|
27
|
-
* `nokogiri < 1.6`.
|
26
|
+
* Ruby `2` or higher (recommended `2.1` or higher).
|
28
27
|
|
29
28
|
## Usage
|
30
29
|
|
@@ -34,190 +33,131 @@ You can install this handler in two ways:
|
|
34
33
|
|
35
34
|
You can install the RubyGem and configure Chef to use it:
|
36
35
|
|
37
|
-
gem install chef-handler-sns
|
36
|
+
$ gem install chef-handler-sns
|
38
37
|
|
39
38
|
Then add to the configuration (`/etc/chef/solo.rb` for chef-solo or `/etc/chef/client.rb` for chef-client):
|
40
39
|
|
41
40
|
```ruby
|
42
|
-
require
|
41
|
+
require 'chef/handler/sns'
|
43
42
|
|
44
43
|
# Create the handler
|
45
44
|
sns_handler = Chef::Handler::Sns.new
|
46
45
|
|
47
46
|
# Your Amazon AWS credentials
|
48
|
-
sns_handler.access_key
|
49
|
-
sns_handler.secret_key
|
47
|
+
sns_handler.access_key '***AMAZON-KEY***'
|
48
|
+
sns_handler.secret_key '***AMAZON-SECRET***'
|
50
49
|
|
51
50
|
# Some Amazon SNS configurations
|
52
|
-
sns_handler.topic_arn
|
53
|
-
sns_handler.region
|
51
|
+
sns_handler.topic_arn 'arn:aws:sns:***'
|
52
|
+
sns_handler.region 'us-east-1' # optional
|
54
53
|
|
55
54
|
# Add your handler
|
56
55
|
exception_handlers << sns_handler
|
57
56
|
```
|
58
57
|
|
59
|
-
### Method 2: in a Recipe with the chef_handler LWRP
|
58
|
+
### Method 2: in a Recipe with the `chef_handler` LWRP
|
60
59
|
|
61
60
|
**Note:** This method will not catch errors before the convergence phase. Use the previous method if you want to be able to report such errors.
|
62
61
|
|
63
|
-
Use the [chef_handler LWRP](
|
62
|
+
Use the [`chef_handler` LWRP](https://supermarket.chef.io/cookbooks/chef_handler), creating a recipe with the following:
|
64
63
|
|
65
64
|
```ruby
|
66
65
|
# Handler configuration options
|
67
66
|
argument_array = [
|
68
|
-
:
|
69
|
-
:
|
70
|
-
:
|
67
|
+
access_key: '***AMAZON-KEY***',
|
68
|
+
secret_key: '***AMAZON-SECRET***',
|
69
|
+
topic_arn: 'arn:aws:sns:***'
|
71
70
|
]
|
72
71
|
|
73
|
-
# Depends on the `xml` cookbook to install nokogiri
|
74
|
-
include_recipe "xml::ruby"
|
75
|
-
|
76
72
|
# Install the `chef-handler-sns` RubyGem during the compile phase
|
77
|
-
chef_gem
|
78
|
-
|
79
|
-
# Then activate the handler with the `chef_handler` LWRP
|
80
|
-
chef_handler "Chef::Handler::Sns" do
|
81
|
-
source "#{Gem::Specification.find_by_name("chef-handler-sns").lib_dirs_glob}/chef/handler/sns"
|
82
|
-
arguments argument_array
|
83
|
-
supports :exception => true
|
84
|
-
action :enable
|
73
|
+
chef_gem 'chef-handler-sns' do
|
74
|
+
compile_time true # Only for Chef 12
|
85
75
|
end
|
86
|
-
```
|
87
|
-
|
88
|
-
#### Method 2.1: in a Recipe with the chef_handler LWRP Using Gem < 1.8.6
|
89
|
-
|
90
|
-
If you have an old version of gem package (< 1.8.6) without `find_by_name` or old chef-client (< 0.10.10) without `chef_gem`, you can try creating a recipe similar to the following:
|
91
|
-
|
92
|
-
```ruby
|
93
|
-
# Handler configuration options
|
94
|
-
argument_array = [
|
95
|
-
:access_key => "***AMAZON-KEY***",
|
96
|
-
:secret_key => "***AMAZON-SECRET***",
|
97
|
-
:topic_arn => "arn:aws:sns:***",
|
98
|
-
]
|
99
|
-
|
100
|
-
# Depends on the `xml` cookbook to install nokogiri
|
101
|
-
include_recipe "xml::ruby"
|
102
|
-
|
103
|
-
# Install the `chef-handler-sns` RubyGem during the compile phase
|
104
|
-
if defined?(Chef::Resource::ChefGem)
|
105
|
-
chef_gem "chef-handler-sns"
|
106
|
-
else
|
107
|
-
gem_package("chef-handler-sns") do
|
108
|
-
action :nothing
|
109
|
-
end.run_action(:install)
|
110
|
-
end
|
111
|
-
|
112
|
-
# Get the installed `chef-handler-sns` gem path
|
113
|
-
sns_handler_path = Gem::Specification.respond_to?("find_by_name") ?
|
114
|
-
Gem::Specification.find_by_name("chef-handler-sns").lib_dirs_glob :
|
115
|
-
Gem.all_load_paths.grep(/chef-handler-sns/).first
|
116
76
|
|
117
77
|
# Then activate the handler with the `chef_handler` LWRP
|
118
|
-
chef_handler
|
119
|
-
source
|
78
|
+
chef_handler 'Chef::Handler::Sns' do
|
79
|
+
source 'chef/handler/sns'
|
120
80
|
arguments argument_array
|
121
|
-
supports :
|
81
|
+
supports exception: true
|
122
82
|
action :enable
|
123
83
|
end
|
124
84
|
```
|
125
85
|
|
126
|
-
|
86
|
+
See the [`chef_handler_sns` cookbook provider code](https://github.com/zuazo/chef_handler_sns-cookbook/blob/master/providers/default.rb) for a more complete working example.
|
127
87
|
|
128
|
-
|
88
|
+
### Method 3: Using the `chef-client` Cookbook
|
129
89
|
|
130
|
-
|
131
|
-
--------------
|
132
|
-
Could not find 'chef-handler-sns' (>= 0) among XX total gem(s)
|
133
|
-
|
134
|
-
To fix this error, you should get the handler installation path using a code similar to the following:
|
90
|
+
You can also use the `node['chef_client']['config']` attribute of the [`chef-client`](https://github.com/chef-cookbooks/chef-client/tree/v4.3.2#start-report-exception-handlers) cookbook:
|
135
91
|
|
136
92
|
```ruby
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
include_recipe "xml::ruby"
|
146
|
-
|
147
|
-
# Install the `chef-handler-sns` RubyGem during the compile phase
|
148
|
-
chef_gem "chef-handler-sns"
|
149
|
-
|
150
|
-
# Get the installed `chef-handler-sns` gem path from Bundler
|
151
|
-
sns_handler_path = nil
|
152
|
-
bundle_path = ::File.join(Bundler.bundle_path.to_s, "specifications")
|
153
|
-
Dir[::File.join(bundle_path, "*.gemspec")].each do |path|
|
154
|
-
spec = Gem::Specification.load(path.untaint)
|
155
|
-
if spec.name == "chef-handler-sns"
|
156
|
-
sns_handler_path = spec.lib_dirs_glob
|
157
|
-
end
|
158
|
-
end
|
159
|
-
if sns_handler_path.nil?
|
160
|
-
Chef::Application.fatal!("chef-handler-sns not found inside Bundler path: #{bundle_path}")
|
161
|
-
end
|
162
|
-
|
163
|
-
# Then activate the handler with the `chef_handler` LWRP
|
164
|
-
chef_handler "Chef::Handler::Sns" do
|
165
|
-
source "#{Gem::Specification.find_by_name("chef-handler-sns").lib_dirs_glob}/chef/handler/sns"
|
166
|
-
arguments argument_array
|
167
|
-
supports :exception => true
|
168
|
-
action :enable
|
169
|
-
end
|
93
|
+
node.default['chef_client']['config']['exception_handlers'] = [{
|
94
|
+
'class' => 'Chef::Handler::Sns',
|
95
|
+
'arguments' => {
|
96
|
+
access_key: '***AMAZON-KEY***',
|
97
|
+
secret_key: '***AMAZON-SECRET***',
|
98
|
+
topic_arn: 'arn:aws:sns:***'
|
99
|
+
}.map { |k, v| "#{k}: #{v.inspect}" }
|
100
|
+
}]
|
170
101
|
```
|
171
102
|
|
172
|
-
See the [`chef_handler_sns` cookbook provider code](https://github.com/onddo/chef_handler_sns-cookbook/blob/master/providers/default.rb) for a more complete working example.
|
173
|
-
|
174
103
|
### Usage with Amazon IAM Roles
|
175
104
|
|
176
105
|
If you are using AWS [IAM roles](http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) with your server, probably you only need to specify the `topic_arn` parameter. A few simple examples:
|
177
106
|
|
178
|
-
#### Method 1: in the Chef Config File
|
107
|
+
#### IAM Roles Method 1: in the Chef Config File
|
179
108
|
|
180
109
|
You can install the RubyGem and configure Chef to use it:
|
181
110
|
|
182
|
-
gem install chef-handler-sns
|
111
|
+
$ gem install chef-handler-sns
|
183
112
|
|
184
113
|
Then add to the configuration (`/etc/chef/solo.rb` for chef-solo or `/etc/chef/client.rb` for chef-client):
|
185
114
|
|
186
115
|
```ruby
|
187
|
-
require
|
116
|
+
require 'chef/handler/sns'
|
188
117
|
|
189
|
-
exception_handlers << Chef::Handler::Sns.new(
|
190
|
-
:
|
191
|
-
|
118
|
+
exception_handlers << Chef::Handler::Sns.new(
|
119
|
+
topic_arn: 'arn:aws:sns:us-east-1:12341234:MyTopicName'
|
120
|
+
)
|
192
121
|
```
|
193
122
|
|
194
|
-
#### Method 2: in a Recipe with the chef_handler LWRP
|
123
|
+
#### IAM Roles Method 2: in a Recipe with the `chef_handler` LWRP
|
195
124
|
|
196
|
-
Use the [chef_handler LWRP](
|
125
|
+
Use the [`chef_handler` LWRP](https://supermarket.chef.io/cookbooks/chef_handler), creating a recipe with the following:
|
197
126
|
|
198
127
|
```ruby
|
199
|
-
# Depends on the `xml` cookbook to install nokogiri
|
200
|
-
include_recipe "xml::ruby"
|
201
|
-
|
202
128
|
# Install the `chef-handler-sns` RubyGem during the compile phase
|
203
|
-
chef_gem
|
129
|
+
chef_gem 'chef-handler-sns' do
|
130
|
+
compile_time true # Only for Chef 12
|
131
|
+
end
|
204
132
|
|
205
133
|
# Then activate the handler with the `chef_handler` LWRP
|
206
|
-
chef_handler
|
207
|
-
source
|
208
|
-
arguments
|
209
|
-
supports :
|
134
|
+
chef_handler 'Chef::Handler::Sns' do
|
135
|
+
source 'chef/handler/sns'
|
136
|
+
arguments topic_arn: 'arn:aws:sns:us-east-1:12341234:MyTopicName'
|
137
|
+
supports exception: true
|
210
138
|
action :enable
|
211
139
|
end
|
212
140
|
```
|
213
141
|
|
142
|
+
### IAM Roles Method 3: Using the `chef-client` Cookbook
|
143
|
+
|
144
|
+
You can also use the `node['chef_client']['config']` attribute of the [`chef-client`](https://github.com/chef-cookbooks/chef-client/tree/v4.3.2#start-report-exception-handlers) cookbook:
|
145
|
+
|
146
|
+
```ruby
|
147
|
+
node.default['chef_client']['config']['exception_handlers'] = [{
|
148
|
+
'class' => 'Chef::Handler::Sns',
|
149
|
+
'arguments' => ['topic_arn: "arn:aws:sns:***"']
|
150
|
+
}]
|
151
|
+
```
|
152
|
+
|
214
153
|
#### OpsWorks: Filter Notifications by Activity
|
154
|
+
|
215
155
|
An optional array of OpsWorks activities can be supplied. If the array is set, notifications will
|
216
156
|
only be triggered for the activities in the array, everything else will be discarded.
|
217
157
|
|
218
158
|
```ruby
|
219
159
|
argument_array = [
|
220
|
-
:
|
160
|
+
filter_opsworks_activities: %w(deploy configure)
|
221
161
|
]
|
222
162
|
```
|
223
163
|
|
@@ -225,41 +165,46 @@ argument_array = [
|
|
225
165
|
|
226
166
|
The following options are available to configure the handler:
|
227
167
|
|
228
|
-
* `access_key` - AWS access key (required, but will try to read it from
|
229
|
-
* `secret_key` - AWS secret key (required, but will try to read it from
|
230
|
-
* `token` - AWS security token (optional, read from
|
168
|
+
* `access_key` - AWS access key (required, but will try to read it from Ohai with IAM roles).
|
169
|
+
* `secret_key` - AWS secret key (required, but will try to read it from Ohai with IAM roles).
|
170
|
+
* `token` - AWS security token (optional, read from Ohai with IAM roles). Set to `false` to disable the token detected by Ohai.
|
231
171
|
* `topic_arn` - AWS topic ARN name (required).
|
232
172
|
* `region` - AWS region (optional).
|
233
173
|
* `subject` - Message subject string in erubis format (optional).
|
234
174
|
* `body_template` - Full path of an erubis template file to use for the message body (optional).
|
235
175
|
* `filter_opsworks_activities` - An array of OpsWorks activities to be triggered with (optional). When set, everything else will be discarded.
|
236
176
|
|
237
|
-
**Note:** When the machine has an IAM role, will try to read the credentials from
|
177
|
+
**Note:** When the machine has an IAM role, will try to read the credentials from Ohai. So in the best case, you only need to specify the `topic_arn`.
|
238
178
|
|
239
|
-
### subject
|
179
|
+
### `subject` Configuration Option
|
240
180
|
|
241
181
|
Here is an example of the `subject` configuration option using the ruby configuration file (`solo.rb` or `client.rb`):
|
242
182
|
|
243
183
|
```ruby
|
244
|
-
sns_handler.subject
|
184
|
+
sns_handler.subject(
|
185
|
+
"Chef-run: <%= node.name %> - <%= run_status.success? ? 'ok' : 'error' %>"
|
186
|
+
)
|
245
187
|
```
|
246
188
|
|
247
|
-
Using the [chef_handler LWRP](
|
189
|
+
Using the [`chef_handler` LWRP](https://supermarket.chef.io/cookbooks/chef_handler):
|
190
|
+
|
248
191
|
```ruby
|
249
192
|
argument_array = [
|
250
|
-
:
|
251
|
-
:
|
252
|
-
:
|
253
|
-
|
193
|
+
access_key: '***AMAZON-KEY***',
|
194
|
+
secret_key: '***AMAZON-SECRET***',
|
195
|
+
topic_arn: 'arn:aws:sns:***',
|
196
|
+
subject:
|
197
|
+
"Chef-run: <%= node.name %> - <%= run_status.success? ? 'ok' : 'error' %>"
|
254
198
|
# [...]
|
255
199
|
]
|
256
|
-
|
200
|
+
|
201
|
+
chef_handler 'Chef::Handler::Sns' do
|
257
202
|
# [...]
|
258
203
|
arguments argument_array
|
259
204
|
end
|
260
205
|
```
|
261
206
|
|
262
|
-
The following variables are
|
207
|
+
The following variables are accessible inside the template:
|
263
208
|
|
264
209
|
* `start_time` - The time the chef run started.
|
265
210
|
* `end_time` - The time the chef run ended.
|
@@ -268,48 +213,49 @@ The following variables are accesible inside the template:
|
|
268
213
|
* `exception` - The uncaught Exception that terminated the chef run, or nil if the run completed successfully.
|
269
214
|
* `backtrace` - The backtrace captured by the uncaught exception that terminated the chef run, or nil if the run completed successfully.
|
270
215
|
* `node` - The Chef::Node for this client run.
|
271
|
-
* `all_resources` - An Array containing all resources in the chef
|
216
|
+
* `all_resources` - An Array containing all resources in the chef-run resource collection.
|
272
217
|
* `updated_resources` - An Array containing all resources that were updated during the chef run.
|
273
218
|
* `success?` - Was the chef run successful? True if the chef run did not raise an uncaught exception.
|
274
219
|
* `failed?` - Did the chef run fail? True if the chef run raised an uncaught exception.
|
275
220
|
|
276
|
-
### body_template
|
221
|
+
### `body_template` Configuration Option
|
277
222
|
|
278
|
-
This configuration option needs to contain the full path of an
|
223
|
+
This configuration option needs to contain the full path of an Erubis template. For example:
|
279
224
|
|
280
225
|
```ruby
|
281
|
-
# recipe
|
226
|
+
# recipe 'myapp::sns_handler'
|
282
227
|
|
283
|
-
cookbook_file
|
284
|
-
path
|
228
|
+
cookbook_file 'chef_handler_sns_body.erb' do
|
229
|
+
path '/tmp/chef_handler_sns_body.erb'
|
285
230
|
# [...]
|
286
231
|
end
|
287
232
|
|
288
233
|
argument_array = [
|
289
|
-
:
|
290
|
-
:
|
291
|
-
:
|
292
|
-
:
|
234
|
+
access_key: '***AMAZON-KEY***',
|
235
|
+
secret_key: '***AMAZON-SECRET***',
|
236
|
+
topic_arn: 'arn:aws:sns:***',
|
237
|
+
body_template: '/tmp/chef_handler_sns_body.erb'
|
293
238
|
# [...]
|
294
239
|
]
|
295
|
-
|
240
|
+
|
241
|
+
chef_handler 'Chef::Handler::Sns' do
|
296
242
|
# [...]
|
297
243
|
arguments argument_array
|
298
244
|
end
|
299
245
|
```
|
300
246
|
|
301
247
|
```erb
|
302
|
-
<%# file
|
248
|
+
<%# file 'myapp/files/default/chef_handler_sns_body.erb' %>
|
303
249
|
|
304
250
|
Node Name: <%= node.name %>
|
305
|
-
<% if node.attribute?(
|
251
|
+
<% if node.attribute?('fqdn') -%>
|
306
252
|
Hostname: <%= node.fqdn %>
|
307
253
|
<% end -%>
|
308
254
|
|
309
255
|
Chef Run List: <%= node.run_list.to_s %>
|
310
256
|
Chef Environment: <%= node.chef_environment %>
|
311
257
|
|
312
|
-
<% if node.attribute?(
|
258
|
+
<% if node.attribute?('ec2') -%>
|
313
259
|
Instance Id: <%= node.ec2.instance_id %>
|
314
260
|
Instance Public Hostname: <%= node.ec2.public_hostname %>
|
315
261
|
Instance Hostname: <%= node.ec2.hostname %>
|
@@ -329,15 +275,15 @@ Stacktrace:
|
|
329
275
|
<% end -%>
|
330
276
|
```
|
331
277
|
|
332
|
-
See the [subject](#subject) documentation for more details on the variables
|
278
|
+
See the [subject](#subject) documentation for more details on the variables accessible inside the template.
|
333
279
|
|
334
280
|
## IAM Role Credentials from Ohai
|
335
281
|
|
336
|
-
IAM Role information and credentials are gathered from
|
282
|
+
IAM Role information and credentials are gathered from Ohai by default if they exists.
|
337
283
|
|
338
|
-
No aditional
|
284
|
+
No aditional Ohai plugin is required. This is natively supported by Ohai since version `6.16.0` ([OHAI-400](https://tickets.opscode.com/browse/OHAI-400)).
|
339
285
|
|
340
|
-
These are the used
|
286
|
+
These are the used Ohai attributes:
|
341
287
|
|
342
288
|
```
|
343
289
|
ec2
|
@@ -350,29 +296,29 @@ ec2
|
|
350
296
|
└── Token
|
351
297
|
```
|
352
298
|
|
353
|
-
##
|
354
|
-
|
355
|
-
Minitest tests can be run as usual:
|
299
|
+
## Testing
|
356
300
|
|
357
|
-
|
301
|
+
See [TESTING.md](https://github.com/zuazo/chef-handler-sns/blob/master/TESTING.md).
|
358
302
|
|
359
303
|
## Contributing
|
360
304
|
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
305
|
+
Please do not hesitate to [open an issue](https://github.com/zuazo/chef-handler-sns/issues/new) with any questions or problems.
|
306
|
+
|
307
|
+
See [CONTRIBUTING.md](https://github.com/zuazo/chef-handler-sns/blob/master/CONTRIBUTING.md).
|
308
|
+
|
309
|
+
## TODO
|
310
|
+
|
311
|
+
See [TODO.md](https://github.com/zuazo/chef-handler-sns/blob/master/TODO.md).
|
367
312
|
|
368
313
|
## License and Author
|
369
314
|
|
370
315
|
| | |
|
371
316
|
|:---------------------|:-----------------------------------------|
|
372
|
-
| **Author:** | [Xabier de Zuazo](https://github.com/zuazo) (<xabier@
|
317
|
+
| **Author:** | [Xabier de Zuazo](https://github.com/zuazo) (<xabier@zuazo.org>)
|
373
318
|
| **Contributor:** | [Florian Holzhauer](https://github.com/fh)
|
374
319
|
| **Contributor:** | [Michael Hobbs](https://github.com/michaelshobbs)
|
375
|
-
| **Copyright:** | Copyright (c)
|
320
|
+
| **Copyright:** | Copyright (c) 2015 Xabier de Zuazo
|
321
|
+
| **Copyright:** | Copyright (c) 2013-2014 Onddo Labs, SL.
|
376
322
|
| **License:** | Apache License, Version 2.0
|
377
323
|
|
378
324
|
Licensed under the Apache License, Version 2.0 (the "License");
|