lono 4.2.7 → 5.0.1

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.
Files changed (219) hide show
  1. checksums.yaml +4 -4
  2. data/.cody/README.md +6 -0
  3. data/.cody/acceptance.sh +30 -0
  4. data/.cody/buildspec.yml +21 -0
  5. data/.cody/demo.rb +38 -0
  6. data/.cody/project.rb +12 -0
  7. data/.cody/role.rb +1 -0
  8. data/.gitignore +2 -0
  9. data/.gitmodules +6 -3
  10. data/.travis.yml +7 -0
  11. data/CHANGELOG.md +10 -0
  12. data/Gemfile +0 -1
  13. data/LICENSE.txt +1 -22
  14. data/README.md +46 -55
  15. data/lib/lono.rb +20 -27
  16. data/lib/lono/app_file.rb +5 -0
  17. data/lib/lono/app_file/base.rb +19 -0
  18. data/lib/lono/app_file/build.rb +78 -0
  19. data/lib/lono/app_file/registry.rb +14 -0
  20. data/lib/lono/app_file/registry/item.rb +46 -0
  21. data/lib/lono/app_file/upload.rb +39 -0
  22. data/lib/lono/autoloader.rb +22 -0
  23. data/lib/lono/aws_services.rb +46 -0
  24. data/lib/lono/aws_services/util.rb +49 -0
  25. data/lib/lono/blueprint.rb +113 -0
  26. data/lib/lono/blueprint/find.rb +90 -0
  27. data/lib/lono/blueprint/helper.rb +18 -0
  28. data/lib/lono/blueprint/info.rb +10 -0
  29. data/lib/lono/blueprint/list.rb +14 -0
  30. data/lib/lono/blueprint/root.rb +43 -0
  31. data/lib/lono/cfn.rb +31 -19
  32. data/lib/lono/cfn/aws_service.rb +16 -0
  33. data/lib/lono/cfn/base.rb +244 -261
  34. data/lib/lono/cfn/create.rb +36 -32
  35. data/lib/lono/cfn/current.rb +1 -1
  36. data/lib/lono/cfn/delete.rb +2 -2
  37. data/lib/lono/cfn/deploy.rb +11 -0
  38. data/lib/lono/cfn/diff.rb +1 -1
  39. data/lib/lono/cfn/preview.rb +3 -3
  40. data/lib/lono/cfn/rollback.rb +26 -0
  41. data/lib/lono/cfn/status.rb +2 -203
  42. data/lib/lono/cfn/suffix.rb +67 -0
  43. data/lib/lono/cfn/update.rb +61 -53
  44. data/lib/lono/cli.rb +42 -23
  45. data/lib/lono/completer.rb +0 -2
  46. data/lib/lono/configure.rb +37 -0
  47. data/lib/lono/configure/aws_services.rb +18 -0
  48. data/lib/lono/configure/base.rb +94 -0
  49. data/lib/lono/configure/helpers.rb +128 -0
  50. data/lib/lono/conventions.rb +11 -0
  51. data/lib/lono/core.rb +42 -12
  52. data/lib/lono/core/config.rb +5 -4
  53. data/lib/lono/default/settings.yml +0 -11
  54. data/lib/lono/file_uploader.rb +9 -4
  55. data/lib/lono/help.rb +1 -2
  56. data/lib/lono/help/blueprint.md +46 -0
  57. data/lib/lono/help/cfn.md +5 -4
  58. data/lib/lono/help/cfn/create.md +14 -9
  59. data/lib/lono/help/cfn/deploy.md +92 -0
  60. data/lib/lono/help/cfn/diff.md +0 -1
  61. data/lib/lono/help/cfn/update.md +16 -15
  62. data/lib/lono/help/completion.md +3 -3
  63. data/lib/lono/help/generate.md +0 -1
  64. data/lib/lono/help/new.md +40 -34
  65. data/lib/lono/help/param.md +1 -1
  66. data/lib/lono/help/param/generate.md +1 -1
  67. data/lib/lono/help/template.md +2 -2
  68. data/lib/lono/help/xgraph.md +1 -1
  69. data/lib/lono/inspector.rb +1 -1
  70. data/lib/lono/inspector/base.rb +26 -10
  71. data/lib/lono/inspector/graph.rb +7 -3
  72. data/lib/lono/inspector/summary.rb +15 -3
  73. data/lib/lono/md5.rb +46 -0
  74. data/lib/lono/new.rb +40 -28
  75. data/lib/lono/new/helper.rb +2 -3
  76. data/lib/lono/param.rb +12 -11
  77. data/lib/lono/param/generator.rb +96 -42
  78. data/lib/lono/project_checker.rb +27 -8
  79. data/lib/lono/s3.rb +23 -0
  80. data/lib/lono/s3/bucket.rb +123 -0
  81. data/lib/lono/script.rb +4 -8
  82. data/lib/lono/script/base.rb +7 -2
  83. data/lib/lono/script/build.rb +7 -8
  84. data/lib/lono/script/upload.rb +4 -20
  85. data/lib/lono/sequence.rb +19 -16
  86. data/lib/lono/setting.rb +19 -27
  87. data/lib/lono/template.rb +22 -26
  88. data/lib/lono/template/base.rb +13 -0
  89. data/lib/lono/template/context.rb +4 -56
  90. data/lib/lono/template/context/loader.rb +70 -0
  91. data/lib/lono/template/dsl.rb +15 -151
  92. data/lib/lono/template/dsl/builder.rb +60 -0
  93. data/lib/lono/template/dsl/builder/base.rb +14 -0
  94. data/lib/lono/template/dsl/builder/condition.rb +26 -0
  95. data/lib/lono/template/dsl/builder/fn.rb +114 -0
  96. data/lib/lono/template/dsl/builder/helper.rb +64 -0
  97. data/lib/lono/template/dsl/builder/mapping.rb +24 -0
  98. data/lib/lono/template/dsl/builder/output.rb +37 -0
  99. data/lib/lono/template/dsl/builder/parameter.rb +39 -0
  100. data/lib/lono/template/dsl/builder/resource.rb +38 -0
  101. data/lib/lono/template/dsl/builder/section.rb +12 -0
  102. data/lib/lono/template/dsl/builder/syntax.rb +58 -0
  103. data/lib/lono/template/erb.rb +82 -0
  104. data/lib/lono/template/evaluate.rb +39 -0
  105. data/lib/lono/template/generator.rb +29 -0
  106. data/lib/lono/template/helper.rb +7 -29
  107. data/lib/lono/template/post_processor.rb +69 -0
  108. data/lib/lono/template/template.rb +4 -9
  109. data/lib/lono/template/upload.rb +103 -133
  110. data/lib/lono/template/util.rb +48 -0
  111. data/lib/lono/upgrade.rb +5 -3
  112. data/lib/lono/upgrade/upgrade5.rb +55 -0
  113. data/lib/lono/user_data.rb +4 -4
  114. data/lib/lono/version.rb +1 -1
  115. data/lib/templates/blueprint/%blueprint_name%.gemspec.tt +44 -0
  116. data/lib/templates/blueprint/.gitignore +14 -0
  117. data/lib/templates/blueprint/.lono/config.yml.tt +3 -0
  118. data/lib/templates/blueprint/.meta/config.yml.tt +3 -0
  119. data/lib/templates/blueprint/CHANGELOG.md +7 -0
  120. data/lib/templates/blueprint/Gemfile +4 -0
  121. data/lib/templates/blueprint/README.md +37 -0
  122. data/lib/templates/blueprint/Rakefile +6 -0
  123. data/lib/templates/blueprint/setup/configs.rb +54 -0
  124. data/lib/templates/blueprint_configs/configs/%blueprint_name%/params/base.txt +2 -0
  125. data/lib/{starter_projects/skeleton/app/definitions/base.rb → templates/blueprint_configs/configs/%blueprint_name%/params/development.txt} +0 -0
  126. data/lib/templates/blueprint_configs/configs/%blueprint_name%/variables/base.rb +2 -0
  127. data/lib/templates/blueprint_configs/configs/%blueprint_name%/variables/development.rb +0 -0
  128. data/lib/templates/blueprint_types/dsl/app/templates/%blueprint_name%.rb +37 -0
  129. data/lib/templates/blueprint_types/dsl/app/user_data/bootstrap.sh +2 -0
  130. data/lib/templates/blueprint_types/erb/app/definitions/base.rb.tt +1 -0
  131. data/lib/templates/blueprint_types/erb/app/templates/%blueprint_name%.yml +8 -0
  132. data/lib/{starter_projects/autoscaling → templates/skeleton}/.gitignore +1 -0
  133. data/lib/templates/skeleton/Gemfile +3 -0
  134. data/lib/{starter_projects/autoscaling → templates/skeleton}/Guardfile +2 -2
  135. data/lib/templates/skeleton/README.md +58 -0
  136. data/lib/templates/skeleton/configs/settings.yml +17 -0
  137. data/lib/templates/upgrade5/blueprints/main/.lono/config.yml +3 -0
  138. data/lib/templates/upgrade5/blueprints/main/.meta/config.yml +3 -0
  139. data/lono.gemspec +12 -8
  140. data/vendor/cfn-status/CHANGELOG.md +10 -0
  141. data/vendor/cfn-status/Gemfile +4 -0
  142. data/vendor/cfn-status/LICENSE.txt +21 -0
  143. data/vendor/cfn-status/README.md +56 -0
  144. data/vendor/cfn-status/Rakefile +6 -0
  145. data/vendor/cfn-status/bin/console +14 -0
  146. data/vendor/cfn-status/bin/setup +8 -0
  147. data/vendor/cfn-status/cfn-status.gemspec +30 -0
  148. data/vendor/cfn-status/lib/cfn-status.rb +1 -0
  149. data/vendor/cfn-status/lib/cfn/aws_service.rb +51 -0
  150. data/vendor/cfn-status/lib/cfn/status.rb +219 -0
  151. data/vendor/cfn-status/lib/cfn/status/version.rb +5 -0
  152. data/vendor/cfn-status/spec/cfn/status_spec.rb +81 -0
  153. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +1080 -0
  154. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +1080 -0
  155. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +1086 -0
  156. data/vendor/cfn-status/spec/spec_helper.rb +14 -0
  157. data/vendor/cfn_camelizer/CHANGELOG.md +20 -0
  158. data/vendor/cfn_camelizer/Gemfile +4 -0
  159. data/vendor/cfn_camelizer/LICENSE.txt +21 -0
  160. data/vendor/cfn_camelizer/README.md +40 -0
  161. data/vendor/cfn_camelizer/Rakefile +6 -0
  162. data/vendor/cfn_camelizer/bin/console +14 -0
  163. data/vendor/cfn_camelizer/bin/setup +8 -0
  164. data/vendor/cfn_camelizer/cfn_camelizer.gemspec +32 -0
  165. data/vendor/cfn_camelizer/lib/camelizer.yml +37 -0
  166. data/vendor/cfn_camelizer/lib/cfn_camelizer.rb +94 -0
  167. data/vendor/cfn_camelizer/lib/cfn_camelizer/version.rb +3 -0
  168. data/vendor/cfn_camelizer/spec/cfn_camelizer_spec.rb +86 -0
  169. data/vendor/cfn_camelizer/spec/spec_helper.rb +14 -0
  170. metadata +189 -62
  171. data/.circleci/bin/commit_docs.sh +0 -26
  172. data/.circleci/config.yml +0 -72
  173. data/bin/release +0 -9
  174. data/lib/lono/help/import.md +0 -54
  175. data/lib/lono/importer.rb +0 -134
  176. data/lib/lono/new/message.rb +0 -35
  177. data/lib/starter_projects/autoscaling/Gemfile +0 -3
  178. data/lib/starter_projects/autoscaling/README.md +0 -118
  179. data/lib/starter_projects/autoscaling/app/definitions/base.rb +0 -2
  180. data/lib/starter_projects/autoscaling/app/templates/autoscaling.yml +0 -682
  181. data/lib/starter_projects/autoscaling/config/params/base/autoscaling.txt +0 -6
  182. data/lib/starter_projects/autoscaling/config/settings.yml +0 -33
  183. data/lib/starter_projects/ec2/.gitignore +0 -2
  184. data/lib/starter_projects/ec2/Gemfile +0 -3
  185. data/lib/starter_projects/ec2/Guardfile +0 -12
  186. data/lib/starter_projects/ec2/README.md +0 -86
  187. data/lib/starter_projects/ec2/app/definitions/base.rb +0 -2
  188. data/lib/starter_projects/ec2/app/definitions/development.rb +0 -1
  189. data/lib/starter_projects/ec2/app/definitions/production.rb +0 -1
  190. data/lib/starter_projects/ec2/app/helpers/my_custom_helper.rb +0 -17
  191. data/lib/starter_projects/ec2/app/partials/user_data/bootstrap.sh +0 -4
  192. data/lib/starter_projects/ec2/app/templates/example.yml +0 -430
  193. data/lib/starter_projects/ec2/config/params/base/example.txt +0 -2
  194. data/lib/starter_projects/ec2/config/params/development/example.txt +0 -3
  195. data/lib/starter_projects/ec2/config/params/production/example.txt +0 -2
  196. data/lib/starter_projects/ec2/config/settings.yml +0 -33
  197. data/lib/starter_projects/ec2/config/variables/base.rb +0 -3
  198. data/lib/starter_projects/ec2/config/variables/development.rb +0 -2
  199. data/lib/starter_projects/ec2/config/variables/production.rb +0 -2
  200. data/lib/starter_projects/ec2/welcome.txt +0 -8
  201. data/lib/starter_projects/skeleton/.gitignore +0 -2
  202. data/lib/starter_projects/skeleton/Gemfile +0 -3
  203. data/lib/starter_projects/skeleton/Guardfile +0 -12
  204. data/lib/starter_projects/skeleton/README.md +0 -53
  205. data/lib/starter_projects/skeleton/config/settings.yml +0 -33
  206. data/lib/starter_projects/skeleton/welcome.txt +0 -7
  207. data/vendor/plissken/Gemfile +0 -14
  208. data/vendor/plissken/LICENSE.txt +0 -20
  209. data/vendor/plissken/README.md +0 -46
  210. data/vendor/plissken/Rakefile +0 -56
  211. data/vendor/plissken/VERSION +0 -1
  212. data/vendor/plissken/lib/plissken.rb +0 -1
  213. data/vendor/plissken/lib/plissken/ext/hash/to_snake_keys.rb +0 -45
  214. data/vendor/plissken/plissken.gemspec +0 -61
  215. data/vendor/plissken/spec/lib/to_snake_keys_spec.rb +0 -177
  216. data/vendor/plissken/spec/spec_helper.rb +0 -90
  217. data/vendor/plissken/test/helper.rb +0 -20
  218. data/vendor/plissken/test/plissken/ext/hash/to_snake_keys_test.rb +0 -184
  219. data/vendor/plissken/test/test_plissken.rb +0 -2
