kitchen-ec2 2.2.2 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 047c12b65b4d66719dcd642c0b10fa555f0566dbb45871abdc1d68d1d9aa07ae
4
- data.tar.gz: affdb19c5f1682c5eb7dfa2db0a385d45657d58b6c6446b3ebe361341e8bcbf1
3
+ metadata.gz: c73450f0974fff7368bd5e8d479b70fdd1513942023e41b0eea948249a53606b
4
+ data.tar.gz: 5e680d5c74137028c7664f5ff20a6a349d43d79635fff5dec5c3f433bfd82600
5
5
  SHA512:
6
- metadata.gz: 552de0310d60fcff8cf8cdb63b3d0cc5512897cf670ad8d67c1695dc48081aeebc99d3a2d0b027774d4b9a905caaa9ca4f553e0e3995a2530f4b7a49b4ce7313
7
- data.tar.gz: ec77defad9d3ff3073000142d54e9f66269b6f76f3a218c4958bf3eec5c6a661a45caff9e9c92cadd351ab23047a2a3fd7e43dd9de5f85f19d27fceab351aecd
6
+ metadata.gz: 8c62b63a7ac1b025aa4182437427d9f3d2e1ff409899de494a90e831fe0cf90fcdabf0f93cb530a9ad04ce534c3ee306f111866d05b2ec35a5ad9035008494a2
7
+ data.tar.gz: f6a4d1dabd28abbd1878d04ac5fc083703c8dbc521fe08ad97e640d7b95253d7d87f63c4359482303d4564025b68048c21296ed22d536e4c6a1c9431ec94b6b9
@@ -1,5 +1,12 @@
1
1
  # Change Log
2
2
 
3
+ ## [v2.3.0](https://github.com/test-kitchen/kitchen-ec2/tree/v2.3.0) (2018-10-05)
4
+ [Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v2.2.2...v2.3.0)
5
+
6
+ - Add port 3389 (RDP) to the automatically generated security group
7
+ - Fix logfile creation on Windows to not fail if the directory doesn't exist
8
+ - The gem no longer ships with test deps so we can slim the install size
9
+
3
10
  ## [v2.2.2](https://github.com/test-kitchen/kitchen-ec2/tree/v2.2.2) (2018-06-11)
4
11
  [Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v2.2.1...v2.2.2)
5
12
 
@@ -641,7 +641,11 @@ module Kitchen
641
641
  Else
642
642
  {
643
643
  $logfile='C:\\Program Files\\Amazon\\Ec2ConfigService\\Logs\\kitchen-ec2.log'
644
- }
644
+ }
645
+
646
+ # Logfile fail-safe in case the directory does not exist
647
+ New-Item $logfile -Force
648
+
645
649
  # Allow script execution
646
650
  Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
647
651
  #PS Remoting and & winrm.cmd basic config
