automan 2.2.8 → 2.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72c1ce9f4dcf2a5a02214296048dfe8e17dc875c
4
- data.tar.gz: 5128ff152ef550afdaa6abe8c8b2e788f0673036
3
+ metadata.gz: 0d4dcc2feb4456cd052a27b0e752b0685060007a
4
+ data.tar.gz: 699a105a10d6acb7d4bf43e5c10fa97488bc7aad
5
5
  SHA512:
6
- metadata.gz: 8a59277e8a1276bc289af87e43c53368874169e5170d170c6d829580e67f79cf0d98a2eeaafcb4aa8a9b0d5e3f70c66c5d3a61fc9f52bd26457e6b08d726b669
7
- data.tar.gz: 8fd7a22d12d479c57b34931079f6a7f5e32d25012a1fb6d174e70a5bcfd511196dc1d76b2158cd82b1d34cbfcce26dd12860ca03eb844633d209e2c210d48838
6
+ metadata.gz: eca81bf1d7cd56c6f83143abc1e436ec19cbe9f06861794c39da1bdbc0784da456ae0f37d68a4574f3158adb0c2a1b9cddddc35eee50173d572493c0b30da1c3
7
+ data.tar.gz: a2a9c02a97984cd3e62710c4be6a6f5b68105bbf8af9aefa43fdf4ee803f9569d0566732ab289260936509e94db748ea10ccda6a095bb67e5318746e320a759d
@@ -102,5 +102,24 @@ module Automan::Cli
102
102
  h = Automan::Cloudformation::Launcher.new(options).parse_template_parameters
103
103
  say JSON.pretty_generate h
104
104
  end
105
+
106
+ include Thor::Actions
107
+ def self.source_root
108
+ File.join(File.dirname(__FILE__),'..','..', '..')
109
+ end
110
+
111
+ desc "project APP_NAME", "create stacker project"
112
+
113
+ attr_reader :app_name
114
+
115
+ def project(app_name)
116
+ @app_name = app_name
117
+
118
+ say "\nCreating stacker project: #{app_name}\n", :yellow
119
+ directory 'templates/stacker', app_name
120
+ [app_name, "launch_#{app_name}.sh"].each do |file|
121
+ chmod File.join(app_name, 'bin', file), 0755
122
+ end
123
+ end
105
124
  end
106
125
  end
@@ -1,3 +1,3 @@
1
1
  module Automan
2
- VERSION = "2.2.8"
2
+ VERSION = "2.3.0"
3
3
  end
@@ -0,0 +1,14 @@
1
+ #
2
+ # example .env file
3
+ # cp .env.example .env
4
+ #
5
+ # Set environment variables for all template parameters here.
6
+ # This .env file is in gitignore to help keep application
7
+ # secrets from leaking out into source code control.
8
+ #
9
+ export VPC_ID=vpc-foo
10
+ export SUBNET_ID=subnet-foo
11
+ export REMOTE_ACCESS_SG=sg-foo
12
+ export KEYPAIR_NAME=fookey
13
+ export INSTANCE_TYPE=m3.medium
14
+ export IMAGE_ID=ami-foo
@@ -0,0 +1,2 @@
1
+ .env
2
+ *.json
@@ -0,0 +1 @@
1
+ <%= @app_name %>
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'cloudformation-ruby-dsl'
4
+ gem 'automan'
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env ruby
2
+ require 'bundler/setup'
3
+ require 'cloudformation-ruby-dsl/cfntemplate'
4
+ require 'json'
5
+
6
+ t = template do
7
+ ## CloudFormation template stuff goes here
8
+ ## See https://github.com/bazaarvoice/cloudformation-ruby-dsl
9
+ ##
10
+ ## Here's an example.
11
+ ##
12
+ # parameter 'VpcId',
13
+ # Description: 'The VPC in which to launch',
14
+ # Type: 'String'
15
+
16
+ # parameter 'SubnetId',
17
+ # Description: 'The Subnet in which to launch the instances',
18
+ # Type: 'String'
19
+
20
+ # parameter 'RemoteAccessSG',
21
+ # Description: 'The security group allowing remote access',
22
+ # Type: 'String'
23
+
24
+ # parameter 'KeyPairName',
25
+ # Description: 'Public/private key pairs allow you to securely connect to your instance after it launches',
26
+ # Type: 'String'
27
+
28
+ # parameter 'InstanceType',
29
+ # Description: 'EC2 instance type for training machines',
30
+ # Type: 'String',
31
+ # Default: 't2.small'
32
+
33
+ # parameter 'ImageId',
34
+ # Description: 'Amazon Machine Image Id of pre-baked training machine',
35
+ # Type: 'String'
36
+
37
+ # resource "MyInstance", Type: 'AWS::EC2::Instance',
38
+ # Properties: {
39
+ # ImageId: ref('ImageId'),
40
+ # InstanceType: ref('InstanceType'),
41
+ # NetworkInterfaces: [{
42
+ # AssociatePublicIpAddress: 'true',
43
+ # DeviceIndex: '0',
44
+ # DeleteOnTermination: 'true',
45
+ # SubnetId: ref('SubnetId'),
46
+ # GroupSet: [
47
+ # ref('RemoteAccessSG')
48
+ # ]
49
+ # }],
50
+ # Tags: [
51
+ # { Key: 'Name', Value: "MyInstance" }
52
+ # ],
53
+ # KeyName: ref('KeyPairName')
54
+ # }
55
+ end
56
+
57
+ puts JSON.pretty_generate(t)
@@ -0,0 +1,12 @@
1
+ #!/bin/bash
2
+ # To set template parameters, add the -p options
3
+ # to the end of the stacker command:
4
+ #
5
+ # stacker launch -n <%= app_name %> -t <%= app_name %>.json --disable-rollback \
6
+ # -p VpcId:$VPC_ID \
7
+ # SubnetId:$SUBNET_ID \
8
+ # RemoteAccessSG:$REMOTE_ACCESS_SG \
9
+ # KeyPairName:$KEYPAIR_NAME \
10
+ # InstanceType:$INSTANCE_TYPE \
11
+ # ImageId:$IMAGE_ID
12
+ stacker launch -n <%= app_name %> -t <%= app_name %>.json --disable-rollback
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: automan
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.8
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Chalfant
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-19 00:00:00.000000000 Z
12
+ date: 2015-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -233,6 +233,12 @@ files:
233
233
  - spec/mixins/aws_caller_spec.rb
234
234
  - spec/mixins/utils_spec.rb
235
235
  - spec/rds/snapshot_spec.rb
236
+ - templates/stacker/.env.example
237
+ - templates/stacker/.gitignore
238
+ - templates/stacker/.ruby-gemset.tt
239
+ - templates/stacker/Gemfile
240
+ - templates/stacker/bin/%app_name%.tt
241
+ - templates/stacker/bin/launch_%app_name%.sh
236
242
  homepage: ''
237
243
  licenses: []
238
244
  metadata: {}