@@ -1,6 +0,0 @@
1
- VpcId=
2
- Subnets=
3
- OperatorEMail=
4
- KeyName=
5
- #InstanceType= # optional
6
- #SSHLocation= # optional
@@ -1,33 +0,0 @@
1
- # More info: http://lono.cloud/docs/settings/
2
- # The base config is specially treated. It gets included the other environments automatically.
3
- # Yaml also directly supports merging with & and <<* syntax but doing it automatically
4
- # for a cleaner syntax.
5
- base:
6
- # http://lono.cloud/docs/app-scripts/
7
- # extract_scripts:
8
- # to: "/opt"
9
- # as: "ec2-user"
10
- # If s3_folder is set then the generated templates and app/scripts will automatically
11
- # be uploaded to s3.
12
- # There are 2 formats for s3_folder:
13
- # Format 1:
14
- # s3_folder: mybucket/path/to/folder # simple string
15
- # Format 2:
16
- # s3_folder: # Hash options in order to support multiple AWS_PROFILEs
17
- # default: mybucket/folder
18
- # aws_profile1: mybucket/folder
19
- # aws_profile2: another-bucket/storage/folder
20
- # stack_name_suffix: random # tack on a 3 char random string at the end of the stack name for lono cfn create
21
-
22
-
23
- development:
24
- # When you have AWS_PROFILE set to one of these values, lono will switch to the desired
25
- # environment. This prevents you from switching AWS_PROFILE, forgetting to
26
- # also switch LONO_ENV, and accidentally deploying to production vs development.
27
- # aws_profiles:
28
- # - dev_profile1
29
- # - dev_profile2
30
-
31
- production:
32
- # aws_profiles:
33
- # - prod_profile
@@ -1,2 +0,0 @@
1
- .lono
2
- output
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem 'lono'
@@ -1,12 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard "lono" do
5
- watch(%r{^config/lono.rb$})
6
- watch(%r{^templates/.*$})
7
- end
8
-
9
- # Commented out due to CF rate limiting
10
- # guard "cloudformation", templates_path: "output" do
11
- # watch(%r{^output/.+\.yml$})
12
- # end
@@ -1,86 +0,0 @@
1
- # Autoscaling Lono Example
2
-
3
- ## Usage
4
-
5
- Create a new project.
6
-
7
- ```
8
- TEMPLATE=ec2 lono new ec2
9
- cd ec2
10
- ```
11
-
12
- Edit `config/params/base/ec2.txt` with your desired parameters. Here are the current contents of ``config/params/base/ec2.txt`:
13
-
14
- ```sh
15
- InstanceType=t2.micro
16
- KeyName=default
17
- ```
18
-
19
- Then launch the stack:
20
-
21
- ```sh
22
- lono cfn create ec2
23
- ```
24
-
25
- ## How This Example Was Orginally Built
26
-
27
- First, generate a skeleton starter lono project.
28
-
29
- ```sh
30
- TEMPLATE=skeleton lono new ec2
31
- ```
32
-
33
- Then import a standard CloudFormation template into lono. The `--name` option is used to name the template `ec2`.
34
-
35
- ```
36
- $ lono import https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/EC2InstanceWithSecurityGroupSample.template --name ec2
37
- => Imported CloudFormation template and lono-fied it.
38
- Template definition added to app/definitions/base.rb
39
- Params file created to config/params/base/ec2.txt
40
- Template downloaded to app/templates/ec2.yml
41
- => CloudFormation Template Summary:
42
- Parameters:
43
- Required:
44
- KeyName (AWS::EC2::KeyPair::KeyName)
45
- Optional:
46
- InstanceType (String) Default: t2.small
47
- SSHLocation (String) Default: 0.0.0.0/0
48
- Resources:
49
- 1 AWS::EC2::Instance
50
- 1 AWS::EC2::SecurityGroup
51
- 2 Total
52
- Here are contents of the params config/params/base/ec2.txt file:
53
- KeyName=
54
- #InstanceType= # optional
55
- #SSHLocation= # optional
56
- ```
57
-
58
- The template was imported from [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html#w2ab2c23c48c13c15).
59
-
60
- A starter `config/params/base/ec2.txt` was generated with required parameters emptied and optional parameters commented out. Fill in the required parameters.
61
-
62
- ### Filling in the Parameters
63
-
64
- You can use the following commands to set KeyName to a key that exists on your AWS account. Here we use `default` :
65
-
66
- ```
67
- sed "s/KeyName=/KeyName=default/" config/params/base/ec2.txt > config/params/base/ec2.txt.1
68
- mv config/params/base/ec2.txt{.1,}
69
- ```
70
-
71
- Now launch the stack:
72
-
73
- ```
74
- lono cfn create ec2
75
- ```
76
-
77
- ## Commands Summarized
78
-
79
- ```sh
80
- lono new ec2
81
- cd ec2
82
- lono import https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/EC2InstanceWithSecurityGroupSample.template --name ec2
83
- sed "s/KeyName=/KeyName=default/" config/params/base/ec2.txt > config/params/base/ec2.txt.1
84
- mv config/params/base/ec2.txt{.1,}
85
- lono cfn create ec2 --template ec2
86
- ```
@@ -1,2 +0,0 @@
1
- template "example"
2
-
@@ -1 +0,0 @@
1
- # resources that only exist in the development environment
@@ -1 +0,0 @@
1
- # resources that only exist in the production environment
@@ -1,17 +0,0 @@
1
- # File must be name in underscore casing and the module name must be named in
2
- # CamelizeCasing. The file must also end in _helper.rb by convention.
3
- # More info http://lono.cloud/docs/helpers
4
- # Custom Helpers are loaed into the same scope as built-in lono helpers and are
5
- # treated a first class citizens. They have access to all the same methods
6
- # and instance variable as the built-in lono helpers.
7
- module MyCustomHelper
8
- # This example helper method checks if the file path exists and fails gracefully
9
- # the built-in partial fails hard.
10
- def shared_partial(name, options={}, indent=0)
11
- partial_name = "shared/#{name}.yml.erb"
12
- if partial_exist?(partial_name) # partial_exist? is built-in lono helper
13
- result << partial(partial_name, {}, indent: indent)
14
- result.join("\n")
15
- end
16
- end
17
- end
@@ -1,4 +0,0 @@
1
- #!/bin/bash -lexv
2
- exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
3
- echo ${AWS::StackName} > /tmp/stack_name
4
- cat /proc/uptime | cut -f1 -d'.' > /tmp/time-to-boot
@@ -1,430 +0,0 @@
1
- # http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html#w1ab2c21c45c15c15
2
- # Amazon EC2 instance in a security group Creates an Amazon EC2 instance in an Amazon EC2 security group.
3
- ---
4
- AWSTemplateFormatVersion: '2010-09-09'
5
- Description: 'AWS CloudFormation Sample Template EC2InstanceWithSecurityGroupSample:
6
- Create an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based
7
- on the region in which the stack is run. This example creates an EC2 security group
8
- for the instance to give you SSH access. **WARNING** This template creates an Amazon
9
- EC2 instance. You will be billed for the AWS resources used if you create a stack
10
- from this template.'
11
- Parameters:
12
- KeyName:
13
- Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
14
- Type: AWS::EC2::KeyPair::KeyName
15
- ConstraintDescription: must be the name of an existing EC2 KeyPair.
16
- InstanceType:
17
- Description: WebServer EC2 instance type
18
- Type: String
19
- Default: t2.small
20
- AllowedValues:
21
- - t1.micro
22
- - t2.nano
23
- - t2.micro
24
- - t2.small
25
- - t2.medium
26
- - t2.large
27
- - m1.small
28
- - m1.medium
29
- - m1.large
30
- - m1.xlarge
31
- - m2.xlarge
32
- - m2.2xlarge
33
- - m2.4xlarge
34
- - m3.medium
35
- - m3.large
36
- - m3.xlarge
37
- - m3.2xlarge
38
- - m4.large
39
- - m4.xlarge
40
- - m4.2xlarge
41
- - m4.4xlarge
42
- - m4.10xlarge
43
- - c1.medium
44
- - c1.xlarge
45
- - c3.large
46
- - c3.xlarge
47
- - c3.2xlarge
48
- - c3.4xlarge
49
- - c3.8xlarge
50
- - c4.large
51
- - c4.xlarge
52
- - c4.2xlarge
53
- - c4.4xlarge
54
- - c4.8xlarge
55
- - g2.2xlarge
56
- - g2.8xlarge
57
- - r3.large
58
- - r3.xlarge
59
- - r3.2xlarge
60
- - r3.4xlarge
61
- - r3.8xlarge
62
- - i2.xlarge
63
- - i2.2xlarge
64
- - i2.4xlarge
65
- - i2.8xlarge
66
- - d2.xlarge
67
- - d2.2xlarge
68
- - d2.4xlarge
69
- - d2.8xlarge
70
- - hi1.4xlarge
71
- - hs1.8xlarge
72
- - cr1.8xlarge
73
- - cc2.8xlarge
74
- - cg1.4xlarge
75
- ConstraintDescription: must be a valid EC2 instance type.
76
- SSHLocation:
77
- Description: The IP address range that can be used to SSH to the EC2 instances
78
- Type: String
79
- MinLength: '9'
80
- MaxLength: '18'
81
- Default: 0.0.0.0/0
82
- AllowedPattern: "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})"
83
- ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x.
84
- <% if @route53 %>
85
- HostedZoneName:
86
- Description: The route53 HostedZoneName. For example, "mydomain.com." Don't forget the period at the end.
87
- Type: String
88
- Subdomain:
89
- Description: The subdomain of the dns entry. For example, hello -> hello.mydomain.com, hello is the subdomain.
90
- Type: String
91
- <% end %>
92
- Mappings:
93
- AWSInstanceType2Arch:
94
- t1.micro:
95
- Arch: PV64
96
- t2.nano:
97
- Arch: HVM64
98
- t2.micro:
99
- Arch: HVM64
100
- t2.small:
101
- Arch: HVM64
102
- t2.medium:
103
- Arch: HVM64
104
- t2.large:
105
- Arch: HVM64
106
- m1.small:
107
- Arch: PV64
108
- m1.medium:
109
- Arch: PV64
110
- m1.large:
111
- Arch: PV64
112
- m1.xlarge:
113
- Arch: PV64
114
- m2.xlarge:
115
- Arch: PV64
116
- m2.2xlarge:
117
- Arch: PV64
118
- m2.4xlarge:
119
- Arch: PV64
120
- m3.medium:
121
- Arch: HVM64
122
- m3.large:
123
- Arch: HVM64
124
- m3.xlarge:
125
- Arch: HVM64
126
- m3.2xlarge:
127
- Arch: HVM64
128
- m4.large:
129
- Arch: HVM64
130
- m4.xlarge:
131
- Arch: HVM64
132
- m4.2xlarge:
133
- Arch: HVM64
134
- m4.4xlarge:
135
- Arch: HVM64
136
- m4.10xlarge:
137
- Arch: HVM64
138
- c1.medium:
139
- Arch: PV64
140
- c1.xlarge:
141
- Arch: PV64
142
- c3.large:
143
- Arch: HVM64
144
- c3.xlarge:
145
- Arch: HVM64
146
- c3.2xlarge:
147
- Arch: HVM64
148
- c3.4xlarge:
149
- Arch: HVM64
150
- c3.8xlarge:
151
- Arch: HVM64
152
- c4.large:
153
- Arch: HVM64
154
- c4.xlarge:
155
- Arch: HVM64
156
- c4.2xlarge:
157
- Arch: HVM64
158
- c4.4xlarge:
159
- Arch: HVM64
160
- c4.8xlarge:
161
- Arch: HVM64
162
- g2.2xlarge:
163
- Arch: HVMG2
164
- g2.8xlarge:
165
- Arch: HVMG2
166
- r3.large:
167
- Arch: HVM64
168
- r3.xlarge:
169
- Arch: HVM64
170
- r3.2xlarge:
171
- Arch: HVM64
172
- r3.4xlarge:
173
- Arch: HVM64
174
- r3.8xlarge:
175
- Arch: HVM64
176
- i2.xlarge:
177
- Arch: HVM64
178
- i2.2xlarge:
179
- Arch: HVM64
180
- i2.4xlarge:
181
- Arch: HVM64
182
- i2.8xlarge:
183
- Arch: HVM64
184
- d2.xlarge:
185
- Arch: HVM64
186
- d2.2xlarge:
187
- Arch: HVM64
188
- d2.4xlarge:
189
- Arch: HVM64
190
- d2.8xlarge:
191
- Arch: HVM64
192
- hi1.4xlarge:
193
- Arch: HVM64
194
- hs1.8xlarge:
195
- Arch: HVM64
196
- cr1.8xlarge:
197
- Arch: HVM64
198
- cc2.8xlarge:
199
- Arch: HVM64
200
- AWSInstanceType2NATArch:
201
- t1.micro:
202
- Arch: NATPV64
203
- t2.nano:
204
- Arch: NATHVM64
205
- t2.micro:
206
- Arch: NATHVM64
207
- t2.small:
208
- Arch: NATHVM64
209
- t2.medium:
210
- Arch: NATHVM64
211
- t2.large:
212
- Arch: NATHVM64
213
- m1.small:
214
- Arch: NATPV64
215
- m1.medium:
216
- Arch: NATPV64
217
- m1.large:
218
- Arch: NATPV64
219
- m1.xlarge:
220
- Arch: NATPV64
221
- m2.xlarge:
222
- Arch: NATPV64
223
- m2.2xlarge:
224
- Arch: NATPV64
225
- m2.4xlarge:
226
- Arch: NATPV64
227
- m3.medium:
228
- Arch: NATHVM64
229
- m3.large:
230
- Arch: NATHVM64
231
- m3.xlarge:
232
- Arch: NATHVM64
233
- m3.2xlarge:
234
- Arch: NATHVM64
235
- m4.large:
236
- Arch: NATHVM64
237
- m4.xlarge:
238
- Arch: NATHVM64
239
- m4.2xlarge:
240
- Arch: NATHVM64
241
- m4.4xlarge:
242
- Arch: NATHVM64
243
- m4.10xlarge:
244
- Arch: NATHVM64
245
- c1.medium:
246
- Arch: NATPV64
247
- c1.xlarge:
248
- Arch: NATPV64
249
- c3.large:
250
- Arch: NATHVM64
251
- c3.xlarge:
252
- Arch: NATHVM64
253
- c3.2xlarge:
254
- Arch: NATHVM64
255
- c3.4xlarge:
256
- Arch: NATHVM64
257
- c3.8xlarge:
258
- Arch: NATHVM64
259
- c4.large:
260
- Arch: NATHVM64
261
- c4.xlarge:
262
- Arch: NATHVM64
263
- c4.2xlarge:
264
- Arch: NATHVM64
265
- c4.4xlarge:
266
- Arch: NATHVM64
267
- c4.8xlarge:
268
- Arch: NATHVM64
269
- g2.2xlarge:
270
- Arch: NATHVMG2
271
- g2.8xlarge:
272
- Arch: NATHVMG2
273
- r3.large:
274
- Arch: NATHVM64
275
- r3.xlarge:
276
- Arch: NATHVM64
277
- r3.2xlarge:
278
- Arch: NATHVM64
279
- r3.4xlarge:
280
- Arch: NATHVM64
281
- r3.8xlarge:
282
- Arch: NATHVM64
283
- i2.xlarge:
284
- Arch: NATHVM64
285
- i2.2xlarge:
286
- Arch: NATHVM64
287
- i2.4xlarge:
288
- Arch: NATHVM64
289
- i2.8xlarge:
290
- Arch: NATHVM64
291
- d2.xlarge:
292
- Arch: NATHVM64
293
- d2.2xlarge:
294
- Arch: NATHVM64
295
- d2.4xlarge:
296
- Arch: NATHVM64
297
- d2.8xlarge:
298
- Arch: NATHVM64
299
- hi1.4xlarge:
300
- Arch: NATHVM64
301
- hs1.8xlarge:
302
- Arch: NATHVM64
303
- cr1.8xlarge:
304
- Arch: NATHVM64
305
- cc2.8xlarge:
306
- Arch: NATHVM64
307
- AWSRegionArch2AMI:
308
- us-east-1:
309
- PV64: ami-2a69aa47
310
- HVM64: ami-6869aa05
311
- HVMG2: ami-61e27177
312
- us-west-2:
313
- PV64: ami-7f77b31f
314
- HVM64: ami-7172b611
315
- HVMG2: ami-60aa3700
316
- us-west-1:
317
- PV64: ami-a2490dc2
318
- HVM64: ami-31490d51
319
- HVMG2: ami-4b694d2b
320
- eu-west-1:
321
- PV64: ami-4cdd453f
322
- HVM64: ami-f9dd458a
323
- HVMG2: ami-2955524f
324
- eu-west-2:
325
- PV64: NOT_SUPPORTED
326
- HVM64: ami-886369ec
327
- HVMG2: NOT_SUPPORTED
328
- eu-central-1:
329
- PV64: ami-6527cf0a
330
- HVM64: ami-ea26ce85
331
- HVMG2: ami-81ac71ee
332
- ap-northeast-1:
333
- PV64: ami-3e42b65f
334
- HVM64: ami-374db956
335
- HVMG2: ami-46220c21
336
- ap-northeast-2:
337
- PV64: NOT_SUPPORTED
338
- HVM64: ami-2b408b45
339
- HVMG2: NOT_SUPPORTED
340
- ap-southeast-1:
341
- PV64: ami-df9e4cbc
342
- HVM64: ami-a59b49c6
343
- HVMG2: ami-c212aba1
344
- ap-southeast-2:
345
- PV64: ami-63351d00
346
- HVM64: ami-dc361ebf
347
- HVMG2: ami-0ad2db69
348
- ap-south-1:
349
- PV64: NOT_SUPPORTED
350
- HVM64: ami-ffbdd790
351
- HVMG2: ami-ca3042a5
352
- us-east-2:
353
- PV64: NOT_SUPPORTED
354
- HVM64: ami-f6035893
355
- HVMG2: NOT_SUPPORTED
356
- ca-central-1:
357
- PV64: NOT_SUPPORTED
358
- HVM64: ami-730ebd17
359
- HVMG2: NOT_SUPPORTED
360
- sa-east-1:
361
- PV64: ami-1ad34676
362
- HVM64: ami-6dd04501
363
- HVMG2: NOT_SUPPORTED
364
- cn-north-1:
365
- PV64: ami-77559f1a
366
- HVM64: ami-8e6aa0e3
367
- HVMG2: NOT_SUPPORTED
368
- Resources:
369
- EC2Instance:
370
- Type: AWS::EC2::Instance
371
- Properties:
372
- InstanceType:
373
- Ref: InstanceType
374
- SecurityGroups:
375
- - Ref: InstanceSecurityGroup
376
- KeyName:
377
- Ref: KeyName
378
- ImageId:
379
- Fn::FindInMap:
380
- - AWSRegionArch2AMI
381
- - Ref: AWS::Region
382
- - Fn::FindInMap:
383
- - AWSInstanceType2Arch
384
- - Ref: InstanceType
385
- - Arch
386
- InstanceSecurityGroup:
387
- Type: AWS::EC2::SecurityGroup
388
- Properties:
389
- GroupDescription: Enable SSH access via port 22
390
- SecurityGroupIngress:
391
- - IpProtocol: tcp
392
- FromPort: '22'
393
- ToPort: '22'
394
- CidrIp:
395
- Ref: SSHLocation
396
- <% if @route53 %>
397
- DnsRecord:
398
- Type: AWS::Route53::RecordSet
399
- Properties:
400
- HostedZoneName: !Ref 'HostedZoneName'
401
- Comment: DNS name for my instance.
402
- Name: !Join ['', [!Ref 'Subdomain', ., !Ref 'HostedZoneName']]
403
- Type: CNAME
404
- TTL: '900'
405
- ResourceRecords:
406
- - !GetAtt EC2Instance.PublicIp
407
- <% end %>
408
- Outputs:
409
- InstanceId:
410
- Description: InstanceId of the newly created EC2 instance
411
- Value:
412
- Ref: EC2Instance
413
- AZ:
414
- Description: Availability Zone of the newly created EC2 instance
415
- Value:
416
- Fn::GetAtt:
417
- - EC2Instance
418
- - AvailabilityZone
419
- PublicDNS:
420
- Description: Public DNSName of the newly created EC2 instance
421
- Value:
422
- Fn::GetAtt:
423
- - EC2Instance
424
- - PublicDnsName
425
- PublicIP:
426
- Description: Public IP address of the newly created EC2 instance
427
- Value:
428
- Fn::GetAtt:
429
- - EC2Instance
430
- - PublicIp