@@ -750,7 +754,7 @@ module Kitchen
750
754
  ec2.client.authorize_security_group_ingress(
751
755
  group_id: state[:auto_security_group_id],
752
756
  # Allow SSH and WinRM (both plain and TLS).
753
- ip_permissions: [22, 5985, 5986].map do |port|
757
+ ip_permissions: [22, 3389, 5985, 5986].map do |port|
754
758
  {
755
759
  ip_protocol: "tcp",
756
760
  from_port: port,
@@ -22,6 +22,6 @@ module Kitchen
22
22
  module Driver
23
23
 
24
24
  # Version string for EC2 Test Kitchen driver
25
- EC2_VERSION = "2.2.2"
25
+ EC2_VERSION = "2.3.0"
26
26
  end
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-ec2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fletcher Nichol
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-11 00:00:00.000000000 Z
11
+ date: 2018-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -197,16 +197,8 @@ executables: []
197
197
  extensions: []
198
198
  extra_rdoc_files: []
199
199
  files:
200
- - ".gitignore"
201
- - ".rspec"
202
- - ".travis.yml"
203
- - ".yardopts"
204
200
  - CHANGELOG.md
205
- - Gemfile
206
201
  - LICENSE
207
- - README.md
208
- - Rakefile
209
- - kitchen-ec2.gemspec
210
202
  - lib/kitchen/driver/aws/client.rb
211
203
  - lib/kitchen/driver/aws/instance_generator.rb
212
204
  - lib/kitchen/driver/aws/standard_platform.rb
@@ -220,15 +212,9 @@ files:
220
212
  - lib/kitchen/driver/aws/standard_platform/windows.rb
221
213
  - lib/kitchen/driver/ec2.rb
222
214
  - lib/kitchen/driver/ec2_version.rb
223
- - spec/kitchen/driver/ec2/client_spec.rb
224
- - spec/kitchen/driver/ec2/image_selection_spec.rb
225
- - spec/kitchen/driver/ec2/instance_generator_spec.rb
226
- - spec/kitchen/driver/ec2_spec.rb
227
- - spec/spec_helper.rb
228
- - spec/support/fake_image.rb
229
215
  homepage: https://kitchen.ci/
230
216
  licenses:
231
- - Apache 2.0
217
+ - Apache-2.0
232
218
  metadata: {}
233
219
  post_install_message:
234
220
  rdoc_options: []
@@ -250,10 +236,4 @@ rubygems_version: 2.7.6
250
236
  signing_key:
251
237
  specification_version: 4
252
238
  summary: A Test Kitchen Driver for Amazon EC2
253
- test_files:
254
- - spec/kitchen/driver/ec2/client_spec.rb
255
- - spec/kitchen/driver/ec2/image_selection_spec.rb
256
- - spec/kitchen/driver/ec2/instance_generator_spec.rb
257
- - spec/kitchen/driver/ec2_spec.rb
258
- - spec/spec_helper.rb
259
- - spec/support/fake_image.rb
239
+ test_files: []
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- bin/
11
- doc/
12
- lib/bundler/man
13
- pkg
14
- rdoc
15
- spec/reports
16
- test/tmp
17
- test/version_tmp
18
- tmp
19
- .project
20
-
21
- .kitchen/
22
- .kitchen.local.yml
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --color
2
- --require spec_helper
3
- --format progress
@@ -1,21 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- sudo: false
4
- branches:
5
- only:
6
- - master
7
- rvm:
8
- - 2.3.6
9
- - 2.4.3
10
-
11
- # https://github.com/travis-ci/travis-ci/issues/8978
12
- matrix:
13
- include:
14
- - rvm: 2.5.0
15
- before_install:
16
- - gem update --system
17
- - rvm: ruby-head
18
- before_install:
19
- - gem update --system
20
- allow_failures:
21
- - rvm: ruby-head
data/.yardopts DELETED
@@ -1,3 +0,0 @@
1
- --readme README.md
2
- --markup markdown
3
- --markup-provider maruku
data/Gemfile DELETED
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem"s dependencies in kitchen-ec2.gemspec
4
- gemspec
5
-
6
- gem "winrm-transport"
7
- gem "winrm-fs"
8
-
9
- group :test do
10
- gem "rake"
11
- gem "pry"
12
- end
13
-
14
- group :changelog do
15
- gem "github_changelog_generator"
16
- end
data/README.md DELETED
@@ -1,497 +0,0 @@
1
- # <a name="title"></a> Kitchen::Ec2: A Test Kitchen Driver for Amazon EC2
2
-
3
- [![Gem Version](https://badge.fury.io/rb/kitchen-ec2.svg)](https://badge.fury.io/rb/kitchen-ec2)
4
- [![Build Status](https://travis-ci.org/test-kitchen/kitchen-ec2.svg?branch=master)](https://travis-ci.org/test-kitchen/kitchen-ec2)
5
- [![Code Climate](https://codeclimate.com/github/test-kitchen/kitchen-ec2/badges/gpa.svg)](https://codeclimate.com/github/test-kitchen/kitchen-ec2)
6
-
7
- A [Test Kitchen][kitchenci] Driver for Amazon EC2.
8
-
9
- This driver uses the [aws sdk gem][aws_sdk_gem] to provision and destroy EC2
10
- instances. Use Amazon's cloud for your infrastructure testing!
11
-
12
- ## Quick Start
13
-
14
- 1. Install [ChefDK](https://downloads.chef.io/chefdk). If testing things other
15
- than Chef cookbooks, please consult your driver's documentation for information
16
- on what to install.
17
- 2. Install the [AWS command line tools](https://docs.aws.amazon.com/cli/latest/userguide/installing.html).
18
- 3. Run `aws configure`. This will set up your AWS credentials for both the AWS
19
- CLI tools and kitchen-ec2.
20
- 4. Add or exit the `driver` section of your `.kitchen.yml`:
21
-
22
- ```yaml
23
- driver:
24
- name: ec2
25
- ```
26
- 5. Run `kitchen test`.
27
-
28
- ## Requirements
29
-
30
- There are **no** external system requirements for this driver. However you
31
- will need access to an [AWS][aws_site] account. [IAM][iam_site] users should have, at a minimum, permission to manage the lifecycle of an EC2 instance along with modifying components specified in kitchen driver configs. Consider using a permissive managed IAM policy like ``arn:aws:iam::aws:policy/AmazonEC2FullAccess`` or tailor one specific to your security requirements.
32
-
33
- ## Configuration
34
-
35
- By automatically applying reasonable defaults wherever possible, kitchen-ec2 does a lot of work to make your life easier. Here is a description of some of the configuration parameters and what we do to default them.
36
-
37
- ### Specifying the Image
38
-
39
- There are three ways to specify the image you use for the instance: the `platform`
40
- name, `image_id`, and `image_search`.
41
-
42
- #### `platform` Name
43
-
44
- The third way to specify the image is by leaving `image_id` and `image_search`
45
- blank, and specifying a standard platform name.
46
-
47
- ```yaml
48
- platforms:
49
- - name: ubuntu-14.04
50
- ```
51
-
52
- If you use the platform name `ubuntu`, `windows`, `rhel`, `debian`, `centos`, `freebsd` or `fedora`, kitchen-ec2 will search for the latest matching official image of
53
- the given OS in your region. You may leave versions off, specify partial versions,
54
- and you may specify architecture to distinguish 32- and 64-bit. Some examples:
55
-
56
- ```yaml
57
- platforms:
58
- # The latest stable minor+patch release of rhel 6
59
- - name: rhel-6
60
- # The latest patch release of CentOS 6.3
61
- - name: centos-6.3
62
- # The latest patch release of Amazon Linux 2017.03
63
- - name: amazon-2017.03
64
- # 32-bit version of latest major+minor+patch release of Ubuntu
65
- - name: ubuntu-i386
66
- # 32-bit version of Debian 6
67
- - name: debian-6-i386
68
- # Latest 32-bit stable minor release of freebsd 10
69
- - name: freebsd-10-i386
70
- # The latest stable major+minor+patch release of Fedora
71
- - name: fedora
72
- # The most recent service-pack for Windows 2012 (not R2)
73
- - name: windows-2012
74
- # The most recent service-pack for Windows 2012R2
75
- - name: windows-2012r2
76
- # Windows 2008 RTM (not R2, no service pack)
77
- - name: windows-2008rtm
78
- # Windows 2008R2 SP1
79
- - name: windows-2008r2sp1
80
- ```
81
-
82
- We always pick the highest released stable version that matches your regex, and
83
- follow the other `image_search` rules for preference.
84
-
85
- #### `image_id`
86
-
87
- `image_id` can be set explicitly. It must be an ami in the region you are
88
- working with!
89
-
90
- ```yaml
91
- platforms:
92
- - name: centos-7
93
- driver:
94
- image_id: ami-96a818fe
95
- ```
96
-
97
- image_id's have a format like ami-748e2903. The image_id values appear next to the image names when you select 'Launch Instance' from the AWS EC2 console. You can also see the list from the AWS CLI ````aws ec2 describe-images````.
98
-
99
- #### `image_search`
100
-
101
- `image_search` lets you specify a series of key/value pairs to search for the
102
- image. If a value is set to an array, then *any* of those values will match.
103
- You can learn more about the available filters in the AWS CLI doc under `--filters` [here](http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).
104
-
105
- ```yaml
106
- platforms:
107
- - name: ubuntu-14.04
108
- driver:
109
- image_search:
110
- owner-id: "099720109477"
111
- name: ubuntu/images/*/ubuntu-*-14.04*
112
- ```
113
-
114
- In the event that there are multiple matches (as sometimes happens), we sort to
115
- get the best results. In order of priority from greatest to least, we prefer:
116
-
117
- - HVM images over paravirtual
118
- - SSD support over magnetic drives
119
- - 64-bit over 32-bit
120
- - The most recently created image (to pick up patch releases)
121
-
122
- Note that the image_search method *requires* that the AMI image names be in a specific format.
123
- Some examples are:
124
-
125
- - Windows-2012
126
- - Windows-2012r2
127
- - Windows-2012r2sp1
128
- - RHEL-7.2
129
-
130
- It is safest to use the same naming convention as used by the public images published by the OS vendors on the AWS marketplace.
131
-
132
- ### AWS Authentication
133
-
134
- In order to connect to AWS, you must specify AWS credentials. We rely on the SDK
135
- to find credentials in the standard way, documented here:
136
- https://github.com/aws/aws-sdk-ruby/#configuration
137
-
138
- The SDK Chain will search environment variables, then config files, then IAM role
139
- data from the instance profile, in that order. In the case config files being
140
- present, the 'default' profile will be used unless `shared_credentials_profile`
141
- is defined to point to another profile.
142
-
143
- Because the Test Kitchen test should be checked into source control and ran
144
- through CI we no longer support storing the AWS credentials in the
145
- `.kitchen.yml` file.
146
-
147
- ### Instance Login Configuration
148
-
149
- The instances you create use credentials you specify which are *separate* from
150
- the AWS credentials. Generally, SSH and WinRM use an AWS key pair which you
151
- specify.
152
-
153
- #### SSH
154
-
155
- The `aws_ssh_key_id` value is the name of the AWS key pair you want to use.
156
-
157
- The value can be one of:
158
-
159
- * `nil` (default)
160
-
161
- By default the key ID is read from the `AWS_SSH_KEY_ID` environment variable. If the environment variable is not set, the value will be nil. In this case, a temporary key will be created for you (**>= 2.1.0**).
162
-
163
- * `name_of_some_existing_aws_key_pair`
164
-
165
- By setting the environment variable `AWS_SSH_KEY_ID` or by setting the `aws_ssh_key_id` driver option in kitchen.yml. This will be the key that becomes associated with the test EC2 instances. The key must already exist in AWS. To see a list of existing key pair IDs in a region, use the `aws` CLI tool. For example, in the US-East-1 region: `aws ec2 describe-key-pairs --region us-east-1`.
166
-
167
- * `_disable`
168
-
169
- This will not directly associate the EC2 instance with an AWS-managed key pair (pre-existing or auto-generated). This may be useful in environments that have disabled AWS-managed keys. Getting SSH keys onto the instance then becomes an exercise for the reader, though it can be done, for example, with scripting in `user_data` or if the credentials are already baked into the AMI.
170
-
171
- When using an existing key, either an AWS-managed key pair or keys that exist on the instance through some other means, ensure that the private key is configured in your Test Kitchen `transport` section, either directly or made available via `ssh-agent`:
172
-
173
- ```yaml
174
- transport:
175
- ssh_key: ~/.ssh/mykey.pem
176
- ```
177
-
178
- For standard platforms we automatically provide the SSH username, but when specifying your own AMI you may need to configure that as well.
179
-
180
- #### WinRM
181
-
182
- For Windows instances the generated Administrator password is fetched automatically from Amazon EC2 with the same private key as we use for SSH.
183
-
184
- Unfortunately the RDP file format does not allow including login credentials, so `kitchen login` with WinRM cannot automatically log in for you.
185
-
186
- ### Other Configuration
187
-
188
- #### `availability_zone`
189
-
190
- The AWS [availability zone][region_docs] to use. Only request
191
- the letter designation - will attach this to the region used.
192
-
193
- If not specified, your instances will be placed in an AZ of AWS's choice in your
194
- region.
195
-
196
- #### `instance_type`
197
-
198
- The EC2 [instance type][instance_docs] (also known as size) to use.
199
-
200
- The default is `t2.micro` or `t1.micro`, depending on whether the image is `hvm`
201
- or `paravirtual`. (`paravirtual` images are incompatible with `t2.micro`.)
202
-
203
- #### `security_group_ids`
204
-
205
- An Array of EC2 [security groups][group_docs] which will be applied to the
206
- instance. If no security group is specified, a temporary group will be created
207
- automatically which allows SSH and WinRM (**>= 2.1.0**).
208
-
209
- #### `security_group_filter`
210
-
211
- The EC2 [security group][group_docs] which will be applied to the instance,
212
- specified by tag. Only one group can be specified this way.
213
-
214
- The default is unset, or `nil`.
215
-
216
- An example of usage:
217
- ```yaml
218
- security_group_filter:
219
- tag: 'Name'
220
- value: 'example-group-name'
221
- ```
222
-
223
- #### `region`
224
-
225
- **Required** The AWS [region][region_docs] to use.
226
-
227
- If the environment variable `AWS_REGION` is populated that will be used.
228
- Otherwise the default is `"us-east-1"`.
229
-
230
- #### `subnet_id`
231
-
232
- The EC2 [subnet][subnet_docs] to use.
233
-
234
- The default is unset, or `nil`.
235
-
236
- #### `subnet_filter`
237
-
238
- The EC2 [subnet][subnet_docs] to use, specified by tag.
239
-
240
- The default is unset, or `nil`.
241
-
242
- An example of usage:
243
- ```yaml
244
- subnet_filter:
245
- tag: 'Name'
246
- value: 'example-subnet-name'
247
- ```
248
-
249
- #### `tags`
250
-
251
- The Hash of EC tag name/value pairs which will be applied to the instance.
252
-
253
- The default is `{ "created-by" => "test-kitchen" }`.
254
-
255
- #### `user_data`
256
-
257
- The user_data script or the path to a script to feed the instance.
258
- Use bash to install dependencies or download artifacts before chef runs.
259
- This is just for some cases. If you can do the stuff with chef, then do it with
260
- chef!
261
-
262
- On linux instances the default is unset, or `nil`.
263
-
264
- On Windows instances we specify a default that enables winrm and
265
- adds a non-administrator user specified in the `username` transport
266
- options to the Administrator's User Group.
267
-
268
- #### `iam_profile_name`
269
-
270
- The EC2 IAM profile name to use. The default is `nil`.
271
-
272
- Note: The user, whose AWS credentials you have defined, not only needs `AmazonEC2FullAccess` permissions, but also the ability to execute `iam:PassRole`.
273
- Hence, use a policy like below when using this option:
274
- ```json
275
- {
276
- "Version": "2012-10-17",
277
- "Statement": [
278
- {
279
- "Effect": "Allow",
280
- "Action": [
281
- "ec2:*"
282
- ],
283
- "Resource": "*"
284
- },
285
- {
286
- "Effect": "Allow",
287
- "Action": "iam:PassRole",
288
- "Resource": "arn:aws:iam::123456789:role/RoleName"
289
- }
290
- ]
291
- }
292
- ```
293
-
294
- See [AWS documentation](https://aws.amazon.com/de/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/) for more details.
295
-
296
-
297
- #### `spot_price`
298
-
299
- The price you bid in order to submit a spot request. An additional step will be required during the spot request process submission. If no price is set, it will use an on-demand instance.
300
-
301
- The default is `nil`.
302
-
303
- #### `instance_initiated_shutdown_behavior`
304
-
305
- Control whether an instance should `stop` or `terminate` when shutdown is initiated from the instance using an operating system command for system shutdown.
306
-
307
- The default is `nil`.
308
-
309
- #### `block_duration_minutes`
310
-
311
- The [specified duration](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#fixed-duration-spot-instances) for a spot instance, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).
312
- If no duration is set, the spot instance will remain active until it is terminated.
313
-
314
- The default is `nil`.
315
-
316
- #### `http_proxy`
317
-
318
- Specify a proxy to send AWS requests through. Should be of the format `http://<host>:<port>`.
319
-
320
- The default is `ENV["HTTPS_PROXY"] || ENV["HTTP_PROXY"]`. If you have these environment variables set and do not want to use a proxy when contacting aws set `http_proxy: nil`.
321
-
322
- **Note** - The AWS command line utility allow you to specify [two proxies](http://docs.aws.amazon.com/cli/latest/userguide/cli-http-proxy.html), one for HTTP and one for HTTPS. The AWS Ruby SDK only allows you to specify 1 proxy and because all requests are `https://` this proxy needs to support HTTPS.
323
-
324
- #### `ssl_verify_peer`
325
-
326
- If you need to turn off ssl certificate verification for HTTP calls made to AWS, set `ssl_verify_peer: false`.
327
-
328
- ### Disk Configuration
329
-
330
- #### <a name="config-block_device_mappings"></a> `block_device_mappings`
331
-
332
- A list of block device mappings for the machine. An example of all available keys looks like:
333
- ```yaml
334
- block_device_mappings:
335
- - device_name: /dev/sda
336
- ebs:
337
- volume_size: 20
338
- delete_on_termination: true
339
- - device_name: /dev/sdb
340
- ebs:
341
- volume_type: gp2
342
- virtual_name: test
343
- volume_size: 15
344
- delete_on_termination: true
345
- snapshot_id: snap-0015d0bc
346
- - device_name: /dev/sdc
347
- ebs:
348
- volume_size: 100
349
- delete_on_termination: true
350
- volume_type: io1
351
- iops: 100
352
- ```
353
-
354
- See
355
- [Amazon EBS Volume Types](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
356
- to find out more about volume types.
357
-
358
- If you have a block device mapping with a `device_name` equal to the root storage device name on your
359
- [image](#config-image-id) then the provided mapping will replace the settings in the image.
360
-
361
- If this is not provided it will use the default block_device_mappings from the AMI.
362
-
363
- #### `ebs_optimized`
364
-
365
- Option to launch EC2 instance with optimized EBS volume. See
366
- [Amazon EC2 Instance Types](http://aws.amazon.com/ec2/instance-types/) to find
367
- out more about instance types that can be launched as EBS-optimized instances.
368
-
369
- The default is `false`.
370
-
371
- ### Network and Communication Configuration
372
-
373
- #### `associate_public_ip`
374
-
375
- AWS does not automatically allocate public IP addresses for instances created
376
- within non-default [subnets][subnet_docs]. Set this option to `true` to force
377
- allocation of a public IP and associate it with the launched instance.
378
-
379
- If you set this option to `false` when launching into a non-default
380
- [subnet][subnet_docs], Test Kitchen will be unable to communicate with the
381
- instance unless you have a VPN connection to your
382
- [Virtual Private Cloud][vpc_docs].
383
-
384
- The default is `true` if you have configured a [subnet_id](#config-subnet-id),
385
- or `false` otherwise.
386
-
387
- #### `private_ip_address`
388
-
389
- The primary private IP address of your instance.
390
-
391
- If you don't set this it will default to whatever DHCP address EC2 hands out.
392
-
393
- #### `interface`
394
-
395
- The place from which to derive the hostname for communicating with the instance. May be `dns`, `public`, `private` or `private_dns`. If this is unset, the driver will derive the hostname by failing back in the following order:
396
-
397
- 1. DNS Name
398
- 2. Public IP Address
399
- 3. Private IP Address
400
- 4. Private DNS Name
401
-
402
- The default is unset. Under normal circumstances, the lookup will return the `Private IP Address`.
403
-
404
- If the `Private DNS Name` is preferred over the private IP, it must be specified in the `.kitchen.yml` file
405
-
406
- ```ruby
407
- driver:
408
- interface: private_dns
409
- ```
410
-
411
- ## Example
412
-
413
- The following could be used in a `.kitchen.yml` or in a `.kitchen.local.yml`
414
- to override default configuration.
415
-
416
- ```yaml
417
- ---
418
- driver:
419
- name: ec2
420
- aws_ssh_key_id: id_rsa-aws
421
- security_group_ids: ["sg-1a2b3c4d"]
422
- region: us-west-2
423
- availability_zone: b
424
- require_chef_omnibus: true
425
- subnet_id: subnet-6e5d4c3b
426
- iam_profile_name: chef-client
427
- instance_type: m3.medium
428
- associate_public_ip: true
429
- interface: dns
430
-
431
- transport:
432
- ssh_key: /path/to/id_rsa-aws
433
- connection_timeout: 10
434
- connection_retries: 5
435
- username: ubuntu
436
-
437
- platforms:
438
- - name: ubuntu-16.04
439
- - name: centos-6.9
440
- - name: centos-7
441
- driver:
442
- image_id: ami-c7d092f7
443
- block_device_mappings:
444
- - device_name: /dev/sdb
445
- ebs:
446
- volume_type: gp2
447
- virtual_name: test
448
- volume_size: 8
449
- delete_on_termination: true
450
- transport:
451
- username: centos
452
- - name: windows-2012r2
453
- - name: windows-2016
454
-
455
- suites:
456
- # ...
457
- ```
458
-
459
- ## <a name="development"></a> Development
460
-
461
- * Source hosted at [GitHub][repo]
462
- * Report issues/questions/feature requests on [GitHub Issues][issues]
463
-
464
- Pull requests are very welcome! Make sure your patches are well tested.
465
- Ideally create a topic branch for every separate change you make. For
466
- example:
467
-
468
- 1. Fork the repo
469
- 2. Create your feature branch (`git checkout -b my-new-feature`)
470
- 3. Commit your changes (`git commit -am 'Added some feature'`)
471
- 4. Push to the branch (`git push origin my-new-feature`)
472
- 5. Create new Pull Request
473
-
474
- ## <a name="license"></a> License
475
-
476
- Apache 2.0 (see [LICENSE][license])
477
-
478
-
479
- [author]: https://github.com/fnichol
480
- [issues]: https://github.com/test-kitchen/kitchen-ec2/issues
481
- [license]: https://github.com/test-kitchen/kitchen-ec2/blob/master/LICENSE
482
- [repo]: https://github.com/test-kitchen/kitchen-ec2
483
- [driver_usage]: https://github.com/test-kitchen/kitchen-ec2
484
- [chef_omnibus_dl]: https://downloads.chef.io/chef
485
- [amis_json]: https://github.com/test-kitchen/kitchen-ec2/blob/master/data/amis.json
486
- [ami_docs]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html
487
- [aws_site]: http://aws.amazon.com/
488
- [iam_site]: http://aws.amazon.com/iam
489
- [credentials_docs]: https://aws.amazon.com/blogs/security/a-new-and-standardized-way-to-manage-credentials-in-the-aws-sdks/
490
- [aws_sdk_gem]: https://docs.aws.amazon.com/sdkforruby/api/index.html
491
- [group_docs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
492
- [instance_docs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
493
- [key_id_docs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
494
- [kitchenci]: https://kitchen.ci/
495
- [region_docs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
496
- [subnet_docs]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html
497
- [vpc_docs]: https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/ExerciseOverview.html