cloudster 2.19.3 → 2.19.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/Gemfile +2 -2
  2. data/Gemfile.lock +11 -11
  3. data/README.md +120 -81
  4. data/VERSION +1 -1
  5. data/cloudster.gemspec +8 -8
  6. metadata +11 -11
data/Gemfile CHANGED
@@ -6,10 +6,10 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  gem "fog"
9
- gem "json"
9
+ gem "json", "~>1.7.7"
10
10
  group :development do
11
11
  gem "rspec"
12
- gem "rdoc", "~> 3.12"
12
+ gem "rdoc"
13
13
  gem "bundler"
14
14
  gem "jeweler", "~> 1.8.4"
15
15
  end
data/Gemfile.lock CHANGED
@@ -6,7 +6,7 @@ GEM
6
6
  excon (0.16.10)
7
7
  faraday (0.8.4)
8
8
  multipart-post (~> 1.1)
9
- fog (1.8.0)
9
+ fog (1.9.0)
10
10
  builder
11
11
  excon (~> 0.14)
12
12
  formatador (~> 0.2.0)
@@ -34,15 +34,15 @@ GEM
34
34
  highline (>= 1.6.15)
35
35
  rake
36
36
  rdoc
37
- json (1.7.6)
37
+ json (1.7.7)
38
38
  jwt (0.1.5)
39
39
  multi_json (>= 1.0)
40
- mime-types (1.19)
40
+ mime-types (1.20.1)
41
41
  multi_json (1.5.0)
42
42
  multipart-post (1.1.5)
43
- net-scp (1.0.4)
44
- net-ssh (>= 1.99.1)
45
- net-ssh (2.6.2)
43
+ net-scp (1.0.6)
44
+ net-ssh (>= 2.6.5)
45
+ net-ssh (2.6.5)
46
46
  nokogiri (1.5.6)
47
47
  oauth2 (0.8.0)
48
48
  faraday (~> 0.8)
@@ -50,9 +50,9 @@ GEM
50
50
  jwt (~> 0.1.4)
51
51
  multi_json (~> 1.0)
52
52
  rack (~> 1.2)
53
- rack (1.4.1)
53
+ rack (1.4.4)
54
54
  rake (10.0.3)
55
- rdoc (3.12)
55
+ rdoc (3.12.1)
56
56
  json (~> 1.4)
57
57
  rspec (2.12.0)
58
58
  rspec-core (~> 2.12.0)
@@ -61,7 +61,7 @@ GEM
61
61
  rspec-core (2.12.2)
62
62
  rspec-expectations (2.12.1)
63
63
  diff-lcs (~> 1.1.3)
64
- rspec-mocks (2.12.1)
64
+ rspec-mocks (2.12.2)
65
65
  ruby-hmac (0.4.0)
66
66
 
67
67
  PLATFORMS
@@ -71,6 +71,6 @@ DEPENDENCIES
71
71
  bundler
72
72
  fog
73
73
  jeweler (~> 1.8.4)
74
- json
75
- rdoc (~> 3.12)
74
+ json (~> 1.7.7)
75
+ rdoc
76
76
  rspec
data/README.md CHANGED
@@ -1,12 +1,14 @@
1
1
  # Cloudster
