mccloud 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +13 -8
- data/.rvmrc +2 -0
- data/Gemfile +10 -1
- data/Guardfile +10 -0
- data/README.md +453 -89
- data/Rakefile +29 -2
- data/bin/mccloud +17 -116
- data/bin/mccloud_old +159 -0
- data/doc/old-README.md +81 -0
- data/lib/mccloud/cli.rb +55 -0
- data/lib/mccloud/command/balance.rb +21 -0
- data/lib/mccloud/command/base.rb +106 -0
- data/lib/mccloud/command/bootstrap.rb +12 -24
- data/lib/mccloud/command/define.rb +18 -0
- data/lib/mccloud/command/destroy.rb +12 -13
- data/lib/mccloud/command/forward.rb +29 -0
- data/lib/mccloud/command/group_base.rb +107 -0
- data/lib/mccloud/command/halt.rb +11 -13
- data/lib/mccloud/command/helpers.rb +13 -0
- data/lib/mccloud/command/image.rb +37 -0
- data/lib/mccloud/command/init.rb +8 -504
- data/lib/mccloud/command/init_vagrant.rb +14 -0
- data/lib/mccloud/command/ip.rb +32 -0
- data/lib/mccloud/command/ips.rb +22 -0
- data/lib/mccloud/command/keypair.rb +27 -0
- data/lib/mccloud/command/keystore.rb +29 -0
- data/lib/mccloud/command/lb.rb +38 -0
- data/lib/mccloud/command/named_base.rb +14 -0
- data/lib/mccloud/command/package.rb +17 -0
- data/lib/mccloud/command/provider.rb +30 -0
- data/lib/mccloud/command/provision.rb +10 -24
- data/lib/mccloud/command/reload.rb +12 -6
- data/lib/mccloud/command/sorry.rb +20 -0
- data/lib/mccloud/command/ssh.rb +11 -45
- data/lib/mccloud/command/status.rb +14 -35
- data/lib/mccloud/command/template.rb +16 -0
- data/lib/mccloud/command/undefine.rb +23 -0
- data/lib/mccloud/command/up.rb +8 -62
- data/lib/mccloud/command/version.rb +14 -0
- data/lib/mccloud/command/vm.rb +27 -0
- data/lib/mccloud/command.rb +36 -0
- data/lib/mccloud/config/collection.rb +107 -0
- data/lib/mccloud/config/component.rb +20 -0
- data/lib/mccloud/config/definition.rb +35 -0
- data/lib/mccloud/config/keypair.rb +36 -0
- data/lib/mccloud/config/mccloud.rb +39 -0
- data/lib/mccloud/config/provider.rb +55 -0
- data/lib/mccloud/config/template.rb +35 -0
- data/lib/mccloud/config.rb +128 -41
- data/lib/mccloud/definition.rb +104 -0
- data/lib/mccloud/definitions.rb +91 -0
- data/lib/mccloud/environment.rb +222 -0
- data/lib/mccloud/error.rb +20 -0
- data/lib/mccloud/generator.rb +49 -0
- data/lib/mccloud/keypair.rb +48 -0
- data/lib/mccloud/mccloudfile.rb +78 -0
- data/lib/mccloud/provider/aws/image.rb +107 -0
- data/lib/mccloud/provider/aws/ip/associate.rb +33 -0
- data/lib/mccloud/provider/aws/ip.rb +31 -0
- data/lib/mccloud/provider/aws/keystore.rb +21 -0
- data/lib/mccloud/provider/aws/lb/associate.rb +53 -0
- data/lib/mccloud/provider/aws/lb/sorry.rb +14 -0
- data/lib/mccloud/provider/aws/lb.rb +37 -0
- data/lib/mccloud/provider/aws/provider/image_destroy.rb +27 -0
- data/lib/mccloud/provider/aws/provider/image_list.rb +19 -0
- data/lib/mccloud/provider/aws/provider/ip_list.rb +17 -0
- data/lib/mccloud/provider/aws/provider/keystore_list.rb +22 -0
- data/lib/mccloud/provider/aws/provider/keystore_sync.rb +62 -0
- data/lib/mccloud/provider/aws/provider/lb_list.rb +21 -0
- data/lib/mccloud/provider/aws/provider/old_deregister.rb +39 -0
- data/lib/mccloud/provider/aws/provider/old_flavors.rb +18 -0
- data/lib/mccloud/provider/aws/provider/old_ips.rb +42 -0
- data/lib/mccloud/provider/aws/provider/old_loadbalance.rb +46 -0
- data/lib/mccloud/provider/aws/provider/old_package.rb +75 -0
- data/lib/mccloud/provider/aws/provider/old_sorry.rb +51 -0
- data/lib/mccloud/provider/aws/provider/old_status.rb +119 -0
- data/lib/mccloud/provider/aws/provider/old_validate.rb +51 -0
- data/lib/mccloud/provider/aws/provider/status.rb +58 -0
- data/lib/mccloud/provider/aws/provider.rb +219 -0
- data/lib/mccloud/provider/aws/stack/old_destroy.rb +43 -0
- data/lib/mccloud/provider/aws/stack/old_up.rb +59 -0
- data/lib/mccloud/provider/aws/stack/old_vm.rb +98 -0
- data/lib/mccloud/provider/aws/stack.rb +243 -0
- data/lib/mccloud/provider/aws/vm/bootstrap.rb +13 -0
- data/lib/mccloud/provider/aws/vm/destroy.rb +21 -0
- data/lib/mccloud/provider/aws/vm/forward.rb +17 -0
- data/lib/mccloud/provider/aws/vm/halt.rb +24 -0
- data/lib/mccloud/provider/aws/vm/package.rb +63 -0
- data/lib/mccloud/provider/aws/vm/provision.rb +25 -0
- data/lib/mccloud/provider/aws/vm/reload.rb +13 -0
- data/lib/mccloud/provider/aws/vm/resume.rb +0 -0
- data/lib/mccloud/provider/aws/vm/rsync.rb +11 -0
- data/lib/mccloud/provider/aws/vm/scp.rb +21 -0
- data/lib/mccloud/provider/aws/vm/ssh.rb +11 -0
- data/lib/mccloud/provider/aws/vm/suspend.rb +0 -0
- data/lib/mccloud/provider/aws/vm/up.rb +133 -0
- data/lib/mccloud/provider/aws/vm.rb +123 -0
- data/lib/mccloud/{type → provider/core}/forwarding.rb +6 -3
- data/lib/mccloud/provider/core/ip.rb +24 -0
- data/lib/mccloud/provider/core/keystore.rb +23 -0
- data/lib/mccloud/provider/core/lb.rb +23 -0
- data/lib/mccloud/provider/core/provider.rb +99 -0
- data/lib/mccloud/provider/core/vm/old_halt.rb +19 -0
- data/lib/mccloud/{generators.rb → provider/core/vm/old_init.rb} +0 -0
- data/lib/mccloud/provider/core/vm/old_multi.rb +60 -0
- data/lib/mccloud/provider/core/vm/old_reload.rb +11 -0
- data/lib/mccloud/{command/server.rb → provider/core/vm/old_server.rb} +2 -2
- data/lib/mccloud/provider/core/vm/old_ssh_command.rb +21 -0
- data/lib/mccloud/{command/suspend.rb → provider/core/vm/old_suspend.rb} +2 -2
- data/lib/mccloud/provider/core/vm/old_wizard.rb +511 -0
- data/lib/mccloud/provider/core/vm/rsync.rb +67 -0
- data/lib/mccloud/provider/core/vm/ssh.rb +137 -0
- data/lib/mccloud/provider/core/vm/ssh_bootstrap.rb +62 -0
- data/lib/mccloud/provider/core/vm/ssh_forward.rb +47 -0
- data/lib/mccloud/provider/core/vm.rb +121 -0
- data/lib/mccloud/provider/fog/fogconfig.rb +44 -0
- data/lib/mccloud/provider/fog/provider.rb +46 -0
- data/lib/mccloud/provider/host/provider/status.rb +12 -0
- data/lib/mccloud/provider/host/provider.rb +85 -0
- data/lib/mccloud/provider/host/vm/bootstrap.rb +11 -0
- data/lib/mccloud/provider/host/vm/forward.rb +12 -0
- data/lib/mccloud/provider/host/vm/provision.rb +19 -0
- data/lib/mccloud/provider/host/vm/scp.rb +35 -0
- data/lib/mccloud/provider/host/vm/ssh.rb +11 -0
- data/lib/mccloud/provider/host/vm.rb +28 -0
- data/lib/mccloud/provider/libvirt/provider/status.rb +43 -0
- data/lib/mccloud/provider/libvirt/provider.rb +96 -0
- data/lib/mccloud/provider/libvirt/vm/bootstrap.rb +17 -0
- data/lib/mccloud/provider/libvirt/vm/destroy.rb +33 -0
- data/lib/mccloud/provider/libvirt/vm/forward.rb +12 -0
- data/lib/mccloud/provider/libvirt/vm/halt.rb +20 -0
- data/lib/mccloud/provider/libvirt/vm/provision.rb +25 -0
- data/lib/mccloud/provider/libvirt/vm/reload.rb +13 -0
- data/lib/mccloud/provider/libvirt/vm/rsync.rb +11 -0
- data/lib/mccloud/provider/libvirt/vm/scp.rb +15 -0
- data/lib/mccloud/provider/libvirt/vm/ssh.rb +11 -0
- data/lib/mccloud/provider/libvirt/vm/up.rb +65 -0
- data/lib/mccloud/provider/libvirt/vm.rb +67 -0
- data/lib/mccloud/provider/script/provider/status.rb +12 -0
- data/lib/mccloud/provider/script/provider.rb +125 -0
- data/lib/mccloud/provider/script/vm.rb +13 -0
- data/lib/mccloud/provider/vagrant/provider/status.rb +14 -0
- data/lib/mccloud/provider/vagrant/provider.rb +135 -0
- data/lib/mccloud/provider/vagrant/vm/destroy.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm/forward.rb +12 -0
- data/lib/mccloud/provider/vagrant/vm/halt.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm/provision.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm/reload.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm/resume.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm/ssh.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm/suspend.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm/up.rb +11 -0
- data/lib/mccloud/provider/vagrant/vm.rb +46 -0
- data/lib/mccloud/provider/vmfusion/provider/status.rb +24 -0
- data/lib/mccloud/provider/vmfusion/provider.rb +98 -0
- data/lib/mccloud/provider/vmfusion/vm/forward.rb +12 -0
- data/lib/mccloud/provider/vmfusion/vm/halt.rb +11 -0
- data/lib/mccloud/provider/vmfusion/vm/resume.rb +11 -0
- data/lib/mccloud/provider/vmfusion/vm/suspend.rb +11 -0
- data/lib/mccloud/provider/vmfusion/vm/up.rb +11 -0
- data/lib/mccloud/provider/vmfusion/vm.rb +47 -0
- data/lib/mccloud/provisioner/chef_solo.rb +193 -79
- data/lib/mccloud/provisioner/puppet.rb +205 -32
- data/lib/mccloud/provisioner/shell.rb +48 -0
- data/lib/mccloud/template.rb +74 -0
- data/lib/mccloud/templates/Mccloudfile.erb +212 -39
- data/lib/mccloud/templates/{bootstrap-centos-rubysource-1.8.7.sh → bootstrap/bootstrap-centos-rubysource-1.8.7.sh} +0 -0
- data/lib/mccloud/templates/{bootstrap-centos-rvm-1.8.7.sh → bootstrap/bootstrap-centos-rvm-1.8.7.sh} +0 -0
- data/lib/mccloud/templates/{bootstrap-centos-rvm-1.9.2.sh → bootstrap/bootstrap-centos-rvm-1.9.2.sh} +0 -0
- data/lib/mccloud/templates/{bootstrap-centos-rvm-ree-1.8.7.sh → bootstrap/bootstrap-centos-rvm-ree-1.8.7.sh} +0 -0
- data/lib/mccloud/templates/bootstrap/bootstrap-chef-omnibus.sh +8 -0
- data/lib/mccloud/templates/{bootstrap-custom.sh → bootstrap/bootstrap-custom.sh} +0 -0
- data/lib/mccloud/templates/{bootstrap-ubuntu-rvm-1.8.7.sh → bootstrap/bootstrap-ubuntu-rvm-1.8.7.sh} +0 -0
- data/lib/mccloud/templates/{bootstrap-ubuntu-system.sh → bootstrap/bootstrap-ubuntu-system.sh} +0 -0
- data/lib/mccloud/templates/locales/en.yml +30 -0
- data/lib/mccloud/templates/vm.erb +9 -0
- data/lib/mccloud/templates.rb +35 -0
- data/lib/mccloud/ui.rb +82 -0
- data/lib/mccloud/util/rostruct.rb +24 -0
- data/lib/mccloud/util/rsync.rb +12 -8
- data/lib/mccloud/util/ssh.rb +18 -12
- data/lib/mccloud/util/sshkey.rb +3 -2
- data/lib/mccloud/version.rb +4 -1
- data/lib/mccloud/vm.rb +62 -0
- data/lib/mccloud/vms.rb +60 -0
- data/lib/mccloud.rb +24 -1
- data/mccloud.gemspec +12 -3
- data/samples/Mccloudfile +117 -0
- data/samples/bitnami_drupal_cloud.json +102 -0
- data/samples/bootstrap-ubuntu-system.sh +16 -0
- data/samples/mcollective_cloud.json +198 -0
- data/samples/stack_cloud.json +93 -0
- data/samples/stacks.txt +5 -0
- data/spec/commands/define_spec.rb +96 -0
- data/spec/commands/init_spec.rb +30 -0
- data/spec/environment/environment_spec.rb +26 -0
- data/spec/generator_spec.rb +30 -0
- data/spec/keypair_spec.rb +38 -0
- data/spec/provider/aws/credentials_spec.rb +37 -0
- data/spec/provisioner/puppet/Mccloud-puppet-test +32 -0
- data/spec/provisioner/puppet/puppet_spec.rb +110 -0
- data/spec/spec_helper.rb +0 -0
- data/templates/ubuntu-10.10-server-amd64/aws.json +3 -0
- data/templates/ubuntu-10.10-server-amd64/bootstrap.sh +16 -0
- data/templates/ubuntu-10.10-server-amd64/definition.old +51 -0
- data/templates/ubuntu-10.10-server-amd64/mccloud.erb +6 -0
- metadata +293 -67
- data/Gemfile.lock +0 -53
- data/lib/mccloud/command/boot.rb +0 -12
- data/lib/mccloud/command/command.rb +0 -21
- data/lib/mccloud/command/multi.rb +0 -60
- data/lib/mccloud/configurator/lb.rb +0 -26
- data/lib/mccloud/configurator/mccloud.rb +0 -33
- data/lib/mccloud/configurator/vm.rb +0 -37
- data/lib/mccloud/provisioner/vagrant/base.rb +0 -63
- data/lib/mccloud/provisioner/vagrant/chef.rb +0 -130
- data/lib/mccloud/provisioner/vagrant/chef_server.rb +0 -103
- data/lib/mccloud/provisioner/vagrant/chef_solo.rb +0 -142
- data/lib/mccloud/provisioner/vagrant/puppet.rb +0 -137
- data/lib/mccloud/provisioner/vagrant/puppet_server.rb +0 -55
- data/lib/mccloud/provisioner/vagrant/shell.rb +0 -52
- data/lib/mccloud/session.rb +0 -206
- data/lib/mccloud/type/lb.rb +0 -34
- data/lib/mccloud/type/vm.rb +0 -47
- data/lib/mccloud/util/iterator.rb +0 -20
data/lib/mccloud/util/sshkey.rb
CHANGED
@@ -7,7 +7,7 @@ require 'digest/md5'
|
|
7
7
|
|
8
8
|
module Mccloud
|
9
9
|
module Util
|
10
|
-
|
10
|
+
|
11
11
|
class SSHKey
|
12
12
|
|
13
13
|
def self.generate(options = {})
|
@@ -18,11 +18,12 @@ class SSHKey
|
|
18
18
|
|
19
19
|
def initialize(private_key, options = {})
|
20
20
|
@key_object = OpenSSL::PKey::RSA.new(private_key)
|
21
|
+
|
21
22
|
@comment = options[:comment] || ""
|
22
23
|
@rsa_private_key = @key_object.to_pem
|
23
24
|
@rsa_public_key = @key_object.public_key.to_pem
|
24
25
|
raw_ssh_public_key = ssh_public_key_conversion
|
25
|
-
|
26
|
+
|
26
27
|
# @ssh_public_key = ["ssh-rsa", Base64.strict_encode64(raw_ssh_public_key), @comment].join(" ").strip
|
27
28
|
|
28
29
|
@ssh_public_key = ["ssh-rsa", [raw_ssh_public_key].pack("m0").gsub(/\n/,''), @comment].join(" ").strip
|
data/lib/mccloud/version.rb
CHANGED
data/lib/mccloud/vm.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
module Mccloud
|
2
|
+
|
3
|
+
class Vm
|
4
|
+
|
5
|
+
attr_accessor :name
|
6
|
+
attr_reader :env
|
7
|
+
attr_accessor :definition
|
8
|
+
|
9
|
+
def initialize(name,env)
|
10
|
+
@name=name
|
11
|
+
@env=env
|
12
|
+
end
|
13
|
+
|
14
|
+
def exists?
|
15
|
+
File.exists?(self.path)
|
16
|
+
end
|
17
|
+
|
18
|
+
def path
|
19
|
+
File.join(@env.config.mccloud.vm_path,@name+".rb")
|
20
|
+
end
|
21
|
+
|
22
|
+
def load!
|
23
|
+
self.validate
|
24
|
+
|
25
|
+
content=File.read(self.path)
|
26
|
+
mccloud_configurator=env.config
|
27
|
+
content.gsub!("Mccloud::Config.run","mccloud_configurator.define")
|
28
|
+
|
29
|
+
begin
|
30
|
+
env.config.instance_eval(content)
|
31
|
+
rescue Error => ex
|
32
|
+
raise ::Mccloud::Error, "Error reading vm from file #{definition_file}#{ex}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def create
|
37
|
+
begin
|
38
|
+
unless self.exists?
|
39
|
+
File.open(self.path,'w'){ |f| f.write(self.to_template)}
|
40
|
+
else
|
41
|
+
raise ::Mccloud::Error, "VM file #{self.path} already exists"
|
42
|
+
end
|
43
|
+
rescue Error => ex
|
44
|
+
raise ::Mccloud::Error, "Error writing vm file"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def to_template
|
49
|
+
result=""
|
50
|
+
filename=File.expand_path(File.join(File.dirname(__FILE__),'templates','vm.erb'))
|
51
|
+
env.logger.info "Opening vm template file #{@file}"
|
52
|
+
template=File.new(filename).read
|
53
|
+
result=ERB.new(template).result(binding)
|
54
|
+
return result
|
55
|
+
end
|
56
|
+
|
57
|
+
def validate
|
58
|
+
raise ::Mccloud::Error, "Vm #{@name} does not yet exist" unless self.exists?
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
data/lib/mccloud/vms.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'mccloud/vm'
|
2
|
+
module Mccloud
|
3
|
+
class Vms < Hash
|
4
|
+
|
5
|
+
attr_reader :env
|
6
|
+
|
7
|
+
def initialize(env)
|
8
|
+
@env=env
|
9
|
+
end
|
10
|
+
|
11
|
+
def define(name,definitionname)
|
12
|
+
# Check if definition exists
|
13
|
+
unless env.config.definitions.registered?(definitionname)
|
14
|
+
raise ::Mccloud::Error, "Definition #{definitionname} does not exist"
|
15
|
+
end
|
16
|
+
# Create the vms dir if needed
|
17
|
+
unless self.exists?
|
18
|
+
self.create
|
19
|
+
end
|
20
|
+
|
21
|
+
vm=::Mccloud::Vm.new(name,env)
|
22
|
+
unless vm.exists?
|
23
|
+
vm.definition=env.config.definitions[definitionname]
|
24
|
+
vm.create
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def load!
|
29
|
+
if self.exists?
|
30
|
+
Dir[File.join(self.path,"**.rb")].each do |dir|
|
31
|
+
name=File.basename(dir,'.rb')
|
32
|
+
vm=::Mccloud::Vm.new(name,env)
|
33
|
+
vm.load!
|
34
|
+
end
|
35
|
+
else
|
36
|
+
env.logger.info "Skipping loading of vms as the vm_path does exist"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def path
|
41
|
+
@env.config.mccloud.vm_path
|
42
|
+
end
|
43
|
+
|
44
|
+
def exists?
|
45
|
+
File.directory?(self.path)
|
46
|
+
end
|
47
|
+
|
48
|
+
def create
|
49
|
+
begin
|
50
|
+
unless self.exists?
|
51
|
+
env.logger.info "Creating the vms directory #{self.path} as it doesn't exist yet"
|
52
|
+
FileUtils.mkdir(self.path)
|
53
|
+
end
|
54
|
+
rescue Exception => ex
|
55
|
+
raise ::Mccloud::Error, "Error creating vms directory #{self.path}: \n#{ex}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
data/lib/mccloud.rb
CHANGED
@@ -1,2 +1,25 @@
|
|
1
|
-
require 'fog'
|
2
1
|
require 'json'
|
2
|
+
|
3
|
+
require 'i18n'
|
4
|
+
require 'openssl'
|
5
|
+
require 'pathname'
|
6
|
+
|
7
|
+
module Mccloud
|
8
|
+
# The source root is the path to the root directory of
|
9
|
+
# the Mccloud gem.
|
10
|
+
def self.source_root
|
11
|
+
@source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# # Default I18n to load the en locale
|
16
|
+
I18n.load_path << File.expand_path("lib/mccloud/templates/locales/en.yml", Mccloud.source_root)
|
17
|
+
|
18
|
+
# Load the things which must be loaded before anything else
|
19
|
+
require 'mccloud/cli'
|
20
|
+
require 'mccloud/ui'
|
21
|
+
require 'mccloud/command'
|
22
|
+
require 'mccloud/error'
|
23
|
+
#require 'mccloud/logger'
|
24
|
+
require 'mccloud/environment'
|
25
|
+
require 'mccloud/version'
|
data/mccloud.gemspec
CHANGED
@@ -14,22 +14,31 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.required_rubygems_version = ">= 1.3.6"
|
15
15
|
s.rubyforge_project = "mccloud"
|
16
16
|
|
17
|
-
s.add_dependency "net-ssh", "~> 2.
|
17
|
+
s.add_dependency "net-ssh", "~> 2.2.2"
|
18
18
|
#s.add_dependency "sshkey"
|
19
19
|
s.add_dependency "net-scp"
|
20
|
-
|
20
|
+
s.add_dependency "fog", ">= 1.1.0"
|
21
|
+
|
21
22
|
s.add_dependency "json"
|
23
|
+
s.add_dependency "ansi"
|
24
|
+
|
22
25
|
#s.add_dependency "templater"
|
23
26
|
s.add_dependency "popen4", "~> 0.1.2"
|
24
|
-
s.add_dependency "thor", "
|
27
|
+
s.add_dependency "thor", ">= 0.14.6"
|
25
28
|
s.add_dependency "highline", "~> 1.6.1"
|
26
29
|
#s.add_dependency "progressbar"
|
27
30
|
#s.add_development_dependency "cucumber", "0.8.5"
|
28
31
|
|
32
|
+
|
29
33
|
s.add_dependency "net-ssh-multi"
|
30
34
|
#s.add_dependency "rspec"
|
31
35
|
|
32
36
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
37
|
+
s.add_development_dependency("ruby-libvirt","~>0.4.0")
|
38
|
+
s.add_development_dependency("vagrant","~>0.8.1")
|
39
|
+
s.add_development_dependency("rake","~>0.9")
|
40
|
+
|
41
|
+
s.add_dependency "i18n"
|
33
42
|
|
34
43
|
s.files = `git ls-files`.split("\n")
|
35
44
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
data/samples/Mccloudfile
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
Mccloud::Config.run do |config|
|
2
|
+
# All Mccloud configuration is done here. For a detailed explanation
|
3
|
+
# and listing of configuration options, please view the documentation
|
4
|
+
# online.
|
5
|
+
|
6
|
+
config.mccloud.prefix="mccloud"
|
7
|
+
config.mccloud.environment="development"
|
8
|
+
config.mccloud.identity="patrick"
|
9
|
+
|
10
|
+
config.vm.define "backend" do |sqr_be_config|
|
11
|
+
sqr_be_config.vm.provider="AWS"
|
12
|
+
sqr_be_config.vm.provider_options={ :region => "eu-west-1"}
|
13
|
+
|
14
|
+
#admin_config.vm.provisioner=:chef_solo
|
15
|
+
sqr_be_config.vm.create_options={
|
16
|
+
# ID = "ami-e59ca991" = Ubuntu 10.10 - Maverick 64-bit (Canonical/EBS) - Euwest1
|
17
|
+
:image_id => "ami-e59ca991" ,
|
18
|
+
:flavor_id => "m1.large",
|
19
|
+
:groups => %w(mccloud-development-patrick-securitygroup),
|
20
|
+
:key_name => "mccloud-key-patrick",
|
21
|
+
:availability_zone => "eu-west-1a"
|
22
|
+
}
|
23
|
+
sqr_be_config.vm.forward_port("redis", 6379, 6379)
|
24
|
+
sqr_be_config.vm.forward_port("postgres", 5432, 5432)
|
25
|
+
sqr_be_config.vm.forward_port("sphinx", 9312, 9312)
|
26
|
+
sqr_be_config.vm.user="ubuntu"
|
27
|
+
sqr_be_config.vm.bootstrap="definitions/project-ubuntu/bootstrap-ubuntu-system.sh"
|
28
|
+
sqr_be_config.vm.key_name="mccloud-key-patrick"
|
29
|
+
sqr_be_config.vm.private_key="/Users/patrick/.ssh/mccloud_rsa"
|
30
|
+
sqr_be_config.vm.public_key="/Users/patrick/.ssh/mccloud_rsa.pub"
|
31
|
+
|
32
|
+
sqr_be_config.vm.provision :chef_solo do |chef|
|
33
|
+
chef.cookbooks_path = ["../project-chefrepo/cookbooks","../project-chefrepo/site-cookbooks"]
|
34
|
+
chef.log_level = "debug"
|
35
|
+
chef.add_recipe("myapp::backend")
|
36
|
+
chef.json.merge!({
|
37
|
+
:myapp => {
|
38
|
+
:redis_host_ip => "<%= private_ips['backend'] %>",
|
39
|
+
:postgres_host_ip => "<%= private_ips['backend'] %>",
|
40
|
+
:sphinx_host_ip => "<%= private_ips['backend'] %>"
|
41
|
+
}})
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
config.vm.define "frontend" do |sqr_fe_config|
|
48
|
+
|
49
|
+
sqr_fe_config.vm.provider="AWS"
|
50
|
+
sqr_fe_config.vm.provider_options={ :region => "eu-west-1"}
|
51
|
+
|
52
|
+
sqr_fe_config.vm.provisioner=:chef_solo
|
53
|
+
sqr_fe_config.vm.create_options={
|
54
|
+
# ID = "ami-e59ca991" = Ubuntu 10.10 - Maverick 64-bit (Canonical/EBS) - Euwest1
|
55
|
+
:image_id => "ami-e59ca991" ,
|
56
|
+
:flavor_id => "m1.large",
|
57
|
+
:groups => %w(mccloud-development-patrick-securitygroup),
|
58
|
+
:key_name => "mccloud-key-patrick",
|
59
|
+
:availability_zone => "eu-west-1a"
|
60
|
+
}
|
61
|
+
sqr_fe_config.vm.forward_port("http", 8080, 8080)
|
62
|
+
sqr_fe_config.vm.forward_port("http", 9000, 9000)
|
63
|
+
sqr_fe_config.vm.user="ubuntu"
|
64
|
+
sqr_fe_config.vm.bootstrap="definitions/project-ubuntu/bootstrap-ubuntu-system.sh"
|
65
|
+
sqr_fe_config.vm.key_name="mccloud-key-patrick"
|
66
|
+
sqr_fe_config.vm.private_key="/Users/patrick/.ssh/mccloud_rsa"
|
67
|
+
sqr_fe_config.vm.public_key="/Users/patrick/.ssh/mccloud_rsa.pub"
|
68
|
+
|
69
|
+
sqr_fe_config.vm.provision :chef_solo do |chef|
|
70
|
+
chef.cookbooks_path = ["../project-chefrepo/cookbooks","../project-chefrepo/site-cookbooks"]
|
71
|
+
chef.log_level = "debug"
|
72
|
+
chef.add_recipe("myapp::frontend")
|
73
|
+
chef.json.merge!({
|
74
|
+
:myapp => {
|
75
|
+
:redis_host_ip => "<%= private_ips['backend'] %>",
|
76
|
+
:postgres_host_ip => "<%= private_ips['backend'] %>",
|
77
|
+
:sphinx_host_ip => "<%= private_ips['backend'] %>"
|
78
|
+
|
79
|
+
}})
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
|
85
|
+
config.vm.define "logger" do |logger_config|
|
86
|
+
logger_config.vm.provider="AWS"
|
87
|
+
logger_config.vm.provider_options={ :region => "eu-west-1"}
|
88
|
+
|
89
|
+
#admin_config.vm.provisioner=:chef_solo
|
90
|
+
logger_config.vm.create_options={
|
91
|
+
# ID = "ami-e59ca991" = Ubuntu 10.10 - Maverick 64-bit (Canonical/EBS) - Euwest1
|
92
|
+
:image_id => "ami-476d5b33" ,
|
93
|
+
:flavor_id => "m1.large",
|
94
|
+
:groups => %w(mccloud-development-patrick-securitygroup),
|
95
|
+
:key_name => "mccloud-key-patrick",
|
96
|
+
:availability_zone => "eu-west-1a"
|
97
|
+
}
|
98
|
+
logger_config.vm.forward_port("http", 8080, 8080)
|
99
|
+
logger_config.vm.user="ubuntu"
|
100
|
+
logger_config.vm.bootstrap="definitions/project-ubuntu/bootstrap-ubuntu-system.sh"
|
101
|
+
logger_config.vm.key_name="mccloud-key-patrick"
|
102
|
+
logger_config.vm.private_key="/Users/patrick/.ssh/mccloud_rsa"
|
103
|
+
logger_config.vm.public_key="/Users/patrick/.ssh/mccloud_rsa.pub"
|
104
|
+
|
105
|
+
logger_config.vm.provision :chef_solo do |chef|
|
106
|
+
chef.cookbooks_path = ["../project-chefrepo/cookbooks","../project-chefrepo/site-cookbooks"]
|
107
|
+
chef.log_level = "debug"
|
108
|
+
chef.add_recipe("app_logger::default")
|
109
|
+
chef.json.merge!({
|
110
|
+
:app_logger => {
|
111
|
+
:redis_host_ip => "<%= private_ips['backend'] %>",
|
112
|
+
}})
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
{
|
2
|
+
"AWSTemplateFormatVersion" : "2010-09-09",
|
3
|
+
|
4
|
+
"Description" : "The BitNami Drupal 7.0: Drupal is a content management platform that allows an individual or community of users to easily publish, manage, and organize a wide variety of content on a website. In general, Drupal is used for community web portals, discussion sites, corporate web sites, intranet applications, personal web sites or blogs, aficionado sites, e-commerce applications, resource directories, and social networking sites. Drupal is easy to extend by plugging in one or more of the dozens of freely available modules. For more information, please visit: http://bitnami.org.",
|
5
|
+
|
6
|
+
"Parameters" : {
|
7
|
+
"BitnamiInstanceType" : {
|
8
|
+
"Default" : "m1.small",
|
9
|
+
"Type" : "String",
|
10
|
+
"Description" : "The type of EC2 instances: only t1.micro, m1.small and m1.medium supported"
|
11
|
+
},
|
12
|
+
"KeyName": {
|
13
|
+
"Description" : "Name of an existing EC2 KeyPair to enable SSH access",
|
14
|
+
"Type": "String",
|
15
|
+
"Default" : "default"
|
16
|
+
},
|
17
|
+
"BitnamiUser" : {
|
18
|
+
"Default" : "user",
|
19
|
+
"Type" : "String",
|
20
|
+
"Description" : "The BitNami Drupal user login"
|
21
|
+
},
|
22
|
+
"BitnamiPassword" : {
|
23
|
+
"Default" : "bitnami",
|
24
|
+
"Type" : "String",
|
25
|
+
"Description" : "The BitNami Drupal user password (minimum 6 characters, default value: bitnami )",
|
26
|
+
"NoEcho" : "TRUE"
|
27
|
+
},
|
28
|
+
"BitnamiEmail" : {
|
29
|
+
"Default" : "user@example.com",
|
30
|
+
"Description" : "The BitNami Drupal user email",
|
31
|
+
"Type" : "String"
|
32
|
+
},
|
33
|
+
"BitnamiUserName" : {
|
34
|
+
"Default" : "BitNami User",
|
35
|
+
"Description" : "The BitNami Drupal user full name",
|
36
|
+
"Type" : "String"
|
37
|
+
}
|
38
|
+
},
|
39
|
+
"Resources" : {
|
40
|
+
"BitnamiSecurityGroup" : {
|
41
|
+
"Type" : "AWS::EC2::SecurityGroup",
|
42
|
+
"Properties" : {
|
43
|
+
"GroupDescription" : "Allow HTTP/SSH to BitNami machine.",
|
44
|
+
"SecurityGroupIngress" : [ {
|
45
|
+
"IpProtocol" : "tcp",
|
46
|
+
"FromPort" : "80",
|
47
|
+
"ToPort" : "80",
|
48
|
+
"CidrIp" : "0.0.0.0/0"
|
49
|
+
}, {
|
50
|
+
"IpProtocol" : "tcp",
|
51
|
+
"FromPort" : "22",
|
52
|
+
"ToPort" : "22",
|
53
|
+
"CidrIp" : "0.0.0.0/0"
|
54
|
+
} ]
|
55
|
+
}
|
56
|
+
},
|
57
|
+
"BitnamiServer" : {
|
58
|
+
"Type" : "AWS::EC2::Instance",
|
59
|
+
"Properties" : {
|
60
|
+
"ImageId" : { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" }, { "Fn::FindInMap": [ "AWSInstanceType2Arch", {"Ref": "BitnamiInstanceType" },"Arch" ] } ]},
|
61
|
+
"KeyName" : {"Ref": "KeyName"},
|
62
|
+
"SecurityGroups" : [ { "Ref" : "BitnamiSecurityGroup" } ],
|
63
|
+
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ "\n", [
|
64
|
+
{ "Fn::Join" : [ "=", [ "base_user", { "Ref" : "BitnamiUser" } ] ] },
|
65
|
+
{ "Fn::Join" : [ "=", [ "base_mail", { "Ref" : "BitnamiEmail" } ] ] },
|
66
|
+
{ "Fn::Join" : [ "=", [ "base_user_name", { "Ref" : "BitnamiUserName" } ] ] },
|
67
|
+
{ "Fn::Join" : [ "=", [ "base_password", { "Ref" : "BitnamiPassword" } ] ] },
|
68
|
+
{ "Fn::Join" : [ "=", [ "stack_name", "drupal" ] ] },
|
69
|
+
{ "Fn::Join" : [ "=", [ "stack_version", "7.0-0" ] ] }
|
70
|
+
] ] } },
|
71
|
+
"InstanceType" : { "Ref" : "BitnamiInstanceType" },
|
72
|
+
"Tags" : [ {
|
73
|
+
"Key" : "Name",
|
74
|
+
"Value" : "The BitNami Drupal 7.0"
|
75
|
+
} ]
|
76
|
+
}
|
77
|
+
},
|
78
|
+
"BitnamiIP" : {
|
79
|
+
"Type" : "AWS::EC2::EIP",
|
80
|
+
"Properties" : {
|
81
|
+
"InstanceId" : { "Ref" : "BitnamiServer" }
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
},
|
86
|
+
"Mappings": {
|
87
|
+
"AWSInstanceType2Arch" : {
|
88
|
+
"t1.micro" : { "Arch" : "32" },
|
89
|
+
"m1.small" : { "Arch" : "32" },
|
90
|
+
"c1.medium" : { "Arch" : "32" }
|
91
|
+
},
|
92
|
+
"AWSRegionArch2AMI" : {
|
93
|
+
"us-east-1" : { "32" : "ami-986497f1"}
|
94
|
+
}
|
95
|
+
},
|
96
|
+
"Outputs" : {
|
97
|
+
"URL" : {
|
98
|
+
"Description" : "URL of the BitNami Drupal 7.0 server:",
|
99
|
+
"Value" : { "Fn::Join" : [ "", [ "http://", { "Ref" : "BitnamiIP" } ] ] }
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/bin/bash -e
|
2
|
+
|
3
|
+
apt-get update
|
4
|
+
apt-get -y install ruby ruby-dev libopenssl-ruby rdoc ri irb build-essential wget ssl-cert
|
5
|
+
cd /tmp
|
6
|
+
test ! -f rubygems-1.3.7.tgz && wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
|
7
|
+
test -f rubygems-1.3.7.tgz && tar zxf rubygems-1.3.7.tgz
|
8
|
+
|
9
|
+
gem --version |grep 1.3.7 | wc -l |grep 0 && cd rubygems-1.3.7 && ruby setup.rb --no-format-executable
|
10
|
+
|
11
|
+
gem list chef|grep chef|wc -l | grep 0 && gem install chef --no-ri --no-rdoc
|
12
|
+
gem list puppet|grep puppet|wc -l | grep 0 && gem install puppet --no-ri --no-rdoc
|
13
|
+
|
14
|
+
useradd puppet
|
15
|
+
|
16
|
+
echo "bootstrap finished"
|
@@ -0,0 +1,198 @@
|
|
1
|
+
{
|
2
|
+
"AWSTemplateFormatVersion" : "2010-09-09",
|
3
|
+
|
4
|
+
"Description" : "Marionette Collective 1.0.1 demo network with 1 ActiveMQ broker and 5 managed instances",
|
5
|
+
|
6
|
+
"Parameters" : {
|
7
|
+
"KeyName" : {
|
8
|
+
"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances",
|
9
|
+
"Type" : "String"
|
10
|
+
},
|
11
|
+
|
12
|
+
"Password" : {
|
13
|
+
"Description" : "Password for ActiveMQ",
|
14
|
+
"NoEcho": "true",
|
15
|
+
"Type" : "String"
|
16
|
+
},
|
17
|
+
|
18
|
+
"PSK" : {
|
19
|
+
"Description" : "Pre Shared Key for MCollective",
|
20
|
+
"NoEcho": "true",
|
21
|
+
"Type" : "String"
|
22
|
+
}
|
23
|
+
},
|
24
|
+
|
25
|
+
"Resources" : {
|
26
|
+
"ActiveMQInstance" : {
|
27
|
+
"Type" : "AWS::EC2::Instance",
|
28
|
+
"Properties" : {
|
29
|
+
"InstanceType" : "m1.small",
|
30
|
+
"SecurityGroups" : [ { "Ref" : "ActiveMQSecurityGroup" } ],
|
31
|
+
"AvailabilityZone" : "eu-west-1b",
|
32
|
+
"ImageId" : "ami-3fb4804b",
|
33
|
+
"KeyName" : { "Ref" : "KeyName" },
|
34
|
+
"Tags" : [ { "Key" : "Name",
|
35
|
+
"Value" : "management_node"
|
36
|
+
} ],
|
37
|
+
"UserData" : {"Fn::Base64" :
|
38
|
+
{"Fn::Join": [ "\n", [
|
39
|
+
"mcollective=server",
|
40
|
+
{"Fn::Join": [ "", ["mcollective_password=", { "Ref": "Password" }]]},
|
41
|
+
{"Fn::Join": [ "", ["mcollective_psk=", { "Ref": "PSK" }]]}
|
42
|
+
]
|
43
|
+
]
|
44
|
+
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
},
|
49
|
+
|
50
|
+
"ManagedInstance1" : {
|
51
|
+
"Type" : "AWS::EC2::Instance",
|
52
|
+
"Properties" : {
|
53
|
+
"InstanceType" : "m1.small",
|
54
|
+
"AvailabilityZone" : "eu-west-1b",
|
55
|
+
"SecurityGroups" : [ { "Ref" : "ActiveMQSecurityGroup" } ],
|
56
|
+
"ImageId" : "ami-3fb4804b",
|
57
|
+
"KeyName" : { "Ref" : "KeyName" },
|
58
|
+
"Tags" : [ { "Key" : "Name",
|
59
|
+
"Value" : "node1"
|
60
|
+
} ],
|
61
|
+
"UserData" : {"Fn::Base64" :
|
62
|
+
{"Fn::Join": [ "\n", [
|
63
|
+
{"Fn::Join": [ "", ["mcollective=", {"Fn::GetAtt": [ "ActiveMQInstance", "PublicIp" ]}]] },
|
64
|
+
{"Fn::Join": [ "", ["mcollective_password=", { "Ref": "Password" }]]},
|
65
|
+
{"Fn::Join": [ "", ["mcollective_psk=", { "Ref": "PSK" }]]}
|
66
|
+
]
|
67
|
+
]
|
68
|
+
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
},
|
73
|
+
|
74
|
+
"ManagedInstance2" : {
|
75
|
+
"Type" : "AWS::EC2::Instance",
|
76
|
+
"Properties" : {
|
77
|
+
"InstanceType" : "m1.small",
|
78
|
+
"AvailabilityZone" : "eu-west-1b",
|
79
|
+
"SecurityGroups" : [ { "Ref" : "ActiveMQSecurityGroup" } ],
|
80
|
+
"ImageId" : "ami-3fb4804b",
|
81
|
+
"KeyName" : { "Ref" : "KeyName" },
|
82
|
+
"Tags" : [ { "Key" : "Name",
|
83
|
+
"Value" : "node2"
|
84
|
+
} ],
|
85
|
+
"UserData" : {"Fn::Base64" :
|
86
|
+
{"Fn::Join": [ "\n", [
|
87
|
+
{"Fn::Join": [ "", ["mcollective=", {"Fn::GetAtt": [ "ActiveMQInstance", "PublicIp" ]}]] },
|
88
|
+
{"Fn::Join": [ "", ["mcollective_password=", { "Ref": "Password" }]]},
|
89
|
+
{"Fn::Join": [ "", ["mcollective_psk=", { "Ref": "PSK" }]]}
|
90
|
+
]
|
91
|
+
]
|
92
|
+
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
},
|
97
|
+
|
98
|
+
"ManagedInstance3" : {
|
99
|
+
"Type" : "AWS::EC2::Instance",
|
100
|
+
"Properties" : {
|
101
|
+
"InstanceType" : "m1.small",
|
102
|
+
"AvailabilityZone" : "eu-west-1a",
|
103
|
+
"SecurityGroups" : [ { "Ref" : "ActiveMQSecurityGroup" } ],
|
104
|
+
"ImageId" : "ami-3fb4804b",
|
105
|
+
"KeyName" : { "Ref" : "KeyName" },
|
106
|
+
"Tags" : [ { "Key" : "Name",
|
107
|
+
"Value" : "node3"
|
108
|
+
} ],
|
109
|
+
"UserData" : {"Fn::Base64" :
|
110
|
+
{"Fn::Join": [ "\n", [
|
111
|
+
{"Fn::Join": [ "", ["mcollective=", {"Fn::GetAtt": [ "ActiveMQInstance", "PublicIp" ]}]] },
|
112
|
+
{"Fn::Join": [ "", ["mcollective_password=", { "Ref": "Password" }]]},
|
113
|
+
{"Fn::Join": [ "", ["mcollective_psk=", { "Ref": "PSK" }]]}
|
114
|
+
]
|
115
|
+
]
|
116
|
+
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
},
|
121
|
+
|
122
|
+
"ManagedInstance4" : {
|
123
|
+
"Type" : "AWS::EC2::Instance",
|
124
|
+
"Properties" : {
|
125
|
+
"InstanceType" : "m1.small",
|
126
|
+
"AvailabilityZone" : "eu-west-1a",
|
127
|
+
"SecurityGroups" : [ { "Ref" : "ActiveMQSecurityGroup" } ],
|
128
|
+
"ImageId" : "ami-3fb4804b",
|
129
|
+
"KeyName" : { "Ref" : "KeyName" },
|
130
|
+
"Tags" : [ { "Key" : "Name",
|
131
|
+
"Value" : "node4"
|
132
|
+
} ],
|
133
|
+
"UserData" : {"Fn::Base64" :
|
134
|
+
{"Fn::Join": [ "\n", [
|
135
|
+
{"Fn::Join": [ "", ["mcollective=", {"Fn::GetAtt": [ "ActiveMQInstance", "PublicIp" ]}]] },
|
136
|
+
{"Fn::Join": [ "", ["mcollective_password=", { "Ref": "Password" }]]},
|
137
|
+
{"Fn::Join": [ "", ["mcollective_psk=", { "Ref": "PSK" }]]}
|
138
|
+
]
|
139
|
+
]
|
140
|
+
|
141
|
+
}
|
142
|
+
}
|
143
|
+
}
|
144
|
+
},
|
145
|
+
|
146
|
+
"ManagedInstance5" : {
|
147
|
+
"Type" : "AWS::EC2::Instance",
|
148
|
+
"Properties" : {
|
149
|
+
"InstanceType" : "m1.small",
|
150
|
+
"AvailabilityZone" : "eu-west-1a",
|
151
|
+
"SecurityGroups" : [ { "Ref" : "ActiveMQSecurityGroup" } ],
|
152
|
+
"ImageId" : "ami-3fb4804b",
|
153
|
+
"KeyName" : { "Ref" : "KeyName" },
|
154
|
+
"Tags" : [ { "Key" : "Name",
|
155
|
+
"Value" : "node5"
|
156
|
+
} ],
|
157
|
+
"UserData" : {"Fn::Base64" :
|
158
|
+
{"Fn::Join": [ "\n", [
|
159
|
+
{"Fn::Join": [ "", ["mcollective=", {"Fn::GetAtt": [ "ActiveMQInstance", "PublicIp" ]}]] },
|
160
|
+
{"Fn::Join": [ "", ["mcollective_password=", { "Ref": "Password" }]]},
|
161
|
+
{"Fn::Join": [ "", ["mcollective_psk=", { "Ref": "PSK" }]]}
|
162
|
+
]
|
163
|
+
]
|
164
|
+
|
165
|
+
}
|
166
|
+
}
|
167
|
+
}
|
168
|
+
},
|
169
|
+
|
170
|
+
"ActiveMQSecurityGroup" : {
|
171
|
+
"Type" : "AWS::EC2::SecurityGroup",
|
172
|
+
"Properties" : {
|
173
|
+
"GroupDescription" : "Enable SSH and ActiveMQ access",
|
174
|
+
"SecurityGroupIngress" : [
|
175
|
+
{
|
176
|
+
"IpProtocol" : "tcp",
|
177
|
+
"FromPort" : "22",
|
178
|
+
"ToPort" : "22",
|
179
|
+
"CidrIp" : "0.0.0.0/0"
|
180
|
+
},
|
181
|
+
{
|
182
|
+
"IpProtocol" : "tcp",
|
183
|
+
"FromPort" : "6163",
|
184
|
+
"ToPort" : "6163",
|
185
|
+
"CidrIp" : "0.0.0.0/0"
|
186
|
+
}
|
187
|
+
]
|
188
|
+
}
|
189
|
+
}
|
190
|
+
},
|
191
|
+
|
192
|
+
"Outputs": {
|
193
|
+
"ManagementConsole": {
|
194
|
+
"Value" : { "Fn::GetAtt" : [ "ActiveMQInstance", "PublicIp" ] },
|
195
|
+
"Description" : "Address for the management instance"
|
196
|
+
}
|
197
|
+
}
|
198
|
+
}
|