simple_deploy 0.3.7 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|