2
+ ### The fastest way to provision your AWS stack !
2
3
  [![Build Status](https://travis-ci.org/emilsoman/cloudster.png)](https://travis-ci.org/emilsoman/cloudster)
3
4
  [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/emilsoman/cloudster)
4
5
  [![Dependency Status](https://gemnasium.com/emilsoman/cloudster.png)](https://gemnasium.com/emilsoman/cloudster)
5
6
  [![still maintained](http://stillmaintained.com/emilsoman/cloudster.png)](http://stillmaintained.com/emilsoman/cloudster)
6
7
 
7
- Cloudster is a Ruby gem that was born to cut the learning curve involved in writing your own CloudFormation templates. If you don't know what
8
- a CloudFormation template is, but know about the AWS Cloud offerings, you can still use cloudster to provision your stack. Still in infancy , cloudster
9
- can create a basic stack like a breeze. Checkout the Usage section for the supported features.
8
+ Cloudster is a Ruby gem that was born to cut the learning curve involved in writing your own CloudFormation templates.
9
+ If you don't know what a CloudFormation template is, but know about the AWS Cloud,
10
+ you can still use cloudster to provision your stack like a boss.
11
+ Checkout the Usage section.
10
12
 
11
13
  ##Installation
12
14
 
@@ -16,136 +18,173 @@ can create a basic stack like a breeze. Checkout the Usage section for the suppo
16
18
 
17
19
  Create AWS resources :
18
20
 
19
- app_server = Cloudster::Ec2.new(:name => 'AppServer',
20
- :key_name => 'mykey',
21
- :image_id => 'ami_image_id',
22
- :instance_type => 't1.micro',
23
- :security_groups => ["TopSecurityGroup"]
24
- )
25
-
26
- chef_client = Cloudster::ChefClient.new(
27
- :validation_key => 'asd3e33880889098asdnmnnasd8900890a8sdmasdjna9s880808asdnmnasd90-a',
28
- :server_url => 'http://10.50.60.70:4000',
29
- :node_name => 'project.environment.appserver_1',
30
- :interval => 1800
31
- )
32
-
33
- elastic_ip = Cloudster::ElasticIp.new(:name => 'AppServerElasticIp')
34
-
35
- chef_client.add_to(app_server)
36
- elastic_ip.add_to(app_server)
37
-
38
- app_server_2 = Cloudster::Ec2.new(:name => 'AppServer2',
39
- :key_name => 'mykey',
40
- :image_id => 'ami_image_id'
41
- )
42
-
43
- #Add your app servers to the ElasticLoadBalancer
44
- load_balancer = Cloudster::Elb.new(:name => 'LoadBalancer',
45
- :instance_names => ['AppServer', 'AppServer2'],
46
- :listeners => [{:port => 80, :instance_port => 8080, :protocol => 'HTTP'}]
47
- )
48
-
49
- database = Cloudster::Rds.new(
50
- :name => 'MySqlDB',
51
- :instance_class => 'db.t1.micro',
52
- :storage_class => '100',
53
- :username => 'admin',
54
- :password => 'admin123',
55
- :engine => 'MySQL',
56
- :multi_az => true
57
- )
58
-
59
- storage = Cloudster::S3.new(
60
- :name => 'MyBucket'
61
- )
62
-
63
- cloud_front = Cloudster::CloudFront.new(:name => 'CloudFrontResource')
64
- cloud_front.add_to storage
65
-
66
- elasticache = Cloudster::ElastiCache.new(
67
- :name => 'CacheResource',
68
- :node_type => 'cache.t1.micro',
69
- :cache_security_group_names => ['default'],
70
- :engine => 'memcached',
71
- :node_count => 3
72
- )
73
-
74
- Make a cloud :
75
-
76
- cloud = Cloudster::Cloud.new(:access_key_id => 'accesskeyid', :secret_access_key => 'topsecretaccesskey', :region => 'us-west-1')
21
+ ```ruby
22
+ app_server = Cloudster::Ec2.new(:name => 'AppServer',
23
+ :key_name => 'mykey',
24
+ :image_id => 'ami_image_id',
25
+ :instance_type => 't1.micro',
26
+ :security_groups => ["DevSecurityGroup"]
27
+ )
28
+
29
+ #Well I wanted to add chef clients to my app servers , so ..
30
+ chef_client = Cloudster::ChefClient.new(
31
+ :validation_key => 'asd3e33880889098asdnmnnasd8900890a8sdmasdjna9s880808asdnmnasd90-a',
32
+ :server_url => 'http://10.50.60.70:4000',
33
+ :node_name => 'project.environment.appserver_1',
34
+ :interval => 1800
35
+ )
36
+ chef_client.add_to(app_server)
37
+
38
+ elastic_ip = Cloudster::ElasticIp.new(:name => 'AppServerElasticIp')
39
+ elastic_ip.add_to(app_server)
40
+
41
+ app_server_2 = Cloudster::Ec2.new(:name => 'AppServer2',
42
+ :key_name => 'mykey',
43
+ :image_id => 'ami_image_id'
44
+ )
45
+
46
+ #Add your app servers to the ElasticLoadBalancer
47
+ load_balancer = Cloudster::Elb.new(:name => 'LoadBalancer',
48
+ :instance_names => ['AppServer', 'AppServer2'],
49
+ :listeners => [{:port => 80, :instance_port => 8080, :protocol => 'HTTP'}]
50
+ )
51
+
52
+ database = Cloudster::Rds.new(
53
+ :name => 'MySqlDB',
54
+ :instance_class => 'db.t1.micro',
55
+ :storage_class => '100',
56
+ :username => 'admin',
57
+ :password => 'admin123',
58
+ :engine => 'MySQL',
59
+ :multi_az => true
60
+ )
61
+
62
+ storage = Cloudster::S3.new(
63
+ :name => 'MyBucket'
64
+ )
65
+
66
+ cloud_front = Cloudster::CloudFront.new(:name => 'CloudFrontResource')
67
+ cloud_front.add_to storage
68
+
69
+ elasticache = Cloudster::ElastiCache.new(
70
+ :name => 'CacheResource',
71
+ :node_type => 'cache.t1.micro',
72
+ :cache_security_group_names => ['default'],
73
+ :engine => 'memcached',
74
+ :node_count => 3
75
+ )
76
+ ```
77
+
78
+ Create an instance for your cloud :
79
+
80
+ ```ruby
81
+ cloud = Cloudster::Cloud.new(:access_key_id => 'accesskeyid', :secret_access_key => 'topsecretaccesskey', :region => 'us-west-1')
82
+ ```
83
+
84
+ Provision the stack :
85
+
86
+ ```ruby
87
+ cloud.provision(:resources => [app_server, app_server_2, load_balancer, database], :stack_name => 'TestStack', :description => 'Description of the stack')
88
+ ```
77
89
 
78
90
  Get the CloudFormation template for the stack :
79
91
 
80
- cloud.template(:resources => [app_server, app_server_2, load_balancer, database, storage, elasticache], :description => 'Description of the stack')
92
+ ```ruby
93
+ cloud.template(:resources => [app_server, app_server_2, load_balancer, database, storage, elasticache], :description => 'Description of the stack')
94
+ ```
81
95
 
82
96
  Get the CloudFormation template for a resource as a Ruby Hash :
83
97
 
84
- app_server.template
98
+ ```ruby
99
+ app_server.template
100
+ ```
85
101
 
86
102
  Cloudster can also interact with the provisioned AWS Cloud :
87
103
 
88
- - Provision the stack :
89
-
90
- cloud.provision(:resources => [app_server, app_server_2, load_balancer, database], :stack_name => 'TestStack', :description => 'Description of the stack')
91
104
 
92
105
  - Update the stack :
93
106
 
94
- cloud.update(:resources => [app_server, app_server_2], :stack_name => 'TestStack', :description => 'Description of the stack')
107
+ ```ruby
108
+ cloud.update(:resources => [app_server, app_server_2], :stack_name => 'TestStack', :description => 'Description of the stack')
109
+ ```
95
110
 
96
111
  - Delete the stack and it's attached resources :
97
112
 
98
- cloud.delete(:stack_name => 'TestStack')
113
+ ```ruby
114
+ cloud.delete(:stack_name => 'TestStack')
115
+ ```
99
116
 
100
117
  - Get the output attributes of each resource in the stack :
101
118
 
102
- cloud.outputs(:stack_name => 'TestStack')
119
+ ```ruby
120
+ cloud.outputs(:stack_name => 'TestStack')
121
+ ```
103
122
 
104
123
  - Describe the events of a stack :
105
124
 
106
- cloud.events(:stack_name => 'TestStack')
125
+ ```ruby
126
+ cloud.events(:stack_name => 'TestStack')
127
+ ```
107
128
 
108
129
  - Describe the attributes of a stack :
109
130
 
110
- cloud.describe(:stack_name => 'TestStack')
131
+ ```ruby
132
+ cloud.describe(:stack_name => 'TestStack')
133
+ ```
111
134
 
112
135
  - Describe all resources of a stack :
113
136
 
114
- cloud.resources(:stack_name => 'TestStack')
137
+ ```ruby
138
+ cloud.resources(:stack_name => 'TestStack')
139
+ ```
115
140
 
116
141
  - Get the status of a stack :
117
142
 
118
- cloud.status(:stack_name => 'TestStack')
143
+ ```ruby
144
+ cloud.status(:stack_name => 'TestStack')
145
+ ```
119
146
 
120
147
  - Describe the RDS endpoints in a stack :
121
148
 
122
- cloud.get_database_endpoints(:stack_name => 'TestStack')
149
+ ```ruby
150
+ cloud.get_database_endpoints(:stack_name => 'TestStack')
151
+ ```
123
152
 
124
153
  - Get the details of all EC2 intances in a stack :
125
154
 
126
- cloud.get_ec2_details(:stack_name => 'TestStack')
155
+ ```ruby
156
+ cloud.get_ec2_details(:stack_name => 'TestStack')
157
+ ```
127
158
 
128
159
  - Get the details of all RDS intances in a stack :
129
160
 
130
- cloud.get_rds_details(:stack_name => 'TestStack')
161
+ ```ruby
162
+ cloud.get_rds_details(:stack_name => 'TestStack')
163
+ ```
131
164
 
132
165
  - Get the details of all ELB intances in a stack :
133
166
 
134
- cloud.get_elb_details(:stack_name => 'TestStack')
167
+ ```ruby
168
+ cloud.get_elb_details(:stack_name => 'TestStack')
169
+ ```
135
170
 
136
171
  - Get details of all keypairs created in the AWS account :
137
172
 
138
- cloud.get_key_pairs
173
+ ```ruby
174
+ cloud.get_key_pairs
175
+ ```
139
176
 
140
177
  - Get details of all Security Groups created in the AWS account :
141
178
 
142
- cloud.get_security_groups
179
+ ```ruby
180
+ cloud.get_security_groups
181
+ ```
143
182
 
144
- - ### More coming soon ..
183
+ ### More coming soon ..
145
184
 
146
185
  I'm trying to add every AWS resource to cloudster, one by one. If you don't find what you need,
147
186
  let me know and I'll try to get the feature included ASAP, or you can submit a pull request with the feature -
148
- that would be awesome! Or, you can patiently wait till the feature is added to cloudster.
187
+ that would be awesome!
149
188
 
150
189
  ----------------
151
190
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.19.3
1
+ 2.19.4
data/cloudster.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cloudster"
8
- s.version = "2.19.3"
8
+ s.version = "2.19.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Emil Soman"]
12
- s.date = "2013-01-21"
12
+ s.date = "2013-02-12"
13
13
  s.description = "Cloudster is a Ruby gem that was born to cut the learning curve involved \n in writing your own CloudFormation templates. If you don't know what a CloudFormation template is, \n but know about the AWS Cloud offerings, you can still use cloudster to provision your stack. \n Still in infancy , cloudster can create a very basic stack like a breeze. All kinds of contribution welcome !"
14
14
  s.email = "emil.soman@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -64,24 +64,24 @@ Gem::Specification.new do |s|
64
64
 
65
65
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
66
66
  s.add_runtime_dependency(%q<fog>, [">= 0"])
67
- s.add_runtime_dependency(%q<json>, [">= 0"])
67
+ s.add_runtime_dependency(%q<json>, ["~> 1.7.7"])
68
68
  s.add_development_dependency(%q<rspec>, [">= 0"])
69
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
69
+ s.add_development_dependency(%q<rdoc>, [">= 0"])
70
70
  s.add_development_dependency(%q<bundler>, [">= 0"])
71
71
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
72
72
  else
73
73
  s.add_dependency(%q<fog>, [">= 0"])
74
- s.add_dependency(%q<json>, [">= 0"])
74
+ s.add_dependency(%q<json>, ["~> 1.7.7"])
75
75
  s.add_dependency(%q<rspec>, [">= 0"])
76
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
76
+ s.add_dependency(%q<rdoc>, [">= 0"])
77
77
  s.add_dependency(%q<bundler>, [">= 0"])
78
78
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
79
79
  end
80
80
  else
81
81
  s.add_dependency(%q<fog>, [">= 0"])
82
- s.add_dependency(%q<json>, [">= 0"])
82
+ s.add_dependency(%q<json>, ["~> 1.7.7"])
83
83
  s.add_dependency(%q<rspec>, [">= 0"])
84
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
84
+ s.add_dependency(%q<rdoc>, [">= 0"])
85
85
  s.add_dependency(%q<bundler>, [">= 0"])
86
86
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
87
87
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudster
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.19.3
4
+ version: 2.19.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-21 00:00:00.000000000 Z
12
+ date: 2013-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog
@@ -32,17 +32,17 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ! '>='
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: 1.7.7
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ! '>='
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: 1.7.7
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rspec
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -64,17 +64,17 @@ dependencies:
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
- - - ~>
67
+ - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
- version: '3.12'
69
+ version: '0'
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - ~>
75
+ - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
- version: '3.12'
77
+ version: '0'
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: bundler
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -169,7 +169,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
169
169
  version: '0'
170
170
  segments:
171
171
  - 0
172
- hash: -732779757
172
+ hash: 463981773
173
173
  required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  none: false
175
175
  requirements: