knife-ec2 0.19.12 → 0.19.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/chef/knife/ec2_base.rb +1 -1
- data/lib/chef/knife/ec2_server_create.rb +4 -4
- data/lib/chef/knife/ec2_server_delete.rb +1 -1
- data/lib/chef/knife/ec2_server_list.rb +1 -1
- data/lib/knife-ec2/version.rb +1 -1
- data/spec/unit/ec2_ami_list_spec.rb +1 -1
- data/spec/unit/ec2_flavor_list_spec.rb +1 -1
- data/spec/unit/ec2_server_create_spec.rb +2 -2
- data/spec/unit/ec2_server_list_spec.rb +1 -1
- metadata +2 -19
- data/.expeditor/config.yml +0 -41
- data/.expeditor/update_version.sh +0 -12
- data/.github/CODEOWNERS +0 -4
- data/.github/ISSUE_TEMPLATE.md +0 -21
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
- data/.gitignore +0 -40
- data/.rspec +0 -2
- data/.rubocop.yml +0 -30
- data/.travis.yml +0 -20
- data/CHANGELOG.md +0 -159
- data/DOC_CHANGES.md +0 -7
- data/Gemfile +0 -28
- data/README.md +0 -304
- data/RELEASE_NOTES.md +0 -29
- data/Rakefile +0 -43
- data/VERSION +0 -1
- data/knife-ec2.gemspec +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74a8b585b43db054a608b356a570a92b864916262f6cdcf3175b81feb5bd81ab
|
4
|
+
data.tar.gz: 4a4692bb06e29c551d1393c54f9907315a4fb94d97e322dd7c9f032ca53b0b42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31133e142838ddc0f88333d7d5f5cc17920eb01efe0eb12b5303918a85259de8513330142724d49465162f6c7e960a131529fae205c9c4dafa9bd6240a768272
|
7
|
+
data.tar.gz: ccba1ef7b0c41beaf8612543cbdd504298dab9d3c7967d1c1c37f0969998c206b7307c96d3d51dfda5d15428b1ca4eeae317f79e1bc50676139975ce9941d462
|
data/lib/chef/knife/ec2_base.rb
CHANGED
@@ -223,7 +223,7 @@ class Chef
|
|
223
223
|
# Custom Warning
|
224
224
|
def custom_warnings!
|
225
225
|
if !config[:region] && Chef::Config[:knife][:region].nil?
|
226
|
-
ui.warn "No region was specified in knife.rb or as an argument. The default region, us-east-1, will be used:"
|
226
|
+
ui.warn "No region was specified in knife.rb/config.rb or as an argument. The default region, us-east-1, will be used:"
|
227
227
|
end
|
228
228
|
end
|
229
229
|
|
@@ -873,7 +873,7 @@ class Chef
|
|
873
873
|
if Chef::Config[:knife].keys.include? :aws_ssh_key_id
|
874
874
|
Chef::Config[:knife][:ssh_key_name] = Chef::Config[:knife][:aws_ssh_key_id] if !Chef::Config[:knife][:ssh_key_name]
|
875
875
|
Chef::Config[:knife].delete(:aws_ssh_key_id)
|
876
|
-
ui.warn("Use of aws_ssh_key_id option in knife.rb config is deprecated, use ssh_key_name option instead.")
|
876
|
+
ui.warn("Use of aws_ssh_key_id option in knife.rb/config.rb config is deprecated, use ssh_key_name option instead.")
|
877
877
|
end
|
878
878
|
|
879
879
|
super([:image, :ssh_key_name, :aws_access_key_id, :aws_secret_access_key])
|
@@ -931,13 +931,13 @@ class Chef
|
|
931
931
|
end
|
932
932
|
|
933
933
|
if config[:security_groups] && config[:security_groups].class == String
|
934
|
-
ui.error("Invalid value type for knife[:security_groups] in knife configuration file (i.e knife.rb). Type should be array. e.g - knife[:security_groups] = ['sgroup1']")
|
934
|
+
ui.error("Invalid value type for knife[:security_groups] in knife configuration file (i.e knife.rb/config.rb). Type should be array. e.g - knife[:security_groups] = ['sgroup1']")
|
935
935
|
exit 1
|
936
936
|
end
|
937
937
|
|
938
|
-
# Validation for security_group_ids passed through knife.rb. It will raise error if values are not provided in Array.
|
938
|
+
# Validation for security_group_ids passed through knife.rb/config.rb. It will raise error if values are not provided in Array.
|
939
939
|
if locate_config_value(:security_group_ids) && locate_config_value(:security_group_ids).class == String
|
940
|
-
ui.error("Invalid value type for knife[:security_group_ids] in knife configuration file (i.e knife.rb). Type should be array. e.g - knife[:security_group_ids] = ['sgroup1']")
|
940
|
+
ui.error("Invalid value type for knife[:security_group_ids] in knife configuration file (i.e knife.rb/config.rb). Type should be array. e.g - knife[:security_group_ids] = ['sgroup1']")
|
941
941
|
exit 1
|
942
942
|
end
|
943
943
|
|
@@ -101,7 +101,7 @@ class Chef
|
|
101
101
|
output_column_count = server_list.length
|
102
102
|
|
103
103
|
if !config[:region] && Chef::Config[:knife][:region].nil?
|
104
|
-
ui.warn "No region was specified in knife.rb or as an argument. The default region, us-east-1, will be used:"
|
104
|
+
ui.warn "No region was specified in knife.rb/config.rb or as an argument. The default region, us-east-1, will be used:"
|
105
105
|
end
|
106
106
|
|
107
107
|
servers = connection.servers
|
data/lib/knife-ec2/version.rb
CHANGED
@@ -115,7 +115,7 @@ describe Chef::Knife::Ec2AmiList do
|
|
115
115
|
ec2_servers = double()
|
116
116
|
allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
|
117
117
|
allow(knife_ec2_ami_list).to receive(:validate!)
|
118
|
-
expect(knife_ec2_ami_list.ui).to receive(:warn).with("No region was specified in knife.rb or as an argument. The default region, us-east-1, will be used:")
|
118
|
+
expect(knife_ec2_ami_list.ui).to receive(:warn).with("No region was specified in knife.rb/config.rb or as an argument. The default region, us-east-1, will be used:")
|
119
119
|
knife_ec2_ami_list.run
|
120
120
|
end
|
121
121
|
end
|
@@ -45,7 +45,7 @@ describe Chef::Knife::Ec2FlavorList do
|
|
45
45
|
ec2_flavors = double(sort_by: [])
|
46
46
|
allow(ec2_connection).to receive(:flavors).and_return(ec2_flavors)
|
47
47
|
allow(knife_flavor_list).to receive(:validate!)
|
48
|
-
expect(knife_flavor_list.ui).to receive(:warn).with("No region was specified in knife.rb or as an argument. The default region, us-east-1, will be used:")
|
48
|
+
expect(knife_flavor_list.ui).to receive(:warn).with("No region was specified in knife.rb/config.rb or as an argument. The default region, us-east-1, will be used:")
|
49
49
|
knife_flavor_list.run
|
50
50
|
end
|
51
51
|
end
|
@@ -616,7 +616,7 @@ describe Chef::Knife::Ec2ServerCreate do
|
|
616
616
|
end
|
617
617
|
|
618
618
|
it "gives warning message and creates the attribute with the required name" do
|
619
|
-
expect(knife_ec2_create.ui).to receive(:warn).with("Use of aws_ssh_key_id option in knife.rb config is deprecated, use ssh_key_name option instead.")
|
619
|
+
expect(knife_ec2_create.ui).to receive(:warn).with("Use of aws_ssh_key_id option in knife.rb/config.rb config is deprecated, use ssh_key_name option instead.")
|
620
620
|
knife_ec2_create.validate!
|
621
621
|
expect(Chef::Config[:knife][:ssh_key_name]).to eq(@aws_key)
|
622
622
|
end
|
@@ -631,7 +631,7 @@ describe Chef::Knife::Ec2ServerCreate do
|
|
631
631
|
end
|
632
632
|
|
633
633
|
it "gives warning message and gives preference to CLI value over knife config's value" do
|
634
|
-
expect(knife_ec2_create.ui).to receive(:warn).with("Use of aws_ssh_key_id option in knife.rb config is deprecated, use ssh_key_name option instead.")
|
634
|
+
expect(knife_ec2_create.ui).to receive(:warn).with("Use of aws_ssh_key_id option in knife.rb/config.rb config is deprecated, use ssh_key_name option instead.")
|
635
635
|
knife_ec2_create.validate!
|
636
636
|
expect(Chef::Config[:knife][:ssh_key_name]).to_not eq(@aws_key)
|
637
637
|
end
|
@@ -40,7 +40,7 @@ describe Chef::Knife::Ec2ServerList do
|
|
40
40
|
ec2_servers = double()
|
41
41
|
allow(ec2_connection).to receive(:servers).and_return(ec2_servers)
|
42
42
|
allow(knife_ec2_list).to receive(:validate!)
|
43
|
-
expect(knife_ec2_list.ui).to receive(:warn).with("No region was specified in knife.rb or as an argument. The default region, us-east-1, will be used:")
|
43
|
+
expect(knife_ec2_list.ui).to receive(:warn).with("No region was specified in knife.rb/config.rb or as an argument. The default region, us-east-1, will be used:")
|
44
44
|
knife_ec2_list.run
|
45
45
|
end
|
46
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-ec2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-12-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog-aws
|
@@ -53,24 +53,7 @@ executables: []
|
|
53
53
|
extensions: []
|
54
54
|
extra_rdoc_files: []
|
55
55
|
files:
|
56
|
-
- ".expeditor/config.yml"
|
57
|
-
- ".expeditor/update_version.sh"
|
58
|
-
- ".github/CODEOWNERS"
|
59
|
-
- ".github/ISSUE_TEMPLATE.md"
|
60
|
-
- ".github/PULL_REQUEST_TEMPLATE.md"
|
61
|
-
- ".gitignore"
|
62
|
-
- ".rspec"
|
63
|
-
- ".rubocop.yml"
|
64
|
-
- ".travis.yml"
|
65
|
-
- CHANGELOG.md
|
66
|
-
- DOC_CHANGES.md
|
67
|
-
- Gemfile
|
68
56
|
- LICENSE
|
69
|
-
- README.md
|
70
|
-
- RELEASE_NOTES.md
|
71
|
-
- Rakefile
|
72
|
-
- VERSION
|
73
|
-
- knife-ec2.gemspec
|
74
57
|
- lib/chef/knife/ec2_ami_list.rb
|
75
58
|
- lib/chef/knife/ec2_base.rb
|
76
59
|
- lib/chef/knife/ec2_flavor_list.rb
|
data/.expeditor/config.yml
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# Documentation available at https://expeditor.chef.io/docs/getting-started/
|
2
|
-
---
|
3
|
-
# Slack channel in Chef Software slack to send notifications about build failures, etc
|
4
|
-
slack:
|
5
|
-
notify_channel: sustaining-notify
|
6
|
-
|
7
|
-
# This publish is triggered by the `built_in:publish_rubygems` artifact_action.
|
8
|
-
rubygems:
|
9
|
-
- knife-ec2
|
10
|
-
|
11
|
-
github:
|
12
|
-
# This deletes the GitHub PR branch after successfully merged into the release branch
|
13
|
-
delete_branch_on_merge: true
|
14
|
-
# The tag format to use (e.g. v1.0.0)
|
15
|
-
version_tag_format: "v{{version}}"
|
16
|
-
# allow bumping the minor release via label
|
17
|
-
minor_bump_labels:
|
18
|
-
- "Expeditor: Bump Minor Version"
|
19
|
-
|
20
|
-
changelog:
|
21
|
-
rollup_header: Changes not yet released to rubygems.org
|
22
|
-
|
23
|
-
# These actions are taken, in order they are specified, anytime a Pull Request is merged.
|
24
|
-
merge_actions:
|
25
|
-
- built_in:bump_version:
|
26
|
-
ignore_labels:
|
27
|
-
- "Expeditor: Skip Version Bump"
|
28
|
-
- "Expeditor: Skip All"
|
29
|
-
- bash:.expeditor/update_version.sh:
|
30
|
-
only_if: built_in:bump_version
|
31
|
-
- built_in:update_changelog:
|
32
|
-
ignore_labels:
|
33
|
-
- "Expeditor: Exclude From Changelog"
|
34
|
-
- "Expeditor: Skip All"
|
35
|
-
- built_in:build_gem:
|
36
|
-
only_if: built_in:bump_version
|
37
|
-
|
38
|
-
promote:
|
39
|
-
actions:
|
40
|
-
- built_in:rollover_changelog
|
41
|
-
- built_in:publish_rubygems
|
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
#
|
3
|
-
# After a PR merge, Chef Expeditor will bump the PATCH version in the VERSION file.
|
4
|
-
# It then executes this file to update any other files/components with that new version.
|
5
|
-
#
|
6
|
-
|
7
|
-
set -evx
|
8
|
-
|
9
|
-
sed -i -r "s/^(\s*)VERSION = \".+\"/\1VERSION = \"$(cat VERSION)\"/" lib/knife-ec2/version.rb
|
10
|
-
|
11
|
-
# Once Expeditor finshes executing this script, it will commit the changes and push
|
12
|
-
# the commit as a new tag corresponding to the value in the VERSION file.
|
data/.github/CODEOWNERS
DELETED
data/.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# Version:
|
2
|
-
|
3
|
-
[Version of the project installed]
|
4
|
-
|
5
|
-
# Environment: [Details about the environment such as the Operating System, cookbook details, etc...]
|
6
|
-
|
7
|
-
# Scenario:
|
8
|
-
|
9
|
-
[What you are trying to achieve and you can't?]
|
10
|
-
|
11
|
-
# Steps to Reproduce:
|
12
|
-
|
13
|
-
[If you are filing an issue what are the things we need to do in order to repro your problem?]
|
14
|
-
|
15
|
-
# Expected Result:
|
16
|
-
|
17
|
-
[What are you expecting to happen as the consequence of above reproduction steps?]
|
18
|
-
|
19
|
-
# Actual Result:
|
20
|
-
|
21
|
-
[What actually happens after the reproduction steps?]
|
@@ -1,14 +0,0 @@
|
|
1
|
-
### Description
|
2
|
-
|
3
|
-
[Please describe what this change achieves]
|
4
|
-
|
5
|
-
### Issues Resolved
|
6
|
-
|
7
|
-
[List any existing issues this PR resolves, or any Discourse or
|
8
|
-
StackOverflow discussion that's relevant]
|
9
|
-
|
10
|
-
### Check List
|
11
|
-
|
12
|
-
- [ ] New functionality includes tests
|
13
|
-
- [ ] All tests pass
|
14
|
-
- [ ] All commits have been signed-off for the Developer Certificate of Origin. See <https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco>
|
data/.gitignore
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
.rake_tasks~
|
2
|
-
tags
|
3
|
-
coverage
|
4
|
-
rdoc
|
5
|
-
pkg
|
6
|
-
test/tmp
|
7
|
-
test/version_tmp
|
8
|
-
tmp
|
9
|
-
pkg
|
10
|
-
*.gem
|
11
|
-
*.rbc
|
12
|
-
lib/bundler/man
|
13
|
-
spec/reports
|
14
|
-
.config
|
15
|
-
InstalledFiles
|
16
|
-
.bundle
|
17
|
-
|
18
|
-
# YARD artifacts
|
19
|
-
.yardoc
|
20
|
-
_yardoc
|
21
|
-
doc/
|
22
|
-
|
23
|
-
.DS_Store
|
24
|
-
Icon?
|
25
|
-
|
26
|
-
# Thumbnails
|
27
|
-
._*
|
28
|
-
|
29
|
-
# Files that might appear on external disk
|
30
|
-
.Spotlight-V100
|
31
|
-
.Trashes
|
32
|
-
|
33
|
-
*.swp
|
34
|
-
*.swo
|
35
|
-
|
36
|
-
Gemfile.lock
|
37
|
-
Guardfile
|
38
|
-
|
39
|
-
.rvmrc
|
40
|
-
.rbenv-gemsets
|
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
Lint/AssignmentInCondition:
|
2
|
-
Exclude:
|
3
|
-
- 'lib/chef/knife/ec2_server_create.rb'
|
4
|
-
|
5
|
-
Lint/EmptyWhen:
|
6
|
-
Exclude:
|
7
|
-
- 'lib/chef/knife/ec2_server_create.rb'
|
8
|
-
|
9
|
-
Lint/ParenthesesAsGroupedExpression:
|
10
|
-
Exclude:
|
11
|
-
- 'lib/chef/knife/ec2_base.rb'
|
12
|
-
- 'lib/chef/knife/ec2_server_create.rb'
|
13
|
-
- 'spec/unit/ec2_ami_list_spec.rb'
|
14
|
-
- 'spec/unit/ec2_server_create_spec.rb'
|
15
|
-
|
16
|
-
Lint/ShadowingOuterLocalVariable:
|
17
|
-
Exclude:
|
18
|
-
- 'lib/chef/knife/ec2_server_create.rb'
|
19
|
-
- 'lib/chef/knife/ec2_server_delete.rb'
|
20
|
-
|
21
|
-
Lint/UselessAssignment:
|
22
|
-
Exclude:
|
23
|
-
- 'lib/chef/knife/ec2_base.rb'
|
24
|
-
- 'lib/chef/knife/ec2_server_list.rb'
|
25
|
-
- 'spec/unit/ec2_ami_list_spec.rb'
|
26
|
-
|
27
|
-
Style/NumericPredicate:
|
28
|
-
Exclude:
|
29
|
-
- 'spec/**/*'
|
30
|
-
- 'lib/chef/knife/ec2_server_create.rb'
|
data/.travis.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
cache: bundler
|
4
|
-
|
5
|
-
matrix:
|
6
|
-
include:
|
7
|
-
- rvm: 2.3.7
|
8
|
-
- rvm: 2.4.4
|
9
|
-
- rvm: 2.5.1
|
10
|
-
- rvm: ruby-head
|
11
|
-
allow_failures:
|
12
|
-
- rvm: ruby-head
|
13
|
-
|
14
|
-
branches:
|
15
|
-
only:
|
16
|
-
- master
|
17
|
-
|
18
|
-
bundler_args: --jobs 7 --without docs debug
|
19
|
-
|
20
|
-
script: bundle exec rake
|
data/CHANGELOG.md
DELETED
@@ -1,159 +0,0 @@
|
|
1
|
-
# knife-ec2 change log
|
2
|
-
|
3
|
-
Note: this log contains only changes from knife-ec2 release 0.8.0 and later
|
4
|
-
-- it does not contain the changes from prior releases. To view change history
|
5
|
-
prior to release 0.8.0, please visit the [source repository](https://github.com/chef/knife-ec2/commits).
|
6
|
-
|
7
|
-
<!-- latest_release 0.19.12 -->
|
8
|
-
## [v0.19.12](https://github.com/chef/knife-ec2/tree/v0.19.12) (2018-11-28)
|
9
|
-
|
10
|
-
#### Merged Pull Requests
|
11
|
-
- Pass bootstrap template in common config [#560](https://github.com/chef/knife-ec2/pull/560) ([scotthain](https://github.com/scotthain))
|
12
|
-
<!-- latest_release -->
|
13
|
-
|
14
|
-
<!-- release_rollup since=0.19.10 -->
|
15
|
-
### Changes not yet released to rubygems.org
|
16
|
-
|
17
|
-
#### Merged Pull Requests
|
18
|
-
- Pass bootstrap template in common config [#560](https://github.com/chef/knife-ec2/pull/560) ([scotthain](https://github.com/scotthain)) <!-- 0.19.12 -->
|
19
|
-
- Misc cleanup to sync with other gems [#552](https://github.com/chef/knife-ec2/pull/552) ([tas50](https://github.com/tas50)) <!-- 0.19.11 -->
|
20
|
-
<!-- release_rollup -->
|
21
|
-
|
22
|
-
<!-- latest_stable_release -->
|
23
|
-
## [v0.19.10](https://github.com/chef/knife-ec2/tree/v0.19.10) (2018-08-06)
|
24
|
-
|
25
|
-
#### Merged Pull Requests
|
26
|
-
- Drop Ruby 2.2 + Add Chefstyle + align testing with other projects [#530](https://github.com/chef/knife-ec2/pull/530) ([tas50](https://github.com/tas50))
|
27
|
-
- Bump copyrights & minor readme updates [#532](https://github.com/chef/knife-ec2/pull/532) ([tas50](https://github.com/tas50))
|
28
|
-
- Move contributing docs out of the repo [#535](https://github.com/chef/knife-ec2/pull/535) ([tas50](https://github.com/tas50))
|
29
|
-
- Add codeowners and PR template files [#533](https://github.com/chef/knife-ec2/pull/533) ([tas50](https://github.com/tas50))
|
30
|
-
- Update installation instructions in the readme to push ChefDK [#537](https://github.com/chef/knife-ec2/pull/537) ([tas50](https://github.com/tas50))
|
31
|
-
- Rewrite the credentials section of the readme with new recommendations [#538](https://github.com/chef/knife-ec2/pull/538) ([tas50](https://github.com/tas50))
|
32
|
-
- Fix knife ami list --group flag description [#539](https://github.com/chef/knife-ec2/pull/539) ([tas50](https://github.com/tas50))
|
33
|
-
- Clarify which AWS CLI tools we're talking about [#540](https://github.com/chef/knife-ec2/pull/540) ([tas50](https://github.com/tas50))
|
34
|
-
- Lazy load deps and avoid double loading [#544](https://github.com/chef/knife-ec2/pull/544) ([tas50](https://github.com/tas50))
|
35
|
-
- Improve the AMI missing error and improve the readme example [#543](https://github.com/chef/knife-ec2/pull/543) ([tas50](https://github.com/tas50))
|
36
|
-
- Provide a unique console color for us-east-1f availability zone [#541](https://github.com/chef/knife-ec2/pull/541) ([tas50](https://github.com/tas50))
|
37
|
-
- Removed deprecated options distro and template_file flags in server create command [#542](https://github.com/chef/knife-ec2/pull/542) ([tas50](https://github.com/tas50))
|
38
|
-
- Remove readline dep which we're not using [#547](https://github.com/chef/knife-ec2/pull/547) ([tas50](https://github.com/tas50))
|
39
|
-
- Remove mime-types dependency [#550](https://github.com/chef/knife-ec2/pull/550) ([tas50](https://github.com/tas50))
|
40
|
-
- Remove executables from gemspec and cleanup test files [#549](https://github.com/chef/knife-ec2/pull/549) ([tas50](https://github.com/tas50))
|
41
|
-
- If no keys specified on CLI/config use an AWS credential file if present [#548](https://github.com/chef/knife-ec2/pull/548) ([tas50](https://github.com/tas50))
|
42
|
-
<!-- latest_stable_release -->
|
43
|
-
|
44
|
-
## [v0.18.2](https://github.com/chef/knife-ec2/tree/v0.18.2) (2018-07-06)
|
45
|
-
|
46
|
-
#### Merged Pull Requests
|
47
|
-
- [MSYS-824] fix breaking tag changes & deprecation warning [#527](https://github.com/chef/knife-ec2/pull/527) ([dheerajd-msys](https://github.com/dheerajd-msys))
|
48
|
-
- MSYS-798 - Fixes for windows administrator password [#524](https://github.com/chef/knife-ec2/pull/524) ([dheerajd-msys](https://github.com/dheerajd-msys))
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
## Latest Release 0.18.0 (2018-04-05)
|
53
|
-
* [knife-ec2:#520](https://github.com/chef/knife-ec2/pull/520) Options `--aws-tag` and `--chef-tag` are added for tagging EC2 instance in AWS and Chef separately.
|
54
|
-
|
55
|
-
## Release 0.17.0 (2018-02-07)
|
56
|
-
* [knife-ec2:#515](https://github.com/chef/knife-ec2/pull/515) Allow re-use of existing ENI for primary interface.
|
57
|
-
* [knife-ec2:#514](https://github.com/chef/knife-ec2/pull/514) Add `--instance-initiated-shutdown-behavior` option.
|
58
|
-
* [knife-ec2:#513](https://github.com/chef/knife-ec2/pull/513) require `rb-readline` to avoid ruby 2.4 warnings about `Fixnum`.
|
59
|
-
|
60
|
-
## Release 0.16.0 (2017-11-07)
|
61
|
-
* [knife-ec2:#503](https://github.com/chef/knife-ec2/pull/503) Update list of instance_types that support ebs-encryption.
|
62
|
-
* [knife-ec2:#496](https://github.com/chef/knife-ec2/pull/496) Change Winrm cert to 10 year expiry.
|
63
|
-
* [knife-ec2:#492](https://github.com/chef/knife-ec2/pull/492) Added support to tag node details to chef.
|
64
|
-
* [knife-ec2:#490](https://github.com/chef/knife-ec2/pull/490) Improper alignment of EC2 flavor list.
|
65
|
-
* [knife-ec2:#489](https://github.com/chef/knife-ec2/pull/489) Added support to handle long passwords in windows.
|
66
|
-
* [knife-ec2:#488](https://github.com/chef/knife-ec2/pull/488) Added support to tag EBS volumes on node creation.
|
67
|
-
* [knife-ec2:#487](https://github.com/chef/knife-ec2/pull/487) Added new column description in EC2 AMIs list.
|
68
|
-
|
69
|
-
## Release 0.15.0 (2017-02-15)
|
70
|
-
* [knife-ec2:#484](https://github.com/chef/knife-ec2/pull/484) sleep for collecting windows password
|
71
|
-
* [knife-ec2:#481](https://github.com/chef/knife-ec2/pull/481) Updated readme for EC2 AMI list
|
72
|
-
* [knife-ec2:#482](https://github.com/chef/knife-ec2/pull/482) Allow search for EC2 AMIs
|
73
|
-
* [knife-ec2:#471](https://github.com/chef/knife-ec2/pull/471) Added support to include ec2 server id in the node name using `-N "www-server-%s" or --chef-node-name "-www-server-%s"`
|
74
|
-
* [knife-ec2:#478](https://github.com/chef/knife-ec2/pull/478) Allow for hosts without public ip addresses
|
75
|
-
* [knife-ec2:#476](https://github.com/chef/knife-ec2/pull/476) Tag node in chef
|
76
|
-
* [knife-ec2:#458](https://github.com/chef/knife-ec2/pull/458) Fix where yes option wasn’t being passed to bootstrap
|
77
|
-
* [knife-ec2:#468](https://github.com/chef/knife-ec2/pull/468) In VPC mode use private IP when public IP and DNS not available
|
78
|
-
* [knife-ec2:#464](https://github.com/chef/knife-ec2/pull/464) default value and desription is changed for --ebs-volume-type
|
79
|
-
|
80
|
-
## Release 0.14.0 (2016-12-02)
|
81
|
-
* `knife-ec2` requires `chef-client 12.14` or newer.
|
82
|
-
* [knife-ec2:#442](https://github.com/chef/knife-ec2/pull/442) Added support to show flavor list in json format.
|
83
|
-
* [knife-ec2:#439](https://github.com/chef/knife-ec2/pull/439) Allow to accept multiple security group ids using --security-group-id option multiple times and added deprecated message for comma seprated --security-group-ids option.
|
84
|
-
|
85
|
-
## Release 0.13.0 (2016-08-05)
|
86
|
-
* [knife-ec2:#438](https://github.com/chef/knife-ec2/pull/438) Specs for ec2 server list
|
87
|
-
* [knife-ec2:#437](https://github.com/chef/knife-ec2/pull/437) Fix --aws-credential-file issues
|
88
|
-
* [knife-ec2:#436](https://github.com/chef/knife-ec2/pull/436) basic is not a valid setting for winrm_ssl_verify_mode
|
89
|
-
* [knife-ec2:#435](https://github.com/chef/knife-ec2/pull/435) Fix for Winrm Authentication Failure issue during bootstrap
|
90
|
-
* [knife-ec2:#434](https://github.com/chef/knife-ec2/pull/434) Removed ruby2.0.0 from travis
|
91
|
-
* [knife-ec2:#431](https://github.com/chef/knife-ec2/pull/431) Pinned rack and ffi-yajl gem to older versions.
|
92
|
-
* [knife-ec2:#430](https://github.com/chef/knife-ec2/pull/430) Fixing --aws-config-file issues
|
93
|
-
* [knife-ec2:#429](https://github.com/chef/knife-ec2/pull/429) Added validation when spot-wait-mode option is given by user on CLI and spot-price option is not given.
|
94
|
-
* [knife-ec2:#428](https://github.com/chef/knife-ec2/pull/428) Fix for s3 secret not getting copied on target vm
|
95
|
-
* [knife-ec2:#427](https://github.com/chef/knife-ec2/pull/427) Addedd disable_api_termination option along with RSpecs.
|
96
|
-
* [knife-ec2:#416](https://github.com/chef/knife-ec2/pull/416) Modified help for option --security-group-ids
|
97
|
-
* [knife-ec2:#409](https://github.com/chef/knife-ec2/pull/409) Passing encrypted\_data\_bag\_secret and encrypted\_databag\_secret\_file
|
98
|
-
* [knife-ec2:#405](https://github.com/chef/knife-ec2/pull/405) Updated README file - added description of aws\_config\_file option
|
99
|
-
* [knife-ec2:#399](https://github.com/chef/knife-ec2/pull/399) Adding support for aws-config-file
|
100
|
-
* [knife-ec2:#400](https://github.com/chef/knife-ec2/pull/400) Added --json-for-attributes-file
|
101
|
-
* [knife-ec2:#393](https://github.com/chef/knife-ec2/pull/393) Please also read aws\_session\_token from credentials file - [Richard Morrisey](https://github.com/datascope)
|
102
|
-
* [knife-ec2:#395](https://github.com/chef/knife-ec2/pull/395) Fix security groups for spot requests in a VPC and make user input optional - [Mikhail Bautin](https://github.com/mbautin)
|
103
|
-
* [knife-ec2:#322](https://github.com/chef/knife-ec2/pull/322) Implement support for ClassicLink [Quention de Metz](https://github.com/quentindemetz)
|
104
|
-
* [knife-ec2:#391](https://github.com/chef/knife-ec2/pull/391) adding missing m4,d2,t2,and g2 ebs encryption flavors - [Mario Harvey](https://github.com/badmadrad)
|
105
|
-
* [knife-ec2:#390](https://github.com/chef/knife-ec2/pull/390) Modified create\_ssl\_listener option as per Mixlib-CLI.
|
106
|
-
* [knife-ec2:#375](https://github.com/chef/knife-ec2/pull/375) Attach network interfaces before bootstrap - [Eric Herot](https://github.com/eherot)
|
107
|
-
* [knife-ec2:#389](https://github.com/chef/knife-ec2/pull/389) --server-connect-attribute cleanup
|
108
|
-
* [knife-ec2:#388](https://github.com/chef/knife-ec2/pull/388) Updated Readme for --server-connect-attribute option
|
109
|
-
* [knife-ec2:#384](https://github.com/chef/knife-ec2/pull/384) server list in json format
|
110
|
-
* [knife-ec2:#378](https://github.com/chef/knife-ec2/pull/378) Readme improvements
|
111
|
-
* [knife-ec2:#376](https://github.com/chef/knife-ec2/pull/376) Remove instance colors
|
112
|
-
* [knife-ec2:#377](https://github.com/chef/knife-ec2/pull/377) Require fog-aws vs. fog
|
113
|
-
* [knife-ec2:#368](https://github.com/chef/knife-ec2/pull/368) Handle Errno::ENOTCONN when testing for sshd access - [Eugene Bolshakov](https://github.com/eugenebolshakov)
|
114
|
-
* [knife-ec2:#373](https://github.com/chef/knife-ec2/pull/373) Update contributing docs
|
115
|
-
* [knife-ec2:#374](https://github.com/chef/knife-ec2/pull/374) Avoid sending nil runlist to Chef::Knife::Boostrap
|
116
|
-
* [knife-ec2:#372](https://github.com/chef/knife-ec2/pull/372) Cache gems in travis, update links and opscode -> chef
|
117
|
-
* [knife-ec2:#371](https://github.com/chef/knife-ec2/pull/371) fix typo in readme - [Kyle West](https://github.com/kylewest)
|
118
|
-
* [knife-ec2:#363](https://github.com/chef/knife-ec2/pull/363) Add ssl config user data for ssl transport, if required append to user\_data script specified by user.
|
119
|
-
* [knife-ec2:#319](https://github.com/chef/knife-ec2/pull/319) Pointing docs at itself. This is better then the non-existent chef.io docs.
|
120
|
-
|
121
|
-
## Release: 0.12.0 (2015-10-1)
|
122
|
-
* [knife-ec2:#305](https://github.com/chef/knife-ec2/pull/305) Updates to support standard .aws/credentials file
|
123
|
-
* [knife-ec2 #354](https://github.com/chef/knife-ec2/pull/354) knife-windows 1.0.0 dependency, support for validatorless bootstrap, other Chef 12 bootstrap options
|
124
|
-
* [knife-ec2 #356](https://github.com/chef/knife-ec2/pull/356) Added --forward-agent option
|
125
|
-
|
126
|
-
## Release: 0.11.0 (2015-08-24)
|
127
|
-
* [knife-ec2:#330](https://github.com/chef/knife-ec2/pull/330) Modification for attribute precedence issue
|
128
|
-
* [knife-ec2:#293](https://github.com/chef/knife-ec2/pull/293) s3_source: Lazy load fog library
|
129
|
-
* [knife-ec2:#284](https://github.com/chef/knife-ec2/pull/284) Enable Spot Pricing
|
130
|
-
* [knife-ec2:#280](https://github.com/chef/knife-ec2/pull/280) Support for EBS volume encryption in knife-ec2 server create options
|
131
|
-
* [knife-ec2:#273](https://github.com/chef/knife-ec2/pull/273) Remove -s option for data bag secret and subnets
|
132
|
-
* [knife-ec2:#268](https://github.com/chef/knife-ec2/pull/268) Updated gemspec to use fog v1.25
|
133
|
-
* [knife-ec2:#265](https://github.com/chef/knife-ec2/pull/265) showing error message for incorrect option input
|
134
|
-
* [knife-ec2:#261](https://github.com/chef/knife-ec2/pull/261) Remove 'em-winrm' gem dependency
|
135
|
-
* [KNIFE-464](https://tickets.opscode.com/browse/KNIFE-464) Support EC2 STS, i.e. AWS Federation tokens for authentication
|
136
|
-
|
137
|
-
## Release: 0.10.0.rc.1 (2014-10-08)
|
138
|
-
* [Issue:#237](https://github.com/chef/knife-ec2/issues/237) Provide a way to the validation key and data bag secret from S3
|
139
|
-
* [Issue:#243](https://github.com/chef/knife-ec2/issues/243) Support new AWS CLI configuration file format
|
140
|
-
* Update `knife-windows` gem dependency to `knife-windows 0.8.rc.0` for improved Windows authentication integration
|
141
|
-
* Update `fog` gem dependency to `fog 1.23.0`
|
142
|
-
* Provisioned IOPS support via the `--provisioned-iops` and `--ebs-volume-type` options
|
143
|
-
* [KNIFE-466](https://tickets.opscode.com/browse/KNIFE-466) Knife ec2 should use gateway from net::ssh config if available
|
144
|
-
* [KNIFE-422](https://tickets.opscode.com/browse/KNIFE-422) Knife ec2 server create doesn't respect identity file of gateway server from ssh\_config
|
145
|
-
|
146
|
-
## Release: 0.8.0 (2014-03-10)
|
147
|
-
* [KNIFE-458](https://tickets.opscode.com/browse/KNIFE-458) Docs: Increase detail about necessary
|
148
|
-
options for VPC instance creation
|
149
|
-
* [KNIFE-456](https://tickets.opscode.com/browse/KNIFE-456) Documentation for :aws\_credential\_file difficult to read
|
150
|
-
* [KNIFE-455](https://tickets.opscode.com/browse/KNIFE-455) knife ec2 may try to use private ip for vpc bootstrap even with --associate-public-ip flag
|
151
|
-
* [KNIFE-453](https://tickets.opscode.com/browse/KNIFE-453) knife-ec2 doesn't handle aws credentials files with windows line endings
|
152
|
-
* [KNIFE-451](https://tickets.opscode.com/browse/KNIFE-451) Update Fog version to 1.20.0
|
153
|
-
* [KNIFE-430](https://tickets.opscode.com/browse/KNIFE-430) server creation tunnelling should wait for a valid banner before continuing
|
154
|
-
* [KNIFE-381](https://tickets.opscode.com/browse/KNIFE-381) Gabriel Rosendorf Add ability to associate public ip with VPC
|
155
|
-
instance on creation
|
156
|
-
|
157
|
-
## Releases prior to 0.8.0
|
158
|
-
Please see <https://github.com/chef/knife-ec2/commits> to view changes in
|
159
|
-
the form of commits to the source repository for releases before 0.8.0.
|
data/DOC_CHANGES.md
DELETED
data/Gemfile
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
source "https://rubygems.org"
|
2
|
-
|
3
|
-
gemspec
|
4
|
-
|
5
|
-
group :debug do
|
6
|
-
gem "pry"
|
7
|
-
gem "pry-byebug"
|
8
|
-
gem "pry-stack_explorer"
|
9
|
-
end
|
10
|
-
|
11
|
-
group :test do
|
12
|
-
gem "chef", ">= 13.0"
|
13
|
-
gem "chefstyle", "= 0.10.0"
|
14
|
-
gem "rake"
|
15
|
-
gem "rspec", "~> 3.0"
|
16
|
-
end
|
17
|
-
|
18
|
-
group :docs do
|
19
|
-
gem "github-markup"
|
20
|
-
gem "redcarpet"
|
21
|
-
gem "yard"
|
22
|
-
end
|
23
|
-
|
24
|
-
instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
|
25
|
-
|
26
|
-
# If you want to load debugging tools into the bundle exec sandbox,
|
27
|
-
# add these additional dependencies into Gemfile.local
|
28
|
-
eval_gemfile(__FILE__ + ".local") if File.exist?(__FILE__ + ".local")
|
data/README.md
DELETED
@@ -1,304 +0,0 @@
|
|
1
|
-
# Knife EC2
|
2
|
-
[![Gem Version](https://badge.fury.io/rb/knife-ec2.svg)](https://rubygems.org/gems/knife-ec2)
|
3
|
-
[![Build Status](https://travis-ci.org/chef/knife-ec2.svg?branch=master)](https://travis-ci.org/chef/knife-ec2)
|
4
|
-
|
5
|
-
This is the official Chef Knife plugin for Amazon EC2. This plugin gives knife the ability to create, bootstrap, and manage EC2 instances.
|
6
|
-
- Documentation: [https://github.com/chef/knife-ec2/blob/master/README.md](https://github.com/chef/knife-ec2/blob/master/README.md)
|
7
|
-
- Source: [https://github.com/chef/knife-ec2/tree/master](https://github.com/chef/knife-ec2/tree/master)
|
8
|
-
- Issues: [https://github.com/chef/knife-ec2/issues](https://github.com/chef/knife-ec2/issues)
|
9
|
-
- Mailing list: [https://discourse.chef.io/](https://discourse.chef.io/)
|
10
|
-
|
11
|
-
## Installation
|
12
|
-
|
13
|
-
We highly recommend using [ChefDK](https://downloads.chef.io/chef-dk/), which includes knife-ec2 out of the box. If for some reason you can't use ChefDK you can manually install the gem.
|
14
|
-
|
15
|
-
If you're using bundler, simply add Chef and Knife EC2 to your `Gemfile`:
|
16
|
-
|
17
|
-
```ruby
|
18
|
-
gem 'knife-ec2'
|
19
|
-
```
|
20
|
-
|
21
|
-
If you are not using bundler, you can install the gem manually from Rubygems:
|
22
|
-
|
23
|
-
```bash
|
24
|
-
$ gem install knife-ec2
|
25
|
-
```
|
26
|
-
|
27
|
-
Depending on your system's configuration, you may need to run this command with root privileges.
|
28
|
-
|
29
|
-
## Configuration
|
30
|
-
|
31
|
-
In order to communicate with the Amazon's EC2 API you will need to pass Knife your AWS Access Key, Secret Access Key, and if using STS your session token. The knife-ec2 plugin supports multiple methods for configuring these credentials including:
|
32
|
-
- AWS configuration / credential files (preferred method)
|
33
|
-
- knife.rb / config.rb configuration files
|
34
|
-
- environmental variables
|
35
|
-
- command line arguments
|
36
|
-
|
37
|
-
### AWS Configuration / Credential Files
|
38
|
-
|
39
|
-
The preferred method of storing credentials for AWS is to use Amazon's own credential and configuration files. The files allow for multiple "profiles", each with their own set of credentials. Also since these credentials aren't stored in your knife.rb/config.rb files you don't have to worry about accidentally checking credentials into a git repository. The configs can be created by hand or generated automatically by running `aws configure` if the AWS Command Line Interface (awscli) is installed.
|
40
|
-
|
41
|
-
|
42
|
-
See Amazon's [Configuration and Credentials Files](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html) documentation for additional information on the file format and default locations for Linux/Mac & Windows hosts.
|
43
|
-
|
44
|
-
#### Alternative Config Files Location
|
45
|
-
|
46
|
-
If you're not storing the files in their default directory you'll need to specify the location in your `knife.rb`/`config.rb` files:
|
47
|
-
|
48
|
-
```ruby
|
49
|
-
knife[:aws_credential_file] = "/path/to/credentials/file"
|
50
|
-
knife[:aws_config_file] = "/path/to/configuration/file"
|
51
|
-
```
|
52
|
-
Since the Knife config file is just Ruby you can also avoid hardcoding your home directory, which creates a configuration that can be used for any user:
|
53
|
-
|
54
|
-
```ruby
|
55
|
-
knife[:aws_credential_file] = File.join(ENV['HOME'], "/.aws/credentials")
|
56
|
-
knife[:aws_config_file] = File.join(ENV['HOME'], "/path/to/configuration/file")
|
57
|
-
```
|
58
|
-
|
59
|
-
#### Specifying the AWS Profile
|
60
|
-
|
61
|
-
If you have multiple profiles in your credentials file you can define which profile to use. The `default` profile will be used if not supplied,
|
62
|
-
|
63
|
-
```ruby
|
64
|
-
knife[:aws_profile] = "personal"
|
65
|
-
```
|
66
|
-
|
67
|
-
### Config.rb / Knife.rb Configuration
|
68
|
-
|
69
|
-
If you prefer to keep all of your configuration in a single location with Chef you can store your Amazon EC2 credentials in Chef's `knife.rb` or `config.rb` files:
|
70
|
-
|
71
|
-
```ruby
|
72
|
-
knife[:aws_access_key_id] = "Your AWS Access Key ID"
|
73
|
-
knife[:aws_secret_access_key] = "Your AWS Secret Access Key"
|
74
|
-
```
|
75
|
-
|
76
|
-
Additionally if using AWS STS:
|
77
|
-
|
78
|
-
```ruby
|
79
|
-
knife[:aws_session_token] = "Your AWS Session Token"
|
80
|
-
```
|
81
|
-
|
82
|
-
Note: If your `knife.rb` or `config.rb` files will be checked into a source control management system, or are otherwise accessible by others, you may want to use one of the other configuration methods to avoid exposing your credentials.
|
83
|
-
|
84
|
-
### Environmental Variables
|
85
|
-
|
86
|
-
Knife-ec2 can also read your credentials from shell environmental variables. Export `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_SESSION_TOKEN` variables in your shell then add the following configuration to your `knife.rb` file:
|
87
|
-
|
88
|
-
```ruby
|
89
|
-
knife[:aws_access_key_id] = ENV['AWS_ACCESS_KEY_ID']
|
90
|
-
knife[:aws_secret_access_key] = ENV['AWS_SECRET_ACCESS_KEY']
|
91
|
-
```
|
92
|
-
|
93
|
-
Additionally if using AWS STS:
|
94
|
-
|
95
|
-
```ruby
|
96
|
-
knife[:aws_session_token] = ENV['AWS_SESSION_TOKEN']
|
97
|
-
```
|
98
|
-
|
99
|
-
### CLI Arguments
|
100
|
-
|
101
|
-
You also have the option of passing your AWS API Key/Secret into the individual knife subcommands using the `--aws-access-key-id` and `--aws-secret-access-key` command options
|
102
|
-
|
103
|
-
Example of provisioning a new t2.micro Ubuntu 16.04 webserver:
|
104
|
-
|
105
|
-
```bash
|
106
|
-
$ knife ec2 server create -r 'role[webserver]' -I ami-5e8bb23b -f t2.micro --aws-access-key-id 'Your AWS Access Key ID' --aws-secret-access-key "Your AWS Secret Access Key" -ssh-key my_key_name --region us-west-2
|
107
|
-
```
|
108
|
-
|
109
|
-
Note: Passing credentials via the command line exposes the credentials in your shell's history and should be avoided unless absolutely necessary.
|
110
|
-
|
111
|
-
## Additional config.rb & knife.rb Configuration Options
|
112
|
-
|
113
|
-
The following configuration options may be set in your `knife.rb`:
|
114
|
-
- flavor
|
115
|
-
- image
|
116
|
-
- availability_zone
|
117
|
-
- ssh_key_name
|
118
|
-
- aws_session_token
|
119
|
-
- region
|
120
|
-
|
121
|
-
## Using Cloud-Based Secret Data
|
122
|
-
|
123
|
-
knife-ec2 now includes the ability to retrieve the encrypted data bag secret and validation keys directly from a cloud-based assets store (currently only S3 is supported). To enable this functionality, you must first upload keys to S3 and give them appropriate permissions. The following is a suggested set of IAM permissions required to make this work:
|
124
|
-
|
125
|
-
```json
|
126
|
-
{
|
127
|
-
"Statement": [
|
128
|
-
{
|
129
|
-
"Effect": "Allow",
|
130
|
-
"Action": [
|
131
|
-
"s3:Get*",
|
132
|
-
"s3:List*"
|
133
|
-
],
|
134
|
-
"Resource": [
|
135
|
-
"arn:aws:s3:::example.com/chef/*"
|
136
|
-
]
|
137
|
-
}
|
138
|
-
]
|
139
|
-
}
|
140
|
-
```
|
141
|
-
|
142
|
-
### Supported URL format
|
143
|
-
|
144
|
-
- `http` or `https` based: 'http://example.com/chef/my-validator.pem'
|
145
|
-
- `s3` based: 's3://chef/my-validator.pem'
|
146
|
-
|
147
|
-
### Use the following configuration options in `knife.rb` to set the source URLs:
|
148
|
-
|
149
|
-
```ruby
|
150
|
-
knife[:validation_key_url] = 'http://example.com/chef/my-validator.pem'
|
151
|
-
knife[:s3_secret] = 'http://example.com/chef/encrypted_data_bag_secret'
|
152
|
-
```
|
153
|
-
|
154
|
-
### Alternatively, URLs can be passed directly on the command line:
|
155
|
-
|
156
|
-
- Validation Key: `--validation-key-url s3://chef/my-validator.pem`
|
157
|
-
- Encrypted Data Bag Secret: `--s3-secret s3://chef/encrypted_data_bag_secret`
|
158
|
-
|
159
|
-
## knife-ec2 Subcommands
|
160
|
-
|
161
|
-
This plugin provides the following Knife subcommands. Specific command options can be found by invoking the subcommand with a `--help` flag
|
162
|
-
|
163
|
-
### `knife ec2 server create`
|
164
|
-
|
165
|
-
Provisions a new server in the Amazon EC2 and then perform a Chef bootstrap (using the SSH or WinRM protocols). The goal of the bootstrap is to get Chef installed on the target system so it can run Chef Client with a Chef Server. The main assumption is a baseline OS installation exists (provided by the provisioning). It is primarily intended for Chef Client systems that talk to a Chef server. The examples below create Linux and Windows instances:
|
166
|
-
|
167
|
-
```bash
|
168
|
-
# Create some instances -- knife configuration contains the AWS credentials
|
169
|
-
|
170
|
-
# A Linux instance via ssh
|
171
|
-
knife ec2 server create -I ami-d0f89fb9 --ssh-key your-public-key-id -f m1.medium --ssh-user ubuntu --identity-file ~/.ssh/your-private-key
|
172
|
-
|
173
|
-
# A Windows instance via the WinRM protocol -- --ssh-key is still required due to EC2 API operations that need it to grant access to the Windows instance
|
174
|
-
# `--spot-price` option lets you specify the spot pricing
|
175
|
-
knife ec2 server create -I ami-173d747e -G windows -f m1.medium --user-data ~/your-user-data-file -x '.\a_local_user' -P 'yourpassword' --ssh-key your-public-key-id --spot-price price-in-USD
|
176
|
-
|
177
|
-
# Pass --server-connect-attribute to specify the instance attribute that we will try to connect to via ssh/winrm
|
178
|
-
# Possible values of --server-connect-attribute: private_dns_name, private_ip_address, dns_name, public_ip_address
|
179
|
-
# If --server-connect-attribute is not specified, knife attempts to determine if connecting to the instance's public or private IP is most appropriate based on other settings
|
180
|
-
knife ec2 server create -I ami-173d747e -x ubuntu --server-connect-attribute public_ip_address
|
181
|
-
```
|
182
|
-
|
183
|
-
View additional information on configuring Windows images for bootstrap in the documentation for [knife-windows](https://docs.chef.io/plugin_knife_windows.html).
|
184
|
-
|
185
|
-
#### Adding server_id to the node name
|
186
|
-
|
187
|
-
Users can also include the ec2 server id in the node name by placing `%s` in the string passed to the `--chef-node-name` option. The %s is replaced by the ec2 server id dynamically.
|
188
|
-
e.g. `-N "www-server-%s" or --chef-node-name "www-server-%s"`
|
189
|
-
|
190
|
-
#### Tagging node in Chef
|
191
|
-
|
192
|
-
Users can use option `--tag-node-in-chef` for tagging node in EC2 and chef both with `knife ec2 server create` command. If user does not pass this option, then the node will be tagged only in EC2.
|
193
|
-
|
194
|
-
#### Tagging EBS Volumes
|
195
|
-
|
196
|
-
Users can attach ebs volumes to a new instance being created with knife-ec2 using `--volume-tags Tag=Value[,Tag=Value...]`.
|
197
|
-
|
198
|
-
|
199
|
-
#### Bootstrap Windows (2012 R2 and above platform) instance without user-data through winrm ssl transport
|
200
|
-
|
201
|
-
Users can bootstrap the Windows instance without the need to provide the user-data. `knife-ec2` has the ability to bootstrap the Windows instance through `winrm protocol` using the `ssl` transport. This requires users to set `--winrm-transport` option as `ssl` and `--winrm-ssl-verify-mode` option as `verify_none`. This will do the necessary winrm ssl transport configurations on the target node and the bootstrap will just work.
|
202
|
-
|
203
|
-
***Note***: Users also need to pass the `--security-group-ids` option with IDs of the security group(s) having the required ports opened like `5986` for winrm ssl transport. In case if `--security-group-ids` option is not passed then make sure that the default security group in your account has the required ports opened.
|
204
|
-
|
205
|
-
Below is the sample command to create a Windows instance and bootstrap it through `ssl` transport without passing any user-data:
|
206
|
-
|
207
|
-
```
|
208
|
-
knife ec2 server create -N chef-node-name -I your-windows-image -f flavor-of-server -x '.\a_local_user' -P 'yourpassword' --ssh-key your-public-key-id --winrm-transport ssl --winrm-ssl-verify-mode verify_none --security-group-ids your-security-groups -VV
|
209
|
-
```
|
210
|
-
|
211
|
-
#### Options for bootstrapping Windows
|
212
|
-
|
213
|
-
The `knife ec2 server create` command also supports the following options for bootstrapping a Windows node after the VM s created:
|
214
|
-
|
215
|
-
```
|
216
|
-
:winrm_password The WinRM password
|
217
|
-
:winrm_authentication_protocol Defaults to negotiate, supports kerberos, can be set to basic for debugging
|
218
|
-
:winrm_transport Defaults to plaintext, use ssl for improved security
|
219
|
-
:winrm_port Defaults to 5985 plaintext transport, or 5986 for SSL
|
220
|
-
:ca_trust_file The CA certificate file to use to verify the server when using SSL
|
221
|
-
:winrm_ssl_verify_mode Defaults to verify_peer, use verify_none to skip validation of the server certificate during testing
|
222
|
-
:kerberos_keytab_file The Kerberos keytab file used for authentication
|
223
|
-
:kerberos_realm The Kerberos realm used for authentication
|
224
|
-
:kerberos_service The Kerberos service used for authentication
|
225
|
-
```
|
226
|
-
### `knife ec2 ami list`
|
227
|
-
|
228
|
-
This command provides the feature to list all EC2 AMIs. It also provides the feature to filter the AMIs based on owner and platform.
|
229
|
-
|
230
|
-
```
|
231
|
-
knife ec2 ami list
|
232
|
-
```
|
233
|
-
|
234
|
-
#### Options for AMIs list
|
235
|
-
|
236
|
-
- **Owner:**
|
237
|
-
By default owner is aws-marketplace but you can specify following owner with the help of -o or --owner:
|
238
|
-
|
239
|
-
**command:** knife ec2 ami list -o (options)
|
240
|
-
|
241
|
-
```
|
242
|
-
:self Displays the list of AMIs created by the user.
|
243
|
-
:aws-marketplace Displays all AMIs form trusted vendors like Ubuntu, Microsoft, SAP, Zend as well as many open source offering.
|
244
|
-
:micosoft Displays only Microsoft vendor AMIs.
|
245
|
-
```
|
246
|
-
- **Platform:**
|
247
|
-
By default all platform AMIs are displayed, but you can filter your response by specifying the platform using -p or --platform:
|
248
|
-
|
249
|
-
**command:** knife ec2 ami list -p (options)
|
250
|
-
|
251
|
-
```
|
252
|
-
:Allowed platform windows, ubuntu, debian, centos, fedora, rhel, nginx, turnkey, jumpbox, coreos, cisco, amazon, nessus
|
253
|
-
```
|
254
|
-
- **Search:**
|
255
|
-
User can search any string into the description column by using -s or --search:
|
256
|
-
|
257
|
-
**command:** knife ec2 ami list -s (search_keyword)
|
258
|
-
|
259
|
-
```
|
260
|
-
:search_keyword Any String or number
|
261
|
-
```
|
262
|
-
|
263
|
-
### `knife ec2 server list`
|
264
|
-
|
265
|
-
Outputs a list of all servers in the currently configured AWS account. **Note, this shows all instances associated with the account, some of which may not be currently managed by the Chef server.**
|
266
|
-
|
267
|
-
### `knife ec2 flavor list`
|
268
|
-
|
269
|
-
Outputs a list of all instance types comprising varying combinations of CPU, memory, storage, and architecture capacity of the currently configured AWS account. **Note, this shows all instances type associated with the account.**
|
270
|
-
|
271
|
-
### `knife ec2 server delete`
|
272
|
-
|
273
|
-
Deletes an existing server in the currently configured AWS account. **By default, this does not delete the associated node and client objects from the Chef server. To do so, add the `--purge` flag**
|
274
|
-
|
275
|
-
## Development Documentation
|
276
|
-
|
277
|
-
All documentation is written using YARD. You can generate a by running:
|
278
|
-
|
279
|
-
```
|
280
|
-
rake docs
|
281
|
-
```
|
282
|
-
|
283
|
-
## Contributing
|
284
|
-
|
285
|
-
For information on contributing to this project please see our [Contributing Documentation](https://github.com/chef/chef/blob/master/CONTRIBUTING.md)
|
286
|
-
|
287
|
-
## License & Copyright
|
288
|
-
|
289
|
-
- Copyright:: Copyright (c) 2009-2018 Chef Software, Inc.
|
290
|
-
- License:: Apache License, Version 2.0
|
291
|
-
|
292
|
-
```text
|
293
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
294
|
-
you may not use this file except in compliance with the License.
|
295
|
-
You may obtain a copy of the License at
|
296
|
-
|
297
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
298
|
-
|
299
|
-
Unless required by applicable law or agreed to in writing, software
|
300
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
301
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
302
|
-
See the License for the specific language governing permissions and
|
303
|
-
limitations under the License.
|
304
|
-
```
|
data/RELEASE_NOTES.md
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
<!---
|
2
|
-
This file is reset every time a new release is done. The contents of this file are for the currently unreleased version.
|
3
|
-
|
4
|
-
Example Note:
|
5
|
-
|
6
|
-
## Example Heading
|
7
|
-
Details about the thing that changed that needs to get included in the Release Notes in markdown.
|
8
|
-
-->
|
9
|
-
|
10
|
-
# knife-ec2 0.19.10 release notes:
|
11
|
-
|
12
|
-
Support for Ruby 2.2 and Chef 12.X has been removed as both are now end of life. This gem now requires Ruby 2.3 (Chef 13) or later, which ships in all supported releases of Chef-DK.
|
13
|
-
|
14
|
-
Credentials handling has been updated to use Amazon's credentials file unless keys are specified in the knife.rb/config.rb or via the command line. This is now the preferred method of authenticating knife-ec2 with AWS as it prevents credential credential sprawl and credentials showing up in shell history. The readme authentication section has been rewritten and expanded to touch on the various methods of authenticating this plugin.
|
15
|
-
|
16
|
-
The long ago deprecated `--distro` and `--template_file` flags for `knife ec2 server create` have been removed. These were no longer used by knife bootstrap so this should have zero impact on knife-ec2 users.
|
17
|
-
|
18
|
-
The fog-aws gem dependency has been loosened to allow fog-aws 1.0-3.X instead of just 1.X. This adds new instance types to `knife ec2 flavor list` and adds support for additional regions and availability zones previously not supported.
|
19
|
-
|
20
|
-
Remove the dependency on `mime-types` and `readline` gems, which don't appear to actually be used directly.
|
21
|
-
|
22
|
-
# knife-ec2 0.18.0 release notes:
|
23
|
-
In this release we have added separate features for tagging EC2 instances in AWS and Chef. Option `--aws-tag` is used for tagging the node in AWS and option `--chef-tag` is used for tagging the node in Chef. Subsequently the `--tag-node-in-chef` and `--tags` are now deprecated.
|
24
|
-
|
25
|
-
## Features added in knife-ec2 0.18.0
|
26
|
-
* Added support for tagging node in AWS as well as in Chef with separate options `--aws-tag` and `--chef-tag`. PR: [520](https://github.com/chef/knife-ec2/pull/520).
|
27
|
-
|
28
|
-
## Enhancement in knife-ec2 0.18.0
|
29
|
-
* No enhancements.
|
data/Rakefile
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|
2
|
-
require "rspec/core/rake_task"
|
3
|
-
|
4
|
-
begin
|
5
|
-
Bundler.setup(:default, :development)
|
6
|
-
rescue Bundler::BundlerError => e
|
7
|
-
$stderr.puts e.message
|
8
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
9
|
-
exit e.status_code
|
10
|
-
end
|
11
|
-
|
12
|
-
Bundler::GemHelper.install_tasks
|
13
|
-
|
14
|
-
desc "Run specs"
|
15
|
-
RSpec::Core::RakeTask.new(:spec) do |spec|
|
16
|
-
spec.pattern = "spec/**/*_spec.rb"
|
17
|
-
end
|
18
|
-
|
19
|
-
begin
|
20
|
-
require "chefstyle"
|
21
|
-
require "rubocop/rake_task"
|
22
|
-
RuboCop::RakeTask.new(:style) do |task|
|
23
|
-
task.options += ["--display-cop-names", "--no-color"]
|
24
|
-
end
|
25
|
-
rescue LoadError
|
26
|
-
puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
|
27
|
-
end
|
28
|
-
|
29
|
-
begin
|
30
|
-
require "yard"
|
31
|
-
YARD::Rake::YardocTask.new(:docs)
|
32
|
-
rescue LoadError
|
33
|
-
puts "yard is not available. bundle install first to make sure all dependencies are installed."
|
34
|
-
end
|
35
|
-
|
36
|
-
task :console do
|
37
|
-
require "irb"
|
38
|
-
require "irb/completion"
|
39
|
-
ARGV.clear
|
40
|
-
IRB.start
|
41
|
-
end
|
42
|
-
|
43
|
-
task default: [:style, :spec]
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.19.12
|
data/knife-ec2.gemspec
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$LOAD_PATH.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "knife-ec2/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "knife-ec2"
|
7
|
-
s.version = Knife::Ec2::VERSION
|
8
|
-
s.authors = ["Adam Jacob", "Seth Chisamore"]
|
9
|
-
s.email = ["adam@chef.io", "schisamo@chef.io"]
|
10
|
-
s.homepage = "https://github.com/chef/knife-ec2"
|
11
|
-
s.summary = "Amazon EC2 Support for Chef's Knife Command"
|
12
|
-
s.description = s.summary
|
13
|
-
s.license = "Apache-2.0"
|
14
|
-
|
15
|
-
s.files = `git ls-files`.split("\n")
|
16
|
-
s.test_files = `git ls-files spec/*`.split("\n")
|
17
|
-
s.required_ruby_version = ">= 2.3"
|
18
|
-
|
19
|
-
s.add_dependency "fog-aws", ">= 1", "< 4"
|
20
|
-
s.add_dependency "knife-windows", "~> 1.0"
|
21
|
-
|
22
|
-
s.require_paths = ["lib"]
|
23
|
-
end
|