cloudster 2.19.3 → 2.19.4
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/Gemfile +2 -2
- data/Gemfile.lock +11 -11
- data/README.md +120 -81
- data/VERSION +1 -1
- data/cloudster.gemspec +8 -8
- 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"
|
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.
|
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.
|
37
|
+
json (1.7.7)
|
38
38
|
jwt (0.1.5)
|
39
39
|
multi_json (>= 1.0)
|
40
|
-
mime-types (1.
|
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.
|
44
|
-
net-ssh (>=
|
45
|
-
net-ssh (2.6.
|
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.
|
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.
|
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
|
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
|
[](https://travis-ci.org/emilsoman/cloudster)
|
3
4
|
[](https://codeclimate.com/github/emilsoman/cloudster)
|
4
5
|
[](https://gemnasium.com/emilsoman/cloudster)
|
5
6
|
[](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.
|
8
|
-
a CloudFormation template is, but know about the AWS Cloud
|
9
|
-
can
|
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
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
119
|
+
```ruby
|
120
|
+
cloud.outputs(:stack_name => 'TestStack')
|
121
|
+
```
|
103
122
|
|
104
123
|
- Describe the events of a stack :
|
105
124
|
|
106
|
-
|
125
|
+
```ruby
|
126
|
+
cloud.events(:stack_name => 'TestStack')
|
127
|
+
```
|
107
128
|
|
108
129
|
- Describe the attributes of a stack :
|
109
130
|
|
110
|
-
|
131
|
+
```ruby
|
132
|
+
cloud.describe(:stack_name => 'TestStack')
|
133
|
+
```
|
111
134
|
|
112
135
|
- Describe all resources of a stack :
|
113
136
|
|
114
|
-
|
137
|
+
```ruby
|
138
|
+
cloud.resources(:stack_name => 'TestStack')
|
139
|
+
```
|
115
140
|
|
116
141
|
- Get the status of a stack :
|
117
142
|
|
118
|
-
|
143
|
+
```ruby
|
144
|
+
cloud.status(:stack_name => 'TestStack')
|
145
|
+
```
|
119
146
|
|
120
147
|
- Describe the RDS endpoints in a stack :
|
121
148
|
|
122
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
179
|
+
```ruby
|
180
|
+
cloud.get_security_groups
|
181
|
+
```
|
143
182
|
|
144
|
-
|
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!
|
187
|
+
that would be awesome!
|
149
188
|
|
150
189
|
----------------
|
151
190
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.19.
|
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.
|
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-
|
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>, ["
|
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>, ["
|
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>, ["
|
74
|
+
s.add_dependency(%q<json>, ["~> 1.7.7"])
|
75
75
|
s.add_dependency(%q<rspec>, [">= 0"])
|
76
|
-
s.add_dependency(%q<rdoc>, ["
|
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>, ["
|
82
|
+
s.add_dependency(%q<json>, ["~> 1.7.7"])
|
83
83
|
s.add_dependency(%q<rspec>, [">= 0"])
|
84
|
-
s.add_dependency(%q<rdoc>, ["
|
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.
|
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-
|
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:
|
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:
|
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: '
|
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: '
|
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:
|
172
|
+
hash: 463981773
|
173
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
174
|
none: false
|
175
175
|
requirements:
|