aws-must 0.0.5 → 0.0.6
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/README.md +29 -20
- data/demo/0/root.mustache +13 -1
- data/demo/2/conf.yaml +1 -5
- data/demo/{8 → 2}/resources.mustache +6 -15
- data/demo/2/root.mustache +13 -54
- data/demo/2.old/conf.yaml +5 -0
- data/demo/2.old/root.mustache +85 -0
- data/demo/3/conf.yaml +18 -2
- data/demo/3/resource.mustache +27 -0
- data/demo/3/resourceInstance.mustache +32 -0
- data/demo/3/resources.mustache +9 -8
- data/demo/3/root.mustache +17 -17
- data/demo/4/conf.yaml +19 -14
- data/demo/{8 → 4}/output.mustache +1 -2
- data/demo/4/resource.mustache +1 -1
- data/demo/4/resourceInstance.mustache +10 -5
- data/demo/4/resourceSecurityGroup.mustache +37 -0
- data/demo/4/root.mustache +16 -9
- data/demo/5/conf.yaml +3 -4
- data/demo/{8 → 5}/mappings.mustache +0 -0
- data/demo/5/output.mustache +2 -1
- data/demo/5/resource.mustache +3 -0
- data/demo/5/resourceInstance.mustache +4 -4
- data/demo/5/resources.mustache +12 -2
- data/demo/5/root.mustache +42 -9
- data/demo/6/conf.yaml +27 -8
- data/demo/{8 → 6}/parameter.mustache +0 -0
- data/demo/6/resource.mustache +10 -1
- data/demo/6/resourceInstance.mustache +13 -3
- data/demo/{8 → 6}/resourceSecurityGroup.mustache +0 -0
- data/demo/6/root.mustache +48 -15
- data/demo/{8 → 6}/tag.mustache +0 -0
- data/demo/7/conf.yaml +8 -3
- data/demo/7/resourceInstance.mustache +5 -2
- data/demo/{8 → 7}/resourceInstanceChef.mustache +0 -0
- data/demo/7/root.mustache +11 -3
- data/lib/tasks/demo.rake +6 -7
- metadata +14 -13
- data/demo/8/conf.yaml +0 -61
- data/demo/8/resource.mustache +0 -38
- data/demo/8/resourceInstance.mustache +0 -50
- data/demo/8/root.mustache +0 -191
@@ -3,6 +3,8 @@
|
|
3
3
|
|
4
4
|
++start++
|
5
5
|
|
6
|
+
|
7
|
+
|
6
8
|
## <a id="resourceInstance.mustache"></a>resourceInstance.mustache <a class='navigator' href='#top'">[top]</a>
|
7
9
|
|
8
10
|
Create an EC2 instance
|
@@ -10,13 +12,15 @@ Create an EC2 instance
|
|
10
12
|
**Attributes**: context= `./resources/Instance`
|
11
13
|
|
12
14
|
* `Name`: name of the EC2 instance to create
|
13
|
-
* `
|
15
|
+
* `InstanceType` : The instance type, such as t2.micro.
|
14
16
|
|
15
17
|
**Actions**:
|
16
18
|
|
19
|
+
|
17
20
|
* **Name**: `Name`
|
18
21
|
* **Type**: 'AWS::EC2::Instance'
|
19
22
|
* **ImageId**: `ImageId`
|
23
|
+
* **SecurityGroups.Ref**: `SecurityGroup` if `SecurityGroup`
|
20
24
|
|
21
25
|
++close++
|
22
26
|
|
@@ -26,7 +30,8 @@ Create an EC2 instance
|
|
26
30
|
"{{Name}}" : {
|
27
31
|
"Type" : "AWS::EC2::Instance",
|
28
32
|
"Properties" : {
|
29
|
-
"ImageId" : "{{ImageId}}"
|
30
|
-
"InstanceType" : "{{InstanceType}}"
|
31
|
-
|
32
|
-
|
33
|
+
"ImageId" : "{{ImageId}}"
|
34
|
+
, "InstanceType" : "{{InstanceType}}"
|
35
|
+
{{#SecurityGroup}}, "SecurityGroups" : [ { "Ref" : "{{SecurityGroup}}" } ]{{/SecurityGroup}}
|
36
|
+
}
|
37
|
+
}{{_comma}}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{{!
|
2
|
+
|
3
|
+
|
4
|
+
++start++
|
5
|
+
|
6
|
+
|
7
|
+
## <a id="resourceSecurityGroup.mustache"></a>resourceSecurityGroup.mustache <a class='navigator' href='#top'">[top]</a>
|
8
|
+
|
9
|
+
Create an EC2 Security Group
|
10
|
+
|
11
|
+
**Attributes**: context= `./resources/InstanceSecurityGroup`
|
12
|
+
|
13
|
+
* `Name` : of the security group
|
14
|
+
* `IngressCidrIp`: CIDR for to inbound traffic (ingress)
|
15
|
+
|
16
|
+
**Actions**:
|
17
|
+
|
18
|
+
* **Name**: `Name`
|
19
|
+
* **Type**: "AWS::EC2::SecurityGroup"
|
20
|
+
* **Properties.SecurityGroupIngress[0].CidrIp**: `IngressCidrIp`
|
21
|
+
|
22
|
+
++close++
|
23
|
+
|
24
|
+
}}
|
25
|
+
|
26
|
+
"{{Name}}" : {
|
27
|
+
"Type" : "AWS::EC2::SecurityGroup",
|
28
|
+
"Properties" : {
|
29
|
+
"GroupDescription" : "Enable SSH access via port 22",
|
30
|
+
"SecurityGroupIngress" : [ {
|
31
|
+
"IpProtocol" : "tcp",
|
32
|
+
"FromPort" : "22",
|
33
|
+
"ToPort" : "22",
|
34
|
+
"CidrIp" : "{{IngressCidrIp}}"
|
35
|
+
} ]
|
36
|
+
}
|
37
|
+
}{{_comma}}
|
data/demo/4/root.mustache
CHANGED
@@ -37,9 +37,10 @@ CONTENT section
|
|
37
37
|
|
38
38
|
# <a id="top">aws-must demo 4 template</a>
|
39
39
|
|
40
|
-
Creates
|
41
|
-
(e.g. ami-00dae61d) and `InstanceType` (e.g. t2.micro).
|
42
|
-
|
40
|
+
Creates EC2 instances using YAML configuration defining `ImageId`
|
41
|
+
(e.g. ami-00dae61d) and `InstanceType` (e.g. t2.micro). Output
|
42
|
+
section contains references to InstanceId and PublicId of the newly
|
43
|
+
created EC2 instance.
|
43
44
|
|
44
45
|
Supports only region `eu-central-1`. No ssh connection allowed by
|
45
46
|
default.
|
@@ -49,6 +50,7 @@ default.
|
|
49
50
|
* `InstanceType`: EC2 resource instance type, (default: t2.micro)
|
50
51
|
|
51
52
|
|
53
|
+
|
52
54
|
## Document Content
|
53
55
|
|
54
56
|
This document is generated automically from `aws-must` -demo
|
@@ -68,25 +70,26 @@ each template, it
|
|
68
70
|
* lists template actions, i.e. output from template, or template
|
69
71
|
inclusion
|
70
72
|
|
71
|
-
## <a id="root.mustache"></a>root.mustache <a class='navigator' href='#top'">[top]</a>
|
72
|
-
|
73
73
|
|
74
|
-
|
74
|
+
## <a id="root.mustache"></a>root.mustache <a class='navigator' href='#top'">[top]</a>
|
75
75
|
|
76
|
+
Starting point of template rendering.
|
76
77
|
|
77
78
|
**Attributes**: context= `.`
|
78
79
|
|
79
80
|
* `description`: description for the CF template
|
80
81
|
|
81
|
-
|
82
82
|
**Actions**:
|
83
83
|
|
84
84
|
* **Description**: `description`
|
85
85
|
* **include** <a href="#resources.mustache">resources.mustache</a>
|
86
86
|
* **for** `resource` **in** `resource` **include** <a href="#resource.mustache">resource.mustache</a>
|
87
|
+
* **for** `output` **in** `outputs` **include** <a href="#output.mustache">output.mustache</a>
|
88
|
+
|
87
89
|
|
88
90
|
> resources
|
89
91
|
> resource
|
92
|
+
> output
|
90
93
|
|
91
94
|
++close++
|
92
95
|
|
@@ -97,13 +100,17 @@ Root template
|
|
97
100
|
|
98
101
|
"Description" : "{{description}}",
|
99
102
|
|
100
|
-
|
101
|
-
|
102
103
|
"Resources" : {
|
103
104
|
|
104
105
|
{{> resources }}
|
105
106
|
{{# resources }}{{> resource }}{{/ resources }}
|
106
107
|
|
108
|
+
},
|
109
|
+
|
110
|
+
"Outputs" : {
|
111
|
+
|
112
|
+
{{# outputs }}{{> output }}{{/ outputs }}
|
113
|
+
|
107
114
|
}
|
108
115
|
|
109
116
|
}
|
data/demo/5/conf.yaml
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
-- demo/2 : added description property
|
2
2
|
|
3
3
|
|
4
|
-
description: "demo/
|
4
|
+
description: "demo/6 - A simple Amazon EC2 instance created using aws-must tool
|
5
5
|
- Minimum Viable Solution to Manage CloudFormation
|
6
|
-
Templates. This version
|
7
|
-
to
|
6
|
+
Templates. This version uses AWSInstanceType2Arch and AWSRegionArch2AMI
|
7
|
+
to define 64bit hmv 't2.micro' instances AMIs for several Amazon regions."
|
8
8
|
|
9
9
|
|
10
10
|
parameters:
|
@@ -19,7 +19,6 @@ resources:
|
|
19
19
|
|
20
20
|
- Instance:
|
21
21
|
Name: &Resource_1 MyEC2Instance
|
22
|
-
ImageId: ami-00dae61d
|
23
22
|
InstanceType: *Param_InstanceType
|
24
23
|
|
25
24
|
|
File without changes
|
data/demo/5/output.mustache
CHANGED
@@ -5,7 +5,6 @@
|
|
5
5
|
|
6
6
|
## <a id="output.mustache"></a>output.mustache <a class='navigator' href='#top'">[top]</a>
|
7
7
|
|
8
|
-
|
9
8
|
Create one output entry to CloudFormation JSON output section
|
10
9
|
|
11
10
|
**Attributes**: context= `./outputs`
|
@@ -26,6 +25,8 @@ Create one output entry to CloudFormation JSON output section
|
|
26
25
|
* **Value**: **Ref** if `Ref`
|
27
26
|
* **Value**: `Attr.Ref`, `Attr.Name` if `Attr`
|
28
27
|
|
28
|
+
|
29
|
+
|
29
30
|
++close++
|
30
31
|
|
31
32
|
}}
|
data/demo/5/resource.mustache
CHANGED
@@ -6,12 +6,14 @@
|
|
6
6
|
|
7
7
|
## <a id="resource.mustache"></a>resource.mustache <a class='navigator' href='#top'">[top]</a>
|
8
8
|
|
9
|
+
|
9
10
|
Dispatches resource sub-type templates based resource Type propertys
|
10
11
|
|
11
12
|
**Attributes**: context= `./resources`
|
12
13
|
|
13
14
|
* `Instance`: sub-document defining an EC instance
|
14
15
|
|
16
|
+
|
15
17
|
**Actions**:
|
16
18
|
|
17
19
|
* include <a href="#resourceInstance.mustache">resourceInstance.mustache</a> if `Instance`
|
@@ -21,6 +23,7 @@ Dispatches resource sub-type templates based resource Type propertys
|
|
21
23
|
++close++
|
22
24
|
|
23
25
|
|
26
|
+
|
24
27
|
}}
|
25
28
|
|
26
29
|
{{# Instance }}{{> resourceInstance}}{{/ Instance }}
|
@@ -4,7 +4,6 @@
|
|
4
4
|
++start++
|
5
5
|
|
6
6
|
|
7
|
-
|
8
7
|
## <a id="resourceInstance.mustache"></a>resourceInstance.mustache <a class='navigator' href='#top'">[top]</a>
|
9
8
|
|
10
9
|
Create an EC2 instance
|
@@ -14,12 +13,12 @@ Create an EC2 instance
|
|
14
13
|
* `Name`: name of the EC2 instance to create
|
15
14
|
* `InstanceType` : The instance type, such as t2.micro.
|
16
15
|
|
17
|
-
**Actions**:
|
18
16
|
|
17
|
+
**Actions**:
|
19
18
|
|
20
19
|
* **Name**: `Name`
|
21
20
|
* **Type**: 'AWS::EC2::Instance'
|
22
|
-
* **ImageId**: `
|
21
|
+
* **ImageId**: **AWSRegionArch2AMI**( 'AWS::Region', **AWSInstanceType2Arch**(`InstanceType`))
|
23
22
|
|
24
23
|
++close++
|
25
24
|
|
@@ -29,7 +28,8 @@ Create an EC2 instance
|
|
29
28
|
"{{Name}}" : {
|
30
29
|
"Type" : "AWS::EC2::Instance",
|
31
30
|
"Properties" : {
|
32
|
-
"ImageId" : "{
|
31
|
+
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
|
32
|
+
{ "Fn::FindInMap" : [ "AWSInstanceType2Arch", "{{InstanceType}}", "Arch" ] } ] },
|
33
33
|
"InstanceType" : "{{InstanceType}}"
|
34
34
|
} {{! Propertites }}
|
35
35
|
}{{_comma}}
|
data/demo/5/resources.mustache
CHANGED
@@ -2,9 +2,19 @@
|
|
2
2
|
|
3
3
|
++start++
|
4
4
|
|
5
|
-
## resources.mustache
|
5
|
+
## <a id="resources.mustache"></a>resources.mustache <a class='navigator' href='#top'">[top]</a>
|
6
|
+
|
7
|
+
Empty template.
|
8
|
+
|
9
|
+
**Attributes**: context= `.`
|
10
|
+
|
11
|
+
* none
|
12
|
+
|
13
|
+
|
14
|
+
**Actions**:
|
15
|
+
|
16
|
+
* no action (i.e. empty template)
|
6
17
|
|
7
|
-
Nothing created here
|
8
18
|
|
9
19
|
++close++
|
10
20
|
|
data/demo/5/root.mustache
CHANGED
@@ -7,7 +7,6 @@ STYLE section
|
|
7
7
|
==================================================================
|
8
8
|
|
9
9
|
++start++
|
10
|
-
|
11
10
|
<style>
|
12
11
|
h1 {
|
13
12
|
color:blue;
|
@@ -21,6 +20,9 @@ h3 {
|
|
21
20
|
color:blue;
|
22
21
|
font-size: 1.5em;
|
23
22
|
}
|
23
|
+
.navigator {
|
24
|
+
font-size: 0.5em;
|
25
|
+
}
|
24
26
|
body {
|
25
27
|
background-color: #b0c4de;
|
26
28
|
}
|
@@ -37,20 +39,20 @@ CONTENT section
|
|
37
39
|
|
38
40
|
# <a id="top">aws-must demo 5 template</a>
|
39
41
|
|
40
|
-
Creates EC2 instances using YAML configuration defining `
|
41
|
-
(e.g.
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
42
|
+
Creates EC2 instances using YAML configuration defining `InstanceType`
|
43
|
+
(e.g. t2.micro). `ImageId` of the AMI is determined using
|
44
|
+
CloudFormation mapping on `InstanceType` and region. Supported regions
|
45
|
+
are ap-northeast-1, ap-southeast-1, ap-southeast-2, cn-north-1,
|
46
|
+
eu-central-1, eu-west-1, sa-east-1, us-east-1, us-gov-west-1,
|
47
|
+
us-west-1, us-west-2. Output section contains references to
|
48
|
+
InstanceId and PublicId of the newly created EC2 instance.
|
47
49
|
|
48
50
|
**Parameters**:
|
49
51
|
|
50
52
|
* `InstanceType`: EC2 resource instance type, (default: t2.micro)
|
51
53
|
|
52
54
|
|
53
|
-
|
55
|
+
No ssh connection allowed by default.
|
54
56
|
|
55
57
|
## Document Content
|
56
58
|
|
@@ -71,6 +73,30 @@ each template, it
|
|
71
73
|
* lists template actions, i.e. output from template, or template
|
72
74
|
inclusion
|
73
75
|
|
76
|
+
### Table of contents
|
77
|
+
<ul>
|
78
|
+
|
79
|
+
<li><a href="#root.mustache">root.mustache</a>: root template =
|
80
|
+
starting point of template rendering</li>
|
81
|
+
|
82
|
+
<li><a href="#mappings.mustache">mappings.mustache</a>matches a key to
|
83
|
+
a corresponding set of named values</li>
|
84
|
+
|
85
|
+
<li>Resources</li>
|
86
|
+
|
87
|
+
<ul>
|
88
|
+
|
89
|
+
<li><a href="#resources.mustache">resources.mustache</a>: fixed
|
90
|
+
resources</li>
|
91
|
+
|
92
|
+
<li><a href="#resource.mustache">resource.mustache</a>: dispatch
|
93
|
+
resource based on resource type</li> <li><a
|
94
|
+
href="#resourceInstance.mustache">resourceInstance.mustache</a>create
|
95
|
+
an EC2 instance</li>
|
96
|
+
|
97
|
+
</ul><li><a href="#output.mustache">output.mustache</a>:values in
|
98
|
+
response to describe stack calls </li> </ul>
|
99
|
+
|
74
100
|
|
75
101
|
## <a id="root.mustache"></a>root.mustache <a class='navigator' href='#top'">[top]</a>
|
76
102
|
|
@@ -83,15 +109,18 @@ Starting point of template rendering.
|
|
83
109
|
**Actions**:
|
84
110
|
|
85
111
|
* **Description**: `description`
|
112
|
+
* **include** <a href="#mappings.mustache">mappings.mustache</a>
|
86
113
|
* **include** <a href="#resources.mustache">resources.mustache</a>
|
87
114
|
* **for** `resource` **in** `resource` **include** <a href="#resource.mustache">resource.mustache</a>
|
88
115
|
* **for** `output` **in** `outputs` **include** <a href="#output.mustache">output.mustache</a>
|
89
116
|
|
90
117
|
|
118
|
+
> mappings
|
91
119
|
> resources
|
92
120
|
> resource
|
93
121
|
> output
|
94
122
|
|
123
|
+
|
95
124
|
++close++
|
96
125
|
|
97
126
|
}}
|
@@ -101,6 +130,10 @@ Starting point of template rendering.
|
|
101
130
|
|
102
131
|
"Description" : "{{description}}",
|
103
132
|
|
133
|
+
"Mappings" : {
|
134
|
+
{{> mappings }}
|
135
|
+
},
|
136
|
+
|
104
137
|
"Resources" : {
|
105
138
|
|
106
139
|
{{> resources }}
|
data/demo/6/conf.yaml
CHANGED
@@ -1,11 +1,5 @@
|
|
1
|
-
-- demo/2 : added description property
|
2
|
-
|
3
|
-
|
4
|
-
description: "demo/6 - A simple Amazon EC2 instance created using aws-must tool
|
5
|
-
- Minimum Viable Solution to Manage CloudFormation
|
6
|
-
Templates. This version uses AWSInstanceType2Arch and AWSRegionArch2AMI
|
7
|
-
to define 64bit hmv 't2.micro' instances AMIs for several Amazon regions."
|
8
1
|
|
2
|
+
description: "demo/6 - A simple Amazon EC2 instance created using aws-must tool"
|
9
3
|
|
10
4
|
parameters:
|
11
5
|
|
@@ -14,18 +8,43 @@ parameters:
|
|
14
8
|
Description: EC2 reousrce instance type
|
15
9
|
Value: &Param_InstanceType t2.micro
|
16
10
|
|
11
|
+
- Name: &Param_KeyName KeyName
|
12
|
+
Type: "AWS::EC2::KeyPair::KeyName"
|
13
|
+
Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
|
14
|
+
Value: demo-key
|
15
|
+
|
16
|
+
- Name: &Param_SSHLocation SSHLocation
|
17
|
+
Type: String
|
18
|
+
Description: The IP address range that can be used to SSH to the EC2 instances
|
19
|
+
Value: "0.0.0.0/0"
|
20
|
+
|
17
21
|
|
18
22
|
resources:
|
19
23
|
|
24
|
+
- InstanceSecurityGroup:
|
25
|
+
Name: &DefaultSG MyDefaultSecurityGroup
|
26
|
+
IngressRef: *Param_SSHLocation
|
27
|
+
|
20
28
|
- Instance:
|
21
29
|
Name: &Resource_1 MyEC2Instance
|
22
30
|
InstanceType: *Param_InstanceType
|
31
|
+
KeyName: *Param_KeyName
|
32
|
+
SecurityGroup: *DefaultSG
|
33
|
+
tags:
|
34
|
+
- Key: demotag1
|
35
|
+
Value: demotag1 value
|
23
36
|
|
24
37
|
|
25
38
|
outputs:
|
26
39
|
|
27
|
-
- Name:
|
40
|
+
- Name: Instance1
|
28
41
|
Description: InstanceId of the newly created EC2 instance
|
29
42
|
Ref: *Resource_1
|
30
43
|
|
31
44
|
|
45
|
+
- Name: IP1
|
46
|
+
Description: Public IP address of the newly created EC2 instance
|
47
|
+
Attr:
|
48
|
+
Ref: *Resource_1
|
49
|
+
Name: PublicIp
|
50
|
+
|
File without changes
|
data/demo/6/resource.mustache
CHANGED
@@ -12,13 +12,21 @@ Dispatches resource sub-type templates based resource Type propertys
|
|
12
12
|
**Attributes**: context= `./resources`
|
13
13
|
|
14
14
|
* `Instance`: sub-document defining an EC instance
|
15
|
+
* `SecurityGroup`: sub-document defining an <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html">AWS::EC2::SecurityGroup</a>
|
15
16
|
|
16
17
|
|
17
18
|
**Actions**:
|
18
19
|
|
19
|
-
* include <a href="#resourceInstance.mustache">resourceInstance.mustache</a> if `Instance`
|
20
|
+
* **include** <a href="#resourceInstance.mustache">resourceInstance.mustache</a> **if** `Instance`
|
21
|
+
* **include** <a href="#resourceSecurityGroup.mustache">resourceSecurityGroup.mustache</a> **if** `SecurityGroup`
|
22
|
+
|
23
|
+
|
24
|
+
**Included resources**
|
25
|
+
|
26
|
+
* `resourceInstance`
|
20
27
|
|
21
28
|
> resourceInstance
|
29
|
+
> resourceSecurityGroup.mustache
|
22
30
|
|
23
31
|
++close++
|
24
32
|
|
@@ -27,3 +35,4 @@ Dispatches resource sub-type templates based resource Type propertys
|
|
27
35
|
}}
|
28
36
|
|
29
37
|
{{# Instance }}{{> resourceInstance}}{{/ Instance }}
|
38
|
+
{{# InstanceSecurityGroup }}{{> resourceSecurityGroup}}{{/ InstanceSecurityGroup }}
|
@@ -12,13 +12,20 @@ Create an EC2 instance
|
|
12
12
|
|
13
13
|
* `Name`: name of the EC2 instance to create
|
14
14
|
* `InstanceType` : The instance type, such as t2.micro.
|
15
|
+
* `tags` : array of tag sub-documents for EC2 instance
|
15
16
|
|
16
17
|
|
17
18
|
**Actions**:
|
18
19
|
|
19
20
|
* **Name**: `Name`
|
20
21
|
* **Type**: 'AWS::EC2::Instance'
|
22
|
+
* **for** `tag` **in** `tags` **include** <a href="#tag.mustache">tag.mustache</a>
|
23
|
+
* **SecurityGroups.Ref**: `SecurityGroup` if `SecurityGroup`
|
21
24
|
* **ImageId**: **AWSRegionArch2AMI**( 'AWS::Region', **AWSInstanceType2Arch**(`InstanceType`))
|
25
|
+
* **KeyName**: `KeyName` if `KeyName`
|
26
|
+
|
27
|
+
> tag
|
28
|
+
|
22
29
|
|
23
30
|
++close++
|
24
31
|
|
@@ -29,7 +36,10 @@ Create an EC2 instance
|
|
29
36
|
"Type" : "AWS::EC2::Instance",
|
30
37
|
"Properties" : {
|
31
38
|
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
|
32
|
-
{ "Fn::FindInMap" : [ "AWSInstanceType2Arch", "{{InstanceType}}", "Arch" ] } ] }
|
33
|
-
"InstanceType" : "{{InstanceType}}"
|
34
|
-
|
39
|
+
{ "Fn::FindInMap" : [ "AWSInstanceType2Arch", "{{InstanceType}}", "Arch" ] } ] }
|
40
|
+
, "InstanceType" : "{{InstanceType}}"
|
41
|
+
, "Tags" : [ {{#tags}}{{>tag}}{{/tags}} ]
|
42
|
+
{{#SecurityGroup}}, "SecurityGroups" : [ { "Ref" : "{{SecurityGroup}}" } ]{{/SecurityGroup}}
|
43
|
+
{{#KeyName}}, "KeyName" : { "Ref" : "{{KeyName}}" }{{/KeyName}}
|
44
|
+
}
|
35
45
|
}{{_comma}}
|
File without changes
|
data/demo/6/root.mustache
CHANGED
@@ -39,20 +39,29 @@ CONTENT section
|
|
39
39
|
|
40
40
|
# <a id="top">aws-must demo 6 template</a>
|
41
41
|
|
42
|
-
Creates
|
43
|
-
(e.g. t2.micro). `ImageId` of the AMI is determined using
|
44
|
-
CloudFormation mapping on `InstanceType` and region. Supported regions
|
45
|
-
are ap-northeast-1, ap-southeast-1, ap-southeast-2, cn-north-1,
|
46
|
-
eu-central-1, eu-west-1, sa-east-1, us-east-1, us-gov-west-1,
|
47
|
-
us-west-1, us-west-2. Output section contains references to
|
48
|
-
InstanceId and PublicId of the newly created EC2 instance.
|
42
|
+
Creates
|
49
43
|
|
50
|
-
**
|
44
|
+
* **EC2 SecurityGroup** allowing ssh via port 22 from a location given
|
45
|
+
as `SSHLocation` parameter
|
51
46
|
|
52
|
-
*
|
47
|
+
* **EC2 instances** using YAML parameter `InstanceType`
|
48
|
+
(e.g. t2.micro).
|
49
|
+
|
50
|
+
* `ImageId` of the AMI is determined using CloudFormation mapping on
|
51
|
+
`InstanceType` and region. Supported regions are ap-northeast-1,
|
52
|
+
ap-southeast-1, ap-southeast-2, cn-north-1, eu-central-1,
|
53
|
+
eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
|
54
|
+
us-west-2.
|
55
|
+
|
56
|
+
* output section contains references to InstanceId and PublicId of
|
57
|
+
the newly created EC2 instance.
|
53
58
|
|
54
59
|
|
55
|
-
|
60
|
+
**Parameters**:
|
61
|
+
|
62
|
+
* `InstanceType`: EC2 resource instance type, (default: t2.micro)
|
63
|
+
* `KeyName` : Name of an existing EC2 KeyPair to enable SSH access to the instance, (default: demo-key)
|
64
|
+
* `SSHLocation`: The IP address range that can be used to SSH to the EC2 instances default: 0.0.0.0/0)
|
56
65
|
|
57
66
|
## Document Content
|
58
67
|
|
@@ -68,7 +77,7 @@ each template, it
|
|
68
77
|
* gives a general description of the template
|
69
78
|
|
70
79
|
* documents the attribute context e.g. `.` or `./resources/Instance`,
|
71
|
-
and attributes
|
80
|
+
and attributes referenced within the template
|
72
81
|
|
73
82
|
* lists template actions, i.e. output from template, or template
|
74
83
|
inclusion
|
@@ -79,6 +88,9 @@ each template, it
|
|
79
88
|
<li><a href="#root.mustache">root.mustache</a>: root template =
|
80
89
|
starting point of template rendering</li>
|
81
90
|
|
91
|
+
<li><a href="#parameter.mustache">parameter.mustache</a>: create one
|
92
|
+
parameter entry to CloudFormation JSON parameter section</li>
|
93
|
+
|
82
94
|
<li><a href="#mappings.mustache">mappings.mustache</a>matches a key to
|
83
95
|
a corresponding set of named values</li>
|
84
96
|
|
@@ -90,11 +102,22 @@ a corresponding set of named values</li>
|
|
90
102
|
resources</li>
|
91
103
|
|
92
104
|
<li><a href="#resource.mustache">resource.mustache</a>: dispatch
|
93
|
-
resource based on resource type</li>
|
94
|
-
href="#resourceInstance.mustache">resourceInstance.mustache</a>create
|
95
|
-
an EC2 instance</li>
|
105
|
+
resource based on resource type</li>
|
96
106
|
|
97
|
-
|
107
|
+
<ul> <li><a
|
108
|
+
href="#resourceSecurityGroup.mustache">resourceSecurityGroup.mustache.mustache</a>:
|
109
|
+
create an security group for accessing EC2 instances</li>
|
110
|
+
|
111
|
+
<li><a
|
112
|
+
href="#resourceInstance.mustache">resourceInstance.mustache</a>:
|
113
|
+
create an EC2 instance</li>
|
114
|
+
|
115
|
+
<ul><li><a href="#tag.mustache">tag.mustache</a>: add key-value tag property
|
116
|
+
to an</li><ul>
|
117
|
+
|
118
|
+
</ul></ul></ul></ul>
|
119
|
+
|
120
|
+
<li><a href="#output.mustache">output.mustache</a>: values in
|
98
121
|
response to describe stack calls </li> </ul>
|
99
122
|
|
100
123
|
|
@@ -105,16 +128,22 @@ Starting point of template rendering.
|
|
105
128
|
**Attributes**: context= `.`
|
106
129
|
|
107
130
|
* `description`: description for the CF template
|
131
|
+
* `parameters`: array of parameter sub-documents for CloudFormation Parameters -section
|
132
|
+
* `resources`: array of resource sub-documents for CloudFormation Resources -section
|
133
|
+
* `outputs`: array of output sub-documents for CloudFormation Outputs -section
|
134
|
+
|
108
135
|
|
109
136
|
**Actions**:
|
110
137
|
|
111
138
|
* **Description**: `description`
|
139
|
+
* **for** `parameter` **in** `parameters` **include** <a href="#parameter.mustache">parameter.mustache</a>
|
112
140
|
* **include** <a href="#mappings.mustache">mappings.mustache</a>
|
113
141
|
* **include** <a href="#resources.mustache">resources.mustache</a>
|
114
142
|
* **for** `resource` **in** `resource` **include** <a href="#resource.mustache">resource.mustache</a>
|
115
143
|
* **for** `output` **in** `outputs` **include** <a href="#output.mustache">output.mustache</a>
|
116
144
|
|
117
145
|
|
146
|
+
> parameter
|
118
147
|
> mappings
|
119
148
|
> resources
|
120
149
|
> resource
|
@@ -130,6 +159,10 @@ Starting point of template rendering.
|
|
130
159
|
|
131
160
|
"Description" : "{{description}}",
|
132
161
|
|
162
|
+
"Parameters" : {
|
163
|
+
{{# parameters }}{{> parameter }}{{/ parameters }}
|
164
|
+
},
|
165
|
+
|
133
166
|
"Mappings" : {
|
134
167
|
{{> mappings }}
|
135
168
|
},
|
data/demo/{8 → 6}/tag.mustache
RENAMED
File without changes
|
data/demo/7/conf.yaml
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
-- demo/2 : added description property
|
2
|
-
|
3
1
|
|
4
2
|
description: "demo/7 - A simple Amazon EC2 instance created using aws-must tool
|
5
3
|
- Minimum Viable Solution to Manage CloudFormation
|
6
|
-
Templates.
|
4
|
+
Templates. Adds support installing Chef"
|
7
5
|
|
8
6
|
parameters:
|
9
7
|
|
@@ -22,6 +20,11 @@ parameters:
|
|
22
20
|
Description: The IP address range that can be used to SSH to the EC2 instances
|
23
21
|
Value: "0.0.0.0/0"
|
24
22
|
|
23
|
+
- Name: ChefVersion
|
24
|
+
Type: String
|
25
|
+
Description: Chef version to install
|
26
|
+
Value: &Param_ChefVersion 11.18
|
27
|
+
|
25
28
|
|
26
29
|
resources:
|
27
30
|
|
@@ -34,6 +37,8 @@ resources:
|
|
34
37
|
InstanceType: *Param_InstanceType
|
35
38
|
KeyName: *Param_KeyName
|
36
39
|
SecurityGroup: *DefaultSG
|
40
|
+
InstallChef:
|
41
|
+
- Version: *Param_ChefVersion
|
37
42
|
tags:
|
38
43
|
- Key: demotag1
|
39
44
|
Value: demotag1 value
|