aws-ec2 0.8.3 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +1 -1
- data/README.md +44 -27
- data/doc/example/.env +2 -0
- data/doc/example/.env.development +2 -0
- data/doc/example/.env.production +3 -0
- data/doc/example/app/scripts/hello.sh +3 -0
- data/doc/example/app/user-data/bootstrap.sh +47 -0
- data/doc/example/config/development.yml +8 -0
- data/doc/example/profiles/default.yml +11 -0
- data/doc/example/profiles/spot.yml +20 -0
- data/lib/aws_ec2/cli.rb +6 -6
- data/lib/aws_ec2/create.rb +1 -1
- data/lib/aws_ec2/create/params.rb +1 -1
- data/lib/aws_ec2/help/{compile_scripts.md → compile.md} +1 -1
- data/lib/aws_ec2/help/create.md +1 -1
- data/lib/aws_ec2/help/{upload_scripts.md → upload.md} +1 -1
- data/lib/aws_ec2/script/compile.rb +1 -1
- data/lib/aws_ec2/script/upload.rb +1 -1
- data/lib/aws_ec2/template_helper.rb +2 -1
- data/lib/aws_ec2/template_helper/{core.rb → core_helper.rb} +2 -2
- data/lib/aws_ec2/version.rb +1 -1
- metadata +12 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ecc2b042e1fabbb3a4a343edb5766601a51e54259f5029c19d37f93ebed7443
|
4
|
+
data.tar.gz: d0a388114c37362c2f8b1590f71d1e2d16d54dee0631bd36a42c9f5ed89fd877
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c77a9ba413bec00c46b387370df141d10e64286ac94689c194437ff0aeecd3e8ccfbcb50a548549090344df3628affe8210014a4c902e40466da4360cc66bb6a
|
7
|
+
data.tar.gz: 63e9c1864910f2a8c7d57a7005e64297272e6c1764642c29ba55fde4722073d46fd854a5f6afe7f08763e47f9d454e66fafdd790ff4599660dc02a1723738a67
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [0.8.4]
|
7
|
+
- add doc/example
|
8
|
+
- rename to commands to compile and upload
|
9
|
+
- rename to core_helper, only require specfic activesupport dependencies
|
10
|
+
- generate user-data in tmp/user-data.txt instead
|
11
|
+
|
6
12
|
## [0.8.3]
|
7
13
|
- change compile_keep to compile_clean option instead
|
8
14
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# AWS EC2 Tool
|
2
2
|
|
3
|
-
Simple tool to create AWS ec2 instances consistently with pre-configured settings. The pre-configured settings are stored in the profiles folder of the current directory.
|
3
|
+
Simple tool to create AWS ec2 instances consistently with pre-configured settings. The pre-configured settings are stored in the profiles folder of the current project directory.
|
4
4
|
Example:
|
5
5
|
|
6
|
-
* profiles/default.yml:
|
7
|
-
* profiles/myserver.yml: myserver
|
6
|
+
* profiles/default.yml: Default settings. Used when no profile is specified.
|
7
|
+
* profiles/myserver.yml: myserver profile. Used when `--profile myserver` is specified.
|
8
8
|
|
9
9
|
## Usage
|
10
10
|
|
@@ -12,55 +12,62 @@ Example:
|
|
12
12
|
aws-ec2 create myserver --profile myserver
|
13
13
|
```
|
14
14
|
|
15
|
-
In a nutshell, the profile parameters are passed to the ruby aws-sdk [AWS::EC2::Client#run_instances](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/EC2/Client.html#run_instances-instance_method) method.
|
15
|
+
In a nutshell, the profile parameters are passed to the ruby aws-sdk [AWS::EC2::Client#run_instances](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/EC2/Client.html#run_instances-instance_method) method. This allows you to specify any parameter you wish that is available in the aws-sdk. To check out what a profile looks like check out [example default](example/profiles/default.yml)
|
16
16
|
|
17
|
-
You can use ERB in the profile files. Some useful helper methods
|
17
|
+
You can use ERB in the profile files. Some useful helper methods are documented here:
|
18
18
|
|
19
19
|
Helper | Description
|
20
20
|
------------- | -------------
|
21
|
-
user_data | Allows you to embed a generated user_data script. More details on the are provided in the user data section below.
|
22
|
-
config | Access to the variables set in config/[AWS_EC2_ENV].yml.
|
23
|
-
latest_ami | Returns an AMI id by searching the ami name pattern and sorting in reverse older. Example: `latest_ami("ruby-2.5.0_*")`
|
21
|
+
user_data | Allows you to embed a generated user_data script. More details on the user-data are provided in the user data section below.
|
22
|
+
config | Access to the variables set in config/[AWS_EC2_ENV].yml. Examples are `config/development.yml`, `config/staging.yml`, and `config/production.yml`.
|
23
|
+
latest_ami | Returns an AMI id by searching the ami name pattern and sorting in reverse older. Example: `latest_ami("ruby-2.5.0_*")` would return the latest ruby AMIs are named with timestamps at the end like so: `ruby-2.5.0_2018-01-30-05-36-02` and `ruby-2.5.0_2018-01-29-05-36-02`.
|
24
24
|
search_ami | Returns a collection of AMI image objects based on a search pattern. The query searches on the AMI name.
|
25
25
|
|
26
26
|
For a full list of all the template helpers checkout: [aws_ec2/template_helper](lib/aws_ec2/template_helper).
|
27
27
|
|
28
|
-
You can also define
|
28
|
+
You can also define custom helpers in the `app/helpers` folder as ruby modules with the naming convention `*_helper.rb`. Example, you would define a `module FooHelper` in `app/helpers/foo_helper.rb`. Custom helpers are first-class citizens and have access to the same variables, methods and scope as built-in helpers.
|
29
29
|
|
30
30
|
## Noop mode
|
31
31
|
|
32
|
-
You can do a test run with the `--noop` flag. This will print out what settings will be used to launch the instance. This is
|
32
|
+
You can do a test run with the `--noop` flag. This will print out what settings will be used to launch the instance. This is one good way to inspect the generated user-data script.
|
33
33
|
|
34
34
|
```sh
|
35
35
|
aws-ec2 create myserver --profile myserver --noop
|
36
|
+
cat tmp/user-data.txt # to view generated user-data script
|
36
37
|
```
|
37
38
|
|
38
39
|
## Project Structure
|
39
40
|
|
40
41
|
Directory | Description
|
41
42
|
------------- | -------------
|
42
|
-
app/helpers |
|
43
|
-
app/partials | Your partials that can be use to be included in other scripts. This is used in conjunction with the partial helper method.
|
44
|
-
app/scripts | Where you define common scripts that can be used to configure the server.
|
43
|
+
app/helpers | Custom helpers methods. Define them as modules and their methods available whenever ERB is available: `config`, `profiles`, `app/scripts`, `app/user-data` files, etc. Example, you would define a `module FooHelper` in `app/helpers/foo_helper.rb`.
|
44
|
+
app/partials | Your partials that can be use to be included in other scripts. This is used in conjunction with the `partial` helper method.
|
45
|
+
app/scripts | Where you define common scripts that can be used to configure the server. These scripts can be automatically uploaded to an s3 bucket for later downloading in your user-data script by setting the `scripts_s3_bucket` config option.
|
45
46
|
app/user-data | Your user-data scripts that are used to bootstrap EC2 instance.
|
46
|
-
config/[AWS_EC2_ENV].yml |
|
47
|
+
config/[AWS_EC2_ENV].yml | The config file where you set configs that you want available in your templating logic. Examples are: `config/development.yml`, `config/staging.yml`, or `config/production.yml`. You access the config with the `<%= config["var"] %>` helper.
|
47
48
|
profiles | Your profile files. These files mainly contain parameters that are passed to the aws-sd2 run_instances API.
|
48
|
-
tmp | Where the generated scripts get compiled to. You can manually invoke the complilation via `aws-ec2 compile
|
49
|
+
tmp | Where the generated scripts get compiled to. You can manually invoke the complilation via `aws-ec2 compile` if you wish to inspect what is generated, though this is automatically done as part of the `aws-ec2` create command.
|
49
50
|
|
50
51
|
## User-Data
|
51
52
|
|
52
|
-
You can provide user-data script to customize the server upon launch. The user-data scripts are under the `app/user-data` folder.
|
53
|
+
You can provide a user-data script to customize the server upon launch. The user-data scripts are located under the `app/user-data` folder. Example:
|
53
54
|
|
54
55
|
* app/user-data/myserver.yml
|
55
56
|
|
56
|
-
The user-data script is generated on the machine that is running the aws-ec2 command. If this is your local macosx machine, then the context
|
57
|
+
The user-data script is generated on the machine that is running the aws-ec2 command. If this is your local macosx machine, then the context of your local macosx machine is available. To see the generated user-data script, you can use the run the create command in noop mode and then inspect the generated script. Example:
|
57
58
|
|
58
59
|
```sh
|
59
|
-
aws create myserver --noop
|
60
|
+
aws-ec2 create myserver --noop
|
60
61
|
cat /tmp/aws-ec2/user-data.txt
|
61
62
|
```
|
62
63
|
|
63
|
-
|
64
|
+
Another way of viewing the generated user-data scripts is the `aws-ec2 compile` command. It generates the files in the tmp folder. Example:
|
65
|
+
|
66
|
+
```
|
67
|
+
aws-ec2 compile # generates files in tmp folder
|
68
|
+
```
|
69
|
+
|
70
|
+
To use the user-data script when creating an EC2 instance, you use the `user_data` helper method in the profile. Here's a grep of an example profile that uses the helper to show you want it looks like:
|
64
71
|
|
65
72
|
```
|
66
73
|
$ grep user_data profiles/default.yml
|
@@ -69,7 +76,7 @@ user_data: "<%= user_data("bootstrap") %>"
|
|
69
76
|
|
70
77
|
### Config
|
71
78
|
|
72
|
-
You can set a config file and
|
79
|
+
You can set variables in a config file and they are available when ERB is available, which are your profiles, user_data, scripts, etc. Example `config/development.yml`:
|
73
80
|
|
74
81
|
```yaml
|
75
82
|
---
|
@@ -81,13 +88,11 @@ db_subnet_group_name: default
|
|
81
88
|
security_group_ids:
|
82
89
|
- sg-123
|
83
90
|
scripts_s3_bucket: mybucket # enables s3 uploading of generated app/scripts
|
84
|
-
# compile_clean: true # uncomment
|
85
|
-
# compiled scripts in tmp
|
91
|
+
# compile_clean: true # uncomment to automatically remove the
|
92
|
+
# compiled scripts in tmp after aws-ec2 create
|
86
93
|
```
|
87
94
|
|
88
|
-
The variables are
|
89
|
-
|
90
|
-
The `scripts_s3_bucket` is an option that changes the behavior of aws-ec2 to automatically sync the generated scripts from app/scripts to the s3 bucket right before the internal call to run_instances to launch the instance. If you need more custom logic, look at the hooks section.
|
95
|
+
The variables are accessed via the `config` helper method. Here's a filtered example where it shows shows the relevant part of a profile: `profiles/default.yml`:
|
91
96
|
|
92
97
|
```yaml
|
93
98
|
image_id: ami-4fffc834 # Amazon Lambda AMI
|
@@ -97,6 +102,14 @@ subnet_id: <%= config["subnets"].shuffle %>
|
|
97
102
|
...
|
98
103
|
```
|
99
104
|
|
105
|
+
#### Config Options
|
106
|
+
|
107
|
+
There are some config options that change the behavior of the ec2-aws:
|
108
|
+
|
109
|
+
Option | Description
|
110
|
+
--- | ---
|
111
|
+
scripts_s3_bucket | Set this to the bucket name where you want the generated scripts in app/scripts and app/user-data to be automatically sync. The sync happens right before the the internal call to run_instances that launches the instance. If you need more custom logic, you can use the `before_run_instances` hook, covered in the Hooks section.
|
112
|
+
|
100
113
|
## Dotenv File Support
|
101
114
|
|
102
115
|
You can set and configure environment variables in `.env*` files. Examples of this is in the [doc/example](doc/example) project.
|
@@ -110,19 +123,23 @@ There is only one hook: before_run_instances. You can configure this with `conf
|
|
110
123
|
before_run_instances: /path/to/my/script.sh
|
111
124
|
```
|
112
125
|
|
126
|
+
This will run `/path/to/my/script.sh` as a shelled out command before the `run_instances` call.
|
127
|
+
|
113
128
|
## AMI Creation
|
114
129
|
|
115
|
-
To create AMIs you can use the `aws-ec2 ami` command. This command
|
130
|
+
To create AMIs you can use the `aws-ec2 ami` command. This command launches an EC2 instance with the specified profile and create an AMI after the user-data script completes successfully. It does this by adding an AMI creation script at the end of the user-data script. It is recommended to use the `set -e` option so that any error halts the script and the AMI does not get created.
|
116
131
|
|
117
132
|
After the AMI is created successfully, the instance will also terminate itself automatically so you do not have to worry about cleanup. For more help run `aws-ec2 ami help`.
|
118
133
|
|
119
134
|
## Spot Instance Support
|
120
135
|
|
121
|
-
Spot instance
|
136
|
+
Spot instance is natively supported by the AWS run_instances command. So, simply add `instance_market_options` to the parameters to request for a spot instance. The available spot market options are available here:
|
122
137
|
|
123
138
|
* [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateSpotMarketOptionsRequest.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateSpotMarketOptionsRequest.html)
|
124
139
|
* [https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/EC2/Types/SpotMarketOptions.html](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/EC2/Types/SpotMarketOptions.html)
|
125
140
|
|
141
|
+
An example of a spot instance profile is provided in [doc/example/profiles/spot.yml](doc/example/profiles/spot.yml).
|
142
|
+
|
126
143
|
## More Help
|
127
144
|
|
128
145
|
```sh
|
data/doc/example/.env
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/bin/bash -exu
|
2
|
+
|
3
|
+
exec > >(tee "/var/log/user-data.log" | logger -t user-data -s 2>/dev/console) 2>&1
|
4
|
+
export HOME=/root # user-data env runs in weird shell where user is root but HOME is not set
|
5
|
+
<% pubkey_path = "#{ENV['HOME']}/.ssh/id_rsa.pub" -%>
|
6
|
+
<% if File.exist?(pubkey_path) -%>
|
7
|
+
<% pubkey = IO.read(pubkey_path).strip -%>
|
8
|
+
# Automatically add user's public key
|
9
|
+
echo <%= pubkey %> >> ~/.ssh/authorized_keys
|
10
|
+
echo <%= pubkey %> >> /home/ec2-user/.ssh/authorized_keys
|
11
|
+
chown ec2-user:ec2-user /home/ec2-user/.ssh/authorized_keys
|
12
|
+
<% else %>
|
13
|
+
# WARN: unable to find a ~/.ssh/id_rsa.pub locally on your machine. user: <%= ENV['USER'] %>
|
14
|
+
# Unable to automatically add the public key
|
15
|
+
<% end -%>
|
16
|
+
|
17
|
+
sudo yum install -y postgresql
|
18
|
+
|
19
|
+
# https://gist.github.com/juno/1330165
|
20
|
+
# Install developer tools
|
21
|
+
yum install -y git gcc make readline-devel openssl-devel
|
22
|
+
|
23
|
+
# Install ruby-build system-widely
|
24
|
+
git clone git://github.com/sstephenson/ruby-build.git /tmp/ruby-build
|
25
|
+
cd /tmp/ruby-build
|
26
|
+
./install.sh
|
27
|
+
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
|
28
|
+
|
29
|
+
# Install rbenv for root
|
30
|
+
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
|
31
|
+
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
|
32
|
+
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
|
33
|
+
set +u
|
34
|
+
source ~/.bashrc
|
35
|
+
set -u
|
36
|
+
|
37
|
+
# Install and enable ruby
|
38
|
+
rbenv install 2.5.0
|
39
|
+
|
40
|
+
# Install ruby for ec2-user also
|
41
|
+
cp -R ~/.rbenv /home/ec2-user/
|
42
|
+
chown -R ec2-user:ec2-user /home/ec2-user/.rbenv
|
43
|
+
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> /home/ec2-user/.bashrc
|
44
|
+
echo 'eval "$(rbenv init -)"' >> /home/ec2-user/.bashrc
|
45
|
+
echo '2.5.0' > /home/ec2-user/.ruby-version
|
46
|
+
|
47
|
+
uptime | tee /var/log/boot-time.log
|
@@ -0,0 +1,11 @@
|
|
1
|
+
---
|
2
|
+
image_id: ami-97785bed
|
3
|
+
instance_type: t2.medium
|
4
|
+
key_name: default
|
5
|
+
max_count: 1
|
6
|
+
min_count: 1
|
7
|
+
security_group_ids: <%= config["security_group_ids"] %>
|
8
|
+
subnet_id: <%= config["subnets"].shuffle.first %>
|
9
|
+
user_data: "<%= user_data("bootstrap") %>"
|
10
|
+
iam_instance_profile:
|
11
|
+
name: IAMProfileName
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
image_id: ami-97785bed
|
3
|
+
instance_type: t2.medium
|
4
|
+
key_name: default
|
5
|
+
max_count: 1
|
6
|
+
min_count: 1
|
7
|
+
security_group_ids:
|
8
|
+
- sg-111
|
9
|
+
subnet_id: <%= %w[subnet-111 subnet-222].shuffle.first %>
|
10
|
+
user_data: "<%= user_data("dev") %>"
|
11
|
+
iam_instance_profile:
|
12
|
+
name: IAMProfileName
|
13
|
+
instance_market_options:
|
14
|
+
market_type: spot
|
15
|
+
# https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateSpotMarketOptionsRequest.html
|
16
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/EC2/Types/SpotMarketOptions.html
|
17
|
+
spot_options:
|
18
|
+
max_price: "0.02"
|
19
|
+
spot_instance_type: one-time
|
20
|
+
# instance_interruption_behavior: hibernate
|
data/lib/aws_ec2/cli.rb
CHANGED
@@ -19,16 +19,16 @@ module AwsEc2
|
|
19
19
|
Ami.new(options.merge(name: name)).run
|
20
20
|
end
|
21
21
|
|
22
|
-
desc "
|
23
|
-
long_desc Help.text(:
|
24
|
-
def
|
22
|
+
desc "compile", "compiles app/scripts and app/user-data to tmp folder"
|
23
|
+
long_desc Help.text(:compile)
|
24
|
+
def compile
|
25
25
|
Script::Compile.new(options).compile
|
26
26
|
end
|
27
27
|
|
28
|
-
desc "
|
29
|
-
long_desc Help.text(:
|
28
|
+
desc "upload", "compiles and uploads scripts to s3"
|
29
|
+
long_desc Help.text(:upload)
|
30
30
|
option :compile, type: :boolean, default: true, desc: "compile scripts before uploading"
|
31
|
-
def
|
31
|
+
def upload
|
32
32
|
Script::Upload.new(options).upload
|
33
33
|
end
|
34
34
|
end
|
data/lib/aws_ec2/create.rb
CHANGED
data/lib/aws_ec2/help/create.md
CHANGED
@@ -2,6 +2,6 @@ Examples:
|
|
2
2
|
|
3
3
|
$ aws-ec2 create my-instance
|
4
4
|
|
5
|
-
To see the snippet of code that gets added to the user-data script you can use the `--noop` option and then view the generated
|
5
|
+
To see the snippet of code that gets added to the user-data script you can use the `--noop` option and then view the generated tmp/user-data.txt.
|
6
6
|
|
7
7
|
$ aws-ec2 create myscript --noop
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require "base64"
|
2
2
|
require "erb"
|
3
3
|
|
4
|
-
module AwsEc2::TemplateHelper::
|
4
|
+
module AwsEc2::TemplateHelper::CoreHelper
|
5
5
|
def user_data(name, base64=true)
|
6
6
|
# allow user to specify the path also
|
7
7
|
if File.exist?(name)
|
@@ -13,7 +13,7 @@ module AwsEc2::TemplateHelper::Core
|
|
13
13
|
result = append_scripts(result)
|
14
14
|
|
15
15
|
# save the unencoded user-data script for easy debugging
|
16
|
-
temp_path = "/tmp/
|
16
|
+
temp_path = "#{AwsEc2.root}/tmp/user-data.txt"
|
17
17
|
FileUtils.mkdir_p(File.dirname(temp_path))
|
18
18
|
IO.write(temp_path, result)
|
19
19
|
|
data/lib/aws_ec2/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-ec2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
@@ -197,6 +197,14 @@ files:
|
|
197
197
|
- README.md
|
198
198
|
- Rakefile
|
199
199
|
- aws-ec2.gemspec
|
200
|
+
- doc/example/.env
|
201
|
+
- doc/example/.env.development
|
202
|
+
- doc/example/.env.production
|
203
|
+
- doc/example/app/scripts/hello.sh
|
204
|
+
- doc/example/app/user-data/bootstrap.sh
|
205
|
+
- doc/example/config/development.yml
|
206
|
+
- doc/example/profiles/default.yml
|
207
|
+
- doc/example/profiles/spot.yml
|
200
208
|
- exe/aws-ec2
|
201
209
|
- lib/aws-ec2.rb
|
202
210
|
- lib/aws_ec2/ami.rb
|
@@ -211,9 +219,9 @@ files:
|
|
211
219
|
- lib/aws_ec2/dotenv.rb
|
212
220
|
- lib/aws_ec2/help.rb
|
213
221
|
- lib/aws_ec2/help/ami.md
|
214
|
-
- lib/aws_ec2/help/
|
222
|
+
- lib/aws_ec2/help/compile.md
|
215
223
|
- lib/aws_ec2/help/create.md
|
216
|
-
- lib/aws_ec2/help/
|
224
|
+
- lib/aws_ec2/help/upload.md
|
217
225
|
- lib/aws_ec2/hook.rb
|
218
226
|
- lib/aws_ec2/profile.rb
|
219
227
|
- lib/aws_ec2/script.rb
|
@@ -223,7 +231,7 @@ files:
|
|
223
231
|
- lib/aws_ec2/scripts/auto_terminate.sh
|
224
232
|
- lib/aws_ec2/template_helper.rb
|
225
233
|
- lib/aws_ec2/template_helper/ami_helper.rb
|
226
|
-
- lib/aws_ec2/template_helper/
|
234
|
+
- lib/aws_ec2/template_helper/core_helper.rb
|
227
235
|
- lib/aws_ec2/template_helper/partial_helper.rb
|
228
236
|
- lib/aws_ec2/version.rb
|
229
237
|
- spec/fixtures/demo_project/config/test.yml
|