simple_deploy 0.3.7 → 0.4.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.
- data/CHANGELOG +7 -0
- data/README.md +10 -15
- data/lib/simple_deploy/cli/attributes.rb +38 -0
- data/lib/simple_deploy/cli/create.rb +46 -0
- data/lib/simple_deploy/cli/deploy.rb +46 -0
- data/lib/simple_deploy/cli/destroy.rb +39 -0
- data/lib/simple_deploy/cli/events.rb +38 -0
- data/lib/simple_deploy/cli/instances.rb +37 -0
- data/lib/simple_deploy/cli/list.rb +53 -0
- data/lib/simple_deploy/cli/outputs.rb +39 -0
- data/lib/simple_deploy/cli/parameters.rb +39 -0
- data/lib/simple_deploy/cli/resources.rb +39 -0
- data/lib/simple_deploy/cli/shared.rb +41 -0
- data/lib/simple_deploy/cli/ssh.rb +39 -0
- data/lib/simple_deploy/cli/status.rb +37 -0
- data/lib/simple_deploy/cli/template.rb +37 -0
- data/lib/simple_deploy/cli/update.rb +46 -0
- data/lib/simple_deploy/cli.rb +48 -144
- data/lib/simple_deploy/stack/deployment.rb +8 -3
- data/lib/simple_deploy/stack.rb +11 -5
- data/lib/simple_deploy/version.rb +1 -1
- data/simple_deploy.gemspec +1 -1
- metadata +28 -14
- data/lib/simple_deploy/cli/variables.rb +0 -23
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -12,21 +12,15 @@ gem install simple_deploy
|
|
12
12
|
Create a file **~/.simple_deploy.yml** and include within it:
|
13
13
|
|
14
14
|
```
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
variable: APP_URL
|
25
|
-
cloud_formation_url: AppArtifactURL
|
26
|
-
- name: cookbooks
|
27
|
-
bucket_prefix: intu-artifacts
|
28
|
-
variable: COOKBOOKS_URL
|
29
|
-
cloud_formation_url: CookbooksURL
|
15
|
+
artifacts:
|
16
|
+
chef_repo:
|
17
|
+
bucket_prefix: bucket1
|
18
|
+
domain: app1-chef_repo
|
19
|
+
app:
|
20
|
+
bucket_prefix: bucket2
|
21
|
+
domain: app1
|
22
|
+
cookbooks:
|
23
|
+
bucket_prefix: bucket2
|
30
24
|
|
31
25
|
environments:
|
32
26
|
preprod_shared_us_west_1:
|
@@ -53,6 +47,7 @@ simple_deploy list -e ENVIRONMENT
|
|
53
47
|
simple_deploy create -n STACK_NAME -e ENVIRONMENT -a ATTRIBUTES -t TEMPLATE_PATH
|
54
48
|
simple_deploy update -n STACK_NAME -e ENVIRONMENT -a ATTRIBUTES
|
55
49
|
simple_deploy deploy -n STACK_NAME -e ENVIRONMENT
|
50
|
+
simple_deploy ssh -n STACK_NAME -e ENVIRONMENT
|
56
51
|
simple_deploy destroy -n STACK_NAME -e ENVIRONMENT
|
57
52
|
simple_deploy instances -n STACK_NAME -e ENVIRONMENT
|
58
53
|
simple_deploy status -n STACK_NAME -e ENVIRONMENT
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Attributes
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show attributes for stack.
|
12
|
+
|
13
|
+
simple_deploy attributes -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
19
|
+
:default => 'info'
|
20
|
+
opt :name, "Stack name to manage", :type => :string
|
21
|
+
end
|
22
|
+
|
23
|
+
CLI::Shared.valid_options? :provided => opts,
|
24
|
+
:required => [:environment, :name]
|
25
|
+
|
26
|
+
config = Config.new.environment opts[:environment]
|
27
|
+
|
28
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
29
|
+
|
30
|
+
stack = Stack.new :environment => opts[:environment],
|
31
|
+
:name => opts[:name],
|
32
|
+
:config => config,
|
33
|
+
:logger => logger
|
34
|
+
Hash[stack.attributes.sort].each_pair { |k, v| puts "#{k}=#{v}" }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Create
|
6
|
+
def create
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Create a new stack.
|
12
|
+
|
13
|
+
simple_deploy create -n STACK_NAME -t PATH_TO_TEMPLATE -e ENVIRONMENT -a KEY1=VAL1 -a KEY2=VAL2
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :attributes, "= seperated attribute and it's value", :type => :string,
|
18
|
+
:multi => true
|
19
|
+
opt :environment, "Set the target environment", :type => :string
|
20
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
21
|
+
:default => 'info'
|
22
|
+
opt :name, "Stack name(s) of stack to deploy", :type => :string
|
23
|
+
opt :template, "Path to the template file", :type => :string
|
24
|
+
end
|
25
|
+
|
26
|
+
CLI::Shared.valid_options? :provided => opts,
|
27
|
+
:required => [:environment, :name, :template]
|
28
|
+
|
29
|
+
config = Config.new.environment opts[:environment]
|
30
|
+
|
31
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
32
|
+
|
33
|
+
attributes = CLI::Shared.parse_attributes :attributes => opts[:attributes],
|
34
|
+
:logger => logger
|
35
|
+
|
36
|
+
stack = Stack.new :environment => opts[:environment],
|
37
|
+
:name => opts[:name],
|
38
|
+
:config => config,
|
39
|
+
:logger => logger
|
40
|
+
|
41
|
+
stack.create :attributes => attributes,
|
42
|
+
:template => opts[:template]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Deploy
|
6
|
+
def deploy
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Execute deployment on given stack(s).
|
12
|
+
|
13
|
+
simple_deploy deploy -n STACK_NAME -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :attributes, "= seperated attribute and it's value", :type => :string,
|
18
|
+
:multi => true
|
19
|
+
opt :environment, "Set the target environment", :type => :string
|
20
|
+
opt :force, "Force a deployment to proceed"
|
21
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
22
|
+
:default => 'info'
|
23
|
+
opt :name, "Stack name(s) of stack to deploy", :type => :string,
|
24
|
+
:multi => true
|
25
|
+
end
|
26
|
+
|
27
|
+
CLI::Shared.valid_options? :provided => opts,
|
28
|
+
:required => [:environment, :name]
|
29
|
+
|
30
|
+
config = Config.new.environment opts[:environment]
|
31
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
32
|
+
|
33
|
+
attributes = CLI::Shared.parse_attributes :attributes => opts[:attributes],
|
34
|
+
:logger => logger
|
35
|
+
opts[:name].each do |name|
|
36
|
+
stack = Stack.new :environment => opts[:environment],
|
37
|
+
:name => name,
|
38
|
+
:config => config,
|
39
|
+
:logger => logger
|
40
|
+
stack.update(:attributes => attributes) if attributes.any?
|
41
|
+
stack.deploy opts[:force]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Destroy
|
6
|
+
def destroy
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Destroy a stack.
|
12
|
+
|
13
|
+
simple_deploy destroy -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
19
|
+
:default => 'info'
|
20
|
+
opt :name, "Stack name(s) of stack to deploy", :type => :string
|
21
|
+
end
|
22
|
+
|
23
|
+
CLI::Shared.valid_options? :provided => opts,
|
24
|
+
:required => [:environment, :name]
|
25
|
+
|
26
|
+
config = Config.new.environment opts[:environment]
|
27
|
+
|
28
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
29
|
+
|
30
|
+
stack = Stack.new :environment => opts[:environment],
|
31
|
+
:name => opts[:name],
|
32
|
+
:config => config,
|
33
|
+
:logger => logger
|
34
|
+
|
35
|
+
stack.destroy
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Events
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show attributes for stack.
|
12
|
+
|
13
|
+
simple_deploy attributes -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :count, "Count of events returned.", :type => :integer,
|
18
|
+
:default => 3
|
19
|
+
opt :environment, "Set the target environment", :type => :string
|
20
|
+
opt :name, "Stack name to manage", :type => :string
|
21
|
+
end
|
22
|
+
CLI::Shared.valid_options? :provided => opts,
|
23
|
+
:required => [:environment, :name]
|
24
|
+
|
25
|
+
config = Config.new.environment opts[:environment]
|
26
|
+
|
27
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
28
|
+
|
29
|
+
stack = Stack.new :environment => opts[:environment],
|
30
|
+
:name => opts[:name],
|
31
|
+
:config => config,
|
32
|
+
:logger => logger
|
33
|
+
|
34
|
+
jj stack.events opts[:count]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Instances
|
6
|
+
def list
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
List instances for stack.
|
12
|
+
|
13
|
+
simple_deploy instances -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :name, "Stack name to manage", :type => :string
|
19
|
+
end
|
20
|
+
|
21
|
+
CLI::Shared.valid_options? :provided => opts,
|
22
|
+
:required => [:environment, :name]
|
23
|
+
|
24
|
+
config = Config.new.environment opts[:environment]
|
25
|
+
|
26
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
27
|
+
|
28
|
+
stack = Stack.new :environment => opts[:environment],
|
29
|
+
:name => opts[:name],
|
30
|
+
:config => config,
|
31
|
+
:logger => logger
|
32
|
+
|
33
|
+
jj stack.instances
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class List
|
6
|
+
def stacks
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
List stacks in an environment
|
12
|
+
|
13
|
+
simple_deploy list -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :environment, "Set the target environment", :type => :string
|
17
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
18
|
+
:default => 'info'
|
19
|
+
opt :help, "Display Help"
|
20
|
+
end
|
21
|
+
|
22
|
+
CLI::Shared.valid_options? :provided => opts,
|
23
|
+
:required => [:environment]
|
24
|
+
|
25
|
+
config = Config.new.environment opts[:environment]
|
26
|
+
stacks = Stackster::StackLister.new(:config => config).all.sort
|
27
|
+
|
28
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
29
|
+
|
30
|
+
stack = Stack.new :environment => opts[:environment],
|
31
|
+
:name => opts[:name],
|
32
|
+
:config => config,
|
33
|
+
:logger => logger
|
34
|
+
puts stacks
|
35
|
+
end
|
36
|
+
|
37
|
+
def environments
|
38
|
+
opts = Trollop::options do
|
39
|
+
version SimpleDeploy::VERSION
|
40
|
+
banner <<-EOS
|
41
|
+
|
42
|
+
List environments
|
43
|
+
|
44
|
+
simple_deploy environments
|
45
|
+
|
46
|
+
EOS
|
47
|
+
opt :help, "Display Help"
|
48
|
+
end
|
49
|
+
Config.new.environments.keys.each { |e| puts e }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Outputs
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show outputs of a stack.
|
12
|
+
|
13
|
+
simple_deploy outputs -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
19
|
+
:default => 'warn'
|
20
|
+
opt :name, "Stack name to manage", :type => :string
|
21
|
+
end
|
22
|
+
|
23
|
+
CLI::Shared.valid_options? :provided => opts,
|
24
|
+
:required => [:environment, :name]
|
25
|
+
|
26
|
+
config = Config.new.environment opts[:environment]
|
27
|
+
|
28
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
29
|
+
|
30
|
+
stack = Stack.new :environment => opts[:environment],
|
31
|
+
:name => opts[:name],
|
32
|
+
:config => config,
|
33
|
+
:logger => logger
|
34
|
+
|
35
|
+
puts stack.outputs
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Parameters
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show parameters of a stack.
|
12
|
+
|
13
|
+
simple_deploy parameters -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
19
|
+
:default => 'warn'
|
20
|
+
opt :name, "Stack name to manage", :type => :string
|
21
|
+
end
|
22
|
+
|
23
|
+
CLI::Shared.valid_options? :provided => opts,
|
24
|
+
:required => [:environment, :name]
|
25
|
+
|
26
|
+
config = Config.new.environment opts[:environment]
|
27
|
+
|
28
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
29
|
+
|
30
|
+
stack = Stack.new :environment => opts[:environment],
|
31
|
+
:name => opts[:name],
|
32
|
+
:config => config,
|
33
|
+
:logger => logger
|
34
|
+
|
35
|
+
jj stack.parameters
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Resources
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show resources of a stack.
|
12
|
+
|
13
|
+
simple_deploy resources -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
19
|
+
:default => 'warn'
|
20
|
+
opt :name, "Stack name to manage", :type => :string
|
21
|
+
end
|
22
|
+
|
23
|
+
CLI::Shared.valid_options? :provided => opts,
|
24
|
+
:required => [:environment, :name]
|
25
|
+
|
26
|
+
config = Config.new.environment opts[:environment]
|
27
|
+
|
28
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
29
|
+
|
30
|
+
stack = Stack.new :environment => opts[:environment],
|
31
|
+
:name => opts[:name],
|
32
|
+
:config => config,
|
33
|
+
:logger => logger
|
34
|
+
|
35
|
+
jj stack.resources
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module SimpleDeploy
|
2
|
+
module CLI
|
3
|
+
module Shared
|
4
|
+
|
5
|
+
def self.parse_attributes(args)
|
6
|
+
attributes = args[:attributes]
|
7
|
+
logger = args[:logger]
|
8
|
+
|
9
|
+
attrs = []
|
10
|
+
attributes.each do |attribs|
|
11
|
+
key = attribs.split('=').first.gsub(/\s+/, "")
|
12
|
+
value = attribs.gsub(/^.+?=/, '')
|
13
|
+
logger.info "Read #{key}=#{value}"
|
14
|
+
attrs << { key => value }
|
15
|
+
end
|
16
|
+
attrs
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.valid_options?(args)
|
20
|
+
provided = args[:provided]
|
21
|
+
required = args[:required]
|
22
|
+
|
23
|
+
required.each do |opt|
|
24
|
+
unless provided[opt]
|
25
|
+
puts "Option '#{opt} (-#{opt[0]})' required but not specified."
|
26
|
+
exit 1
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
if required.include? :environment
|
31
|
+
unless Config.new.environments.keys.include? provided[:environment]
|
32
|
+
puts "Environment '#{provided[:environment]}' does not exist."
|
33
|
+
exit 1
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class SSH
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show ssh connection string.
|
12
|
+
|
13
|
+
simple_deploy ssh -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
19
|
+
:default => 'warn'
|
20
|
+
opt :name, "Stack name to manage", :type => :string
|
21
|
+
end
|
22
|
+
|
23
|
+
CLI::Shared.valid_options? :provided => opts,
|
24
|
+
:required => [:environment, :name]
|
25
|
+
|
26
|
+
config = Config.new.environment opts[:environment]
|
27
|
+
|
28
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
29
|
+
|
30
|
+
stack = Stack.new :environment => opts[:environment],
|
31
|
+
:name => opts[:name],
|
32
|
+
:config => config,
|
33
|
+
:logger => logger
|
34
|
+
|
35
|
+
puts stack.ssh
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Status
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show status of a stack.
|
12
|
+
|
13
|
+
simple_deploy status -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :name, "Stack name to manage", :type => :string
|
19
|
+
end
|
20
|
+
|
21
|
+
CLI::Shared.valid_options? :provided => opts,
|
22
|
+
:required => [:environment, :name]
|
23
|
+
|
24
|
+
config = Config.new.environment opts[:environment]
|
25
|
+
|
26
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
27
|
+
|
28
|
+
stack = Stack.new :environment => opts[:environment],
|
29
|
+
:name => opts[:name],
|
30
|
+
:config => config,
|
31
|
+
:logger => logger
|
32
|
+
|
33
|
+
puts stack.status
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Template
|
6
|
+
def show
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Show current template for stack.
|
12
|
+
|
13
|
+
simple_deploy template -n STACK_NAME -e ENVIRONMENT
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :environment, "Set the target environment", :type => :string
|
18
|
+
opt :name, "Stack name to manage", :type => :string
|
19
|
+
end
|
20
|
+
|
21
|
+
CLI::Shared.valid_options? :provided => opts,
|
22
|
+
:required => [:environment, :name]
|
23
|
+
|
24
|
+
config = Config.new.environment opts[:environment]
|
25
|
+
|
26
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
27
|
+
|
28
|
+
stack = Stack.new :environment => opts[:environment],
|
29
|
+
:name => opts[:name],
|
30
|
+
:config => config,
|
31
|
+
:logger => logger
|
32
|
+
|
33
|
+
jj stack.template
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module SimpleDeploy
|
4
|
+
module CLI
|
5
|
+
class Update
|
6
|
+
def update
|
7
|
+
opts = Trollop::options do
|
8
|
+
version SimpleDeploy::VERSION
|
9
|
+
banner <<-EOS
|
10
|
+
|
11
|
+
Update the attributes for one more stacks.
|
12
|
+
|
13
|
+
simple_deploy update -n STACK_NAME1 -n STACK_NAME2 -e ENVIRONMENT -a KEY1=VAL1 -a KEY2=VAL2
|
14
|
+
|
15
|
+
EOS
|
16
|
+
opt :help, "Display Help"
|
17
|
+
opt :attributes, "= seperated attribute and it's value", :type => :string,
|
18
|
+
:multi => true
|
19
|
+
opt :environment, "Set the target environment", :type => :string
|
20
|
+
opt :log_level, "Log level: debug, info, warn, error", :type => :string,
|
21
|
+
:default => 'info'
|
22
|
+
opt :name, "Stack name(s) of stack to deploy", :type => :string,
|
23
|
+
:multi => true
|
24
|
+
end
|
25
|
+
|
26
|
+
CLI::Shared.valid_options? :provided => opts,
|
27
|
+
:required => [:environment, :name]
|
28
|
+
|
29
|
+
config = Config.new.environment opts[:environment]
|
30
|
+
|
31
|
+
logger = SimpleDeployLogger.new :log_level => opts[:log_level]
|
32
|
+
|
33
|
+
attributes = CLI::Shared.parse_attributes :attributes => opts[:attributes],
|
34
|
+
:logger => logger
|
35
|
+
|
36
|
+
opts[:name].each do |name|
|
37
|
+
stack = Stack.new :environment => opts[:environment],
|
38
|
+
:name => name,
|
39
|
+
:config => config,
|
40
|
+
:logger => logger
|
41
|
+
stack.update :attributes => attributes
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/simple_deploy/cli.rb
CHANGED
@@ -1,166 +1,70 @@
|
|
1
1
|
require 'trollop'
|
2
|
-
|
2
|
+
|
3
|
+
require 'simple_deploy/cli/shared'
|
4
|
+
|
5
|
+
require 'simple_deploy/cli/attributes'
|
6
|
+
require 'simple_deploy/cli/create'
|
7
|
+
require 'simple_deploy/cli/deploy'
|
8
|
+
require 'simple_deploy/cli/destroy'
|
9
|
+
require 'simple_deploy/cli/events'
|
10
|
+
require 'simple_deploy/cli/instances'
|
11
|
+
require 'simple_deploy/cli/list'
|
12
|
+
require 'simple_deploy/cli/outputs'
|
13
|
+
require 'simple_deploy/cli/parameters'
|
14
|
+
require 'simple_deploy/cli/resources'
|
15
|
+
require 'simple_deploy/cli/ssh'
|
16
|
+
require 'simple_deploy/cli/status'
|
17
|
+
require 'simple_deploy/cli/template'
|
18
|
+
require 'simple_deploy/cli/update'
|
3
19
|
|
4
20
|
module SimpleDeploy
|
5
21
|
module CLI
|
6
22
|
def self.start
|
7
|
-
|
8
|
-
version SimpleDeploy::VERSION
|
9
|
-
banner <<-EOS
|
10
|
-
|
11
|
-
Deploy and manage resources in AWS
|
12
|
-
|
13
|
-
simple_deploy environments
|
14
|
-
simple_deploy list -e ENVIRONMENT
|
15
|
-
simple_deploy create -n STACK_NAME -e ENVIRONMENT -a ATTRIBUTES -t TEMPLATE_PATH
|
16
|
-
simple_deploy update -n STACK_NAME -e ENVIRONMENT -a ATTRIBUTES
|
17
|
-
simple_deploy deploy -n STACK_NAME -e ENVIRONMENT
|
18
|
-
simple_deploy ssh -n STACK_NAME -e ENVIRONMENT
|
19
|
-
simple_deploy destroy -n STACK_NAME -e ENVIRONMENT
|
20
|
-
simple_deploy instances -n STACK_NAME -e ENVIRONMENT
|
21
|
-
simple_deploy status -n STACK_NAME -e ENVIRONMENT
|
22
|
-
simple_deploy attributes -n STACK_NAME -e ENVIRONMENT
|
23
|
-
simple_deploy events -n STACK_NAME -e ENVIRONMENT
|
24
|
-
simple_deploy resources -n STACK_NAME -e ENVIRONMENT
|
25
|
-
simple_deploy outputs -n STACK_NAME -e ENVIRONMENT
|
26
|
-
simple_deploy template -n STACK_NAME -e ENVIRONMENT
|
27
|
-
simple_deploy parameters -n STACK_NAME -e ENVIRONMENT
|
28
|
-
|
29
|
-
Attributes are specified as '=' seperated key value pairs. Multiple can be specified. For example:
|
30
|
-
|
31
|
-
simple_deploy create -t ~/my-template.json -e my-env -n test-stack -a arg1=val1 -a arg2=vol2
|
32
|
-
|
33
|
-
You must setup a simple_deploy.yaml file in your home directory. Format as follows:
|
34
|
-
|
35
|
-
artifacts:
|
36
|
-
chef_repo:
|
37
|
-
domain: app_specific_domain
|
38
|
-
bucket_prefix: chef-bucket-prefix
|
39
|
-
app:
|
40
|
-
domain: app_specific_app
|
41
|
-
bucket_prefix: app-bucket-prefix
|
42
|
-
cookbooks:
|
43
|
-
domain: app_specific_cookbooks
|
44
|
-
bucket_prefix: cookbooks-bucket-prefix
|
45
|
-
|
46
|
-
environments:
|
47
|
-
preprod_shared_us_west_1:
|
48
|
-
access_key: XXXXXXXXXXXXXXXXXXX
|
49
|
-
secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
50
|
-
region: us-west-1
|
51
|
-
infrastructure_us_west_1:
|
52
|
-
access_key: XXXXXXXXXXXXXXXXXXX
|
53
|
-
secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
54
|
-
region: us-west-1
|
55
|
-
infrastructure_us_west_2:
|
56
|
-
access_key: XXXXXXXXXXXXXXXXXXX
|
57
|
-
secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
58
|
-
region: us-west-2
|
59
|
-
|
60
|
-
Bucket prefixes will append -us-west-1 (or appropriate region) when deploying based on the environment.
|
23
|
+
cmd = ARGV.shift
|
61
24
|
|
62
|
-
|
63
|
-
|
64
|
-
The domain is the specific domain that is set when the artifact is created by heirloom.
|
65
|
-
|
66
|
-
EOS
|
67
|
-
opt :help, "Display Help"
|
68
|
-
opt :attributes, "= seperated attribute and it's value", :type => :string,
|
69
|
-
:multi => true
|
70
|
-
opt :environment, "Set the target environment", :type => :string
|
71
|
-
opt :force, "Force a deployment to proceed"
|
72
|
-
opt :count, "Count of events returned.", :type => :integer,
|
73
|
-
:default => 3
|
74
|
-
opt :log_level, "Log level to output. Valid levels: debug, info, warn, error", :type => :string,
|
75
|
-
:default => 'info'
|
76
|
-
opt :name, "Stack name to manage", :type => :string
|
77
|
-
opt :template, "Path to the template file", :type => :string
|
78
|
-
end
|
79
|
-
|
80
|
-
@cmd = ARGV.shift
|
81
|
-
|
82
|
-
unless @cmd
|
25
|
+
unless cmd
|
83
26
|
puts "\nPlease specify a command.\n"
|
84
27
|
exit 1
|
85
28
|
end
|
86
29
|
|
87
|
-
|
88
|
-
|
89
|
-
unless @cmd == 'environments'
|
90
|
-
|
91
|
-
environments = Config.new.environments
|
92
|
-
unless environment_provided?
|
93
|
-
puts "\nPlease specify an environment.\n\n"
|
94
|
-
environments.keys.each { |e| puts e }
|
95
|
-
exit 1
|
96
|
-
end
|
97
|
-
|
98
|
-
unless environments.include? @opts[:environment]
|
99
|
-
puts "\nEnvironment #{@opts[:environment]} not found.\n"
|
100
|
-
exit 1
|
101
|
-
end
|
102
|
-
|
103
|
-
@config = Config.new.environment @opts[:environment]
|
104
|
-
end
|
105
|
-
|
106
|
-
@stacks = Stackster::StackLister.new(:config => @config).all.sort
|
107
|
-
|
108
|
-
|
109
|
-
case @cmd
|
110
|
-
when 'ssh'
|
111
|
-
@log_level = 'warn'
|
112
|
-
else
|
113
|
-
@log_level = 'info'
|
114
|
-
end
|
115
|
-
|
116
|
-
@log_level = @opts[:log_level] if @opts[:log_level]
|
117
|
-
|
118
|
-
@logger = SimpleDeployLogger.new :log_level => @log_level
|
119
|
-
|
120
|
-
case @cmd
|
121
|
-
when 'create', 'delete', 'deploy', 'destroy', 'instances',
|
122
|
-
'status', 'attributes', 'events', 'resources',
|
123
|
-
'outputs', 'template', 'update', 'parameters',
|
124
|
-
'ssh'
|
125
|
-
|
126
|
-
@stack = Stack.new :environment => @opts[:environment],
|
127
|
-
:name => @opts[:name],
|
128
|
-
:config => @config,
|
129
|
-
:logger => @logger
|
130
|
-
end
|
131
|
-
|
132
|
-
case @cmd
|
30
|
+
case cmd
|
133
31
|
when 'attributes'
|
134
|
-
|
32
|
+
CLI::Attributes.new.show
|
135
33
|
when 'create'
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
when 'delete', 'destroy'
|
140
|
-
@stack.destroy
|
141
|
-
@logger.info "#{@opts[:name]} destroyed."
|
34
|
+
CLI::Create.new.create
|
35
|
+
when 'destroy', 'delete'
|
36
|
+
CLI::Destroy.new.destroy
|
142
37
|
when 'deploy'
|
143
|
-
|
144
|
-
@stack.deploy @opts[:force]
|
38
|
+
CLI::Deploy.new.deploy
|
145
39
|
when 'environments'
|
146
|
-
|
147
|
-
when '
|
148
|
-
|
149
|
-
@logger.info "#{@opts[:name]} updated."
|
40
|
+
CLI::List.new.environments
|
41
|
+
when 'events'
|
42
|
+
CLI::Events.new.show
|
150
43
|
when 'instances'
|
151
|
-
|
44
|
+
CLI::Instances.new.list
|
152
45
|
when 'list'
|
153
|
-
|
46
|
+
CLI::List.new.stacks
|
47
|
+
when 'outputs'
|
48
|
+
CLI::Outputs.new.show
|
49
|
+
when 'parameters'
|
50
|
+
CLI::Parameters.new.show
|
51
|
+
when 'resources'
|
52
|
+
CLI::Resources.new.show
|
53
|
+
when 'status'
|
54
|
+
CLI::Status.new.show
|
154
55
|
when 'template'
|
155
|
-
|
156
|
-
when 'outputs', 'resources', 'status', 'parameters'
|
157
|
-
puts (@stack.send @cmd.to_sym).to_yaml
|
56
|
+
CLI::Template.new.show
|
158
57
|
when 'ssh'
|
159
|
-
|
160
|
-
when '
|
161
|
-
|
58
|
+
CLI::SSH.new.show
|
59
|
+
when 'update'
|
60
|
+
CLI::Update.new.update
|
61
|
+
when '-h'
|
62
|
+
puts "simple_deploy [attributes|create|destroy|environments|events|instances|list|template|outputs|parameters|resources|ssh|status|update]"
|
63
|
+
puts "Append -h for help on specific subcommand."
|
162
64
|
else
|
163
|
-
puts "Unknown command
|
65
|
+
puts "Unknown command: '#{cmd}'."
|
66
|
+
puts "simple_deploy [attributes|create|destroy|environments|events|instances|list|template|outputs|parameters|resources|ssh|status|update]"
|
67
|
+
puts "Append -h for help on specific subcommand."
|
164
68
|
end
|
165
69
|
end
|
166
70
|
|
@@ -40,6 +40,7 @@ module SimpleDeploy
|
|
40
40
|
get_artifact_endpoints.each_pair do |k,v|
|
41
41
|
cmd += "#{k}=#{v} "
|
42
42
|
end
|
43
|
+
cmd += "PRIMARY=#{primary_instance} "
|
43
44
|
cmd += @deploy_script
|
44
45
|
|
45
46
|
@logger.info "Executing '#{cmd}.'"
|
@@ -48,6 +49,10 @@ module SimpleDeploy
|
|
48
49
|
end"
|
49
50
|
end
|
50
51
|
|
52
|
+
def primary_instance
|
53
|
+
@instances.first
|
54
|
+
end
|
55
|
+
|
51
56
|
def get_artifact_endpoints
|
52
57
|
h = {}
|
53
58
|
@config.artifacts.each do |artifact|
|
@@ -65,7 +70,7 @@ module SimpleDeploy
|
|
65
70
|
end
|
66
71
|
|
67
72
|
def ssh_options
|
68
|
-
@logger.
|
73
|
+
@logger.debug "Setting key to #{@ssh_key}."
|
69
74
|
{
|
70
75
|
:keys => @ssh_key,
|
71
76
|
:paranoid => false
|
@@ -75,7 +80,7 @@ module SimpleDeploy
|
|
75
80
|
def create_deployment
|
76
81
|
@deployment = Capistrano::Configuration.new
|
77
82
|
if @ssh_user
|
78
|
-
@logger.
|
83
|
+
@logger.debug "Setting user to #{@ssh_user}."
|
79
84
|
@deployment.set :user, @ssh_user
|
80
85
|
end
|
81
86
|
|
@@ -89,7 +94,7 @@ module SimpleDeploy
|
|
89
94
|
@deployment.variables[:ssh_options] = ssh_options
|
90
95
|
|
91
96
|
@instances.each do |i|
|
92
|
-
@logger.
|
97
|
+
@logger.debug "Deploying to instance #{i}."
|
93
98
|
@deployment.server i, :instances
|
94
99
|
end
|
95
100
|
end
|
data/lib/simple_deploy/stack.rb
CHANGED
@@ -20,17 +20,21 @@ module SimpleDeploy
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def update(args)
|
23
|
+
@logger.info "Updating #{@name}."
|
23
24
|
stack.update :attributes => stack_attribute_formater.updated_attributes(args[:attributes])
|
25
|
+
@logger.info "Update complete for #{@name}."
|
24
26
|
end
|
25
27
|
|
26
28
|
# To Do: Abstract deployment into it's own class
|
27
29
|
# Pass in required stack objects for attribut mgmt
|
28
30
|
def deploy(force = false)
|
29
|
-
@logger.info "
|
31
|
+
@logger.info "Deploying to #{@name}."
|
32
|
+
@logger.debug "Checking deployment status for #{@name}."
|
30
33
|
if deployment_in_progress?
|
31
|
-
@logger.info "Deployment in progress."
|
34
|
+
@logger.info "Deployment in progress for #{@name}."
|
32
35
|
@logger.info "Started by #{attributes['deployment_user']}@#{attributes['deployment_datetime']}."
|
33
36
|
if force
|
37
|
+
@logger.info "Forcing. Clearing deployment status."
|
34
38
|
clear_deployment_status
|
35
39
|
else
|
36
40
|
@logger.error "Exiting due to existing deployment."
|
@@ -38,11 +42,12 @@ module SimpleDeploy
|
|
38
42
|
exit 1
|
39
43
|
end
|
40
44
|
else
|
41
|
-
@logger.
|
45
|
+
@logger.debug "No other deployments in progress for #{@name}."
|
42
46
|
end
|
43
47
|
set_deployment_in_progress
|
44
48
|
deployment.execute
|
45
49
|
clear_deployment_status
|
50
|
+
@logger.info "Deploy completed succesfully for #{@name}."
|
46
51
|
end
|
47
52
|
|
48
53
|
def ssh
|
@@ -54,19 +59,20 @@ module SimpleDeploy
|
|
54
59
|
end
|
55
60
|
|
56
61
|
def set_deployment_in_progress
|
57
|
-
@logger.
|
62
|
+
@logger.debug "Setting deployment in progress by #{ssh_user} for #{@name}."
|
58
63
|
stack.update :attributes => [ { 'deployment_in_progress' => 'true',
|
59
64
|
'deployment_user' => ssh_user,
|
60
65
|
'deployment_datetime' => Time.now.to_s } ]
|
61
66
|
end
|
62
67
|
|
63
68
|
def clear_deployment_status
|
64
|
-
@logger.
|
69
|
+
@logger.debug "Clearing deployment status for #{@name}."
|
65
70
|
stack.update :attributes => [ { 'deployment_in_progress' => '' } ]
|
66
71
|
end
|
67
72
|
|
68
73
|
def destroy
|
69
74
|
stack.destroy
|
75
|
+
@logger.info "#{@name} destroyed."
|
70
76
|
end
|
71
77
|
|
72
78
|
def events(limit)
|
data/simple_deploy.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70136111742480 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70136111742480
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: capistrano
|
27
|
-
requirement: &
|
27
|
+
requirement: &70136111740700 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,21 +32,21 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70136111740700
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: stackster
|
38
|
-
requirement: &
|
38
|
+
requirement: &70136111738160 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - =
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.2.
|
43
|
+
version: 0.2.7
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70136111738160
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: trollop
|
49
|
-
requirement: &
|
49
|
+
requirement: &70136111737680 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70136111737680
|
58
58
|
description: I am designed to deploy artifacts uploaded by Heirloom
|
59
59
|
email:
|
60
60
|
- brett@weav.net
|
@@ -74,7 +74,21 @@ files:
|
|
74
74
|
- lib/simple_deploy.rb
|
75
75
|
- lib/simple_deploy/artifact.rb
|
76
76
|
- lib/simple_deploy/cli.rb
|
77
|
-
- lib/simple_deploy/cli/
|
77
|
+
- lib/simple_deploy/cli/attributes.rb
|
78
|
+
- lib/simple_deploy/cli/create.rb
|
79
|
+
- lib/simple_deploy/cli/deploy.rb
|
80
|
+
- lib/simple_deploy/cli/destroy.rb
|
81
|
+
- lib/simple_deploy/cli/events.rb
|
82
|
+
- lib/simple_deploy/cli/instances.rb
|
83
|
+
- lib/simple_deploy/cli/list.rb
|
84
|
+
- lib/simple_deploy/cli/outputs.rb
|
85
|
+
- lib/simple_deploy/cli/parameters.rb
|
86
|
+
- lib/simple_deploy/cli/resources.rb
|
87
|
+
- lib/simple_deploy/cli/shared.rb
|
88
|
+
- lib/simple_deploy/cli/ssh.rb
|
89
|
+
- lib/simple_deploy/cli/status.rb
|
90
|
+
- lib/simple_deploy/cli/template.rb
|
91
|
+
- lib/simple_deploy/cli/update.rb
|
78
92
|
- lib/simple_deploy/config.rb
|
79
93
|
- lib/simple_deploy/logger.rb
|
80
94
|
- lib/simple_deploy/stack.rb
|
@@ -101,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
115
|
version: '0'
|
102
116
|
segments:
|
103
117
|
- 0
|
104
|
-
hash:
|
118
|
+
hash: 2716701710085273471
|
105
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
120
|
none: false
|
107
121
|
requirements:
|
@@ -110,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
124
|
version: '0'
|
111
125
|
segments:
|
112
126
|
- 0
|
113
|
-
hash:
|
127
|
+
hash: 2716701710085273471
|
114
128
|
requirements: []
|
115
129
|
rubyforge_project: simple_deploy
|
116
130
|
rubygems_version: 1.8.16
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module SimpleDeploy
|
2
|
-
module CLI
|
3
|
-
def self.attributes
|
4
|
-
attrs = []
|
5
|
-
read_attributes.each do |attribs|
|
6
|
-
key = attribs.split('=').first.gsub(/\s+/, "")
|
7
|
-
value = attribs.gsub(/^.+?=/, '')
|
8
|
-
@logger.info "Read #{key}=#{value}"
|
9
|
-
attrs << { key => value }
|
10
|
-
end
|
11
|
-
attrs
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.read_attributes
|
15
|
-
@opts[:attributes].nil? ? [] : @opts[:attributes]
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.environment_provided?
|
19
|
-
@opts[:environment].nil? != true
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|