cluster 0.5.33 → 0.5.34
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cluster/version.rb +1 -1
- metadata +6 -10
- data/examples/cacerts.pem +0 -19
- data/examples/credentials.yml +0 -24
- data/examples/monitor.god +0 -88
- data/examples/users.sh +0 -42
data/lib/cluster/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
8
|
+
- 34
|
9
|
+
version: 0.5.34
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Simon de Boer
|
@@ -58,8 +58,8 @@ dependencies:
|
|
58
58
|
segments:
|
59
59
|
- 1
|
60
60
|
- 2
|
61
|
-
-
|
62
|
-
version: 1.2.
|
61
|
+
- 6
|
62
|
+
version: 1.2.6
|
63
63
|
type: :runtime
|
64
64
|
version_requirements: *id003
|
65
65
|
- !ruby/object:Gem::Dependency
|
@@ -73,8 +73,8 @@ dependencies:
|
|
73
73
|
segments:
|
74
74
|
- 2
|
75
75
|
- 0
|
76
|
-
-
|
77
|
-
version: 2.0.
|
76
|
+
- 2
|
77
|
+
version: 2.0.2
|
78
78
|
type: :runtime
|
79
79
|
version_requirements: *id004
|
80
80
|
- !ruby/object:Gem::Dependency
|
@@ -161,10 +161,6 @@ files:
|
|
161
161
|
- lib/cluster.rb
|
162
162
|
- lib/ext/array.rb
|
163
163
|
- lib/ext/cluster_extensions.rb
|
164
|
-
- examples/cacerts.pem
|
165
|
-
- examples/credentials.yml
|
166
|
-
- examples/monitor.god
|
167
|
-
- examples/users.sh
|
168
164
|
- bin/cluster
|
169
165
|
- bin/ec2-consistent-snapshot
|
170
166
|
- bin/periodic.sh
|
data/examples/cacerts.pem
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
|
3
|
-
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
4
|
-
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
5
|
-
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
|
6
|
-
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
|
7
|
-
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
|
8
|
-
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
|
9
|
-
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
10
|
-
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
|
11
|
-
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
|
12
|
-
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
|
13
|
-
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
|
14
|
-
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
|
15
|
-
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
16
|
-
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
|
17
|
-
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
|
18
|
-
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
|
19
|
-
-----END CERTIFICATE-----
|
data/examples/credentials.yml
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
amazon:
|
2
|
-
user: 91*********
|
3
|
-
key: AKI**********
|
4
|
-
secret: U***************************
|
5
|
-
|
6
|
-
monitor:
|
7
|
-
email:
|
8
|
-
address: smtp.gmail.com
|
9
|
-
port: 587
|
10
|
-
domain: ingamersports.com
|
11
|
-
authentication: plain
|
12
|
-
user_name: dog@score345.com
|
13
|
-
password: *******
|
14
|
-
messages:
|
15
|
-
from: dog@ingamersports.com
|
16
|
-
contacts:
|
17
|
-
- name: alerts
|
18
|
-
email: alert@ingamersports.com
|
19
|
-
- name: panic
|
20
|
-
email: panic@ingamersports.com
|
21
|
-
group: emergency
|
22
|
-
- name: simon
|
23
|
-
email: sdeboer@ingamersports.com
|
24
|
-
group: person
|
data/examples/monitor.god
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
#!/bin/env god -c
|
2
|
-
require 'rubygems'
|
3
|
-
require 'tlsmail'
|
4
|
-
require 'fileutils'
|
5
|
-
require 'cluster'
|
6
|
-
require 'cluster/infrastructures/amazon'
|
7
|
-
|
8
|
-
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
|
9
|
-
|
10
|
-
CREDENTIALS = ENV['CREDENTIALS'] || File.join(ENV['HOME'], '.cluster', 'credentials.yml')
|
11
|
-
|
12
|
-
credentials_file = File.expand_path(CREDENTIALS)
|
13
|
-
|
14
|
-
unless File.exists?(credentials_file)
|
15
|
-
$stderr.puts "Cannot find credentials for cluster : #{credentials_file} !"
|
16
|
-
exit 2
|
17
|
-
end
|
18
|
-
MONITOR_PATH = File.join File.dirname(credentials_file), 'services.d'
|
19
|
-
|
20
|
-
Cluster::Configuration[:credentials_file] = credentials_file
|
21
|
-
CLUSTER = Cluster.new(Amazon.new)
|
22
|
-
|
23
|
-
class UserService < God::Behavior
|
24
|
-
def before_start
|
25
|
-
service = self.watch.name[/^(\w+)-/, 1]
|
26
|
-
users_file = File.join(MONITOR_PATH, service, 'users.sh')
|
27
|
-
unless File.exists? users_file
|
28
|
-
FileUtils.mkdir_p File.dirname users_file
|
29
|
-
CLUSTER.retrieve service, 'users.sh', users_file
|
30
|
-
end
|
31
|
-
|
32
|
-
system(users_file) if File.exists? users_file
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
class ProjectService < God::Behavior
|
37
|
-
def before_start
|
38
|
-
service = self.watch.name[/^(\w+)-/, 1]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
creds = YAML::load_file credentials_file
|
43
|
-
|
44
|
-
if creds.include? 'monitor'
|
45
|
-
moni = creds['monitor']
|
46
|
-
email = moni['email'].keys.inject({}) {|m, k|
|
47
|
-
m.merge k.to_sym => moni['email'][k]
|
48
|
-
}
|
49
|
-
God::Contacts::Email.server_settings = email
|
50
|
-
God::Contacts::Email.message_settings = {
|
51
|
-
:from => moni['messages']['from']
|
52
|
-
}
|
53
|
-
|
54
|
-
if moni.include? 'contacts'
|
55
|
-
for contact in moni['contacts']
|
56
|
-
God.contact(:email) {|c|
|
57
|
-
c.name = contact['name']
|
58
|
-
c.email = contact['email']
|
59
|
-
contact['group'] and (c.group = contact['group'])
|
60
|
-
}
|
61
|
-
end
|
62
|
-
else
|
63
|
-
God.contact(:email) {|c|
|
64
|
-
c.name = 'system notification'
|
65
|
-
c.email = moni['messages']['from']
|
66
|
-
}
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
CLUSTER.instance_state('configuring')
|
71
|
-
|
72
|
-
for service in CLUSTER.current('services')
|
73
|
-
monitor_file = File.join MONITOR_PATH, service, "config.god"
|
74
|
-
FileUtils.mkdir_p File.dirname(monitor_file)
|
75
|
-
begin
|
76
|
-
CLUSTER.retrieve service, 'config.god', monitor_file
|
77
|
-
rescue => err
|
78
|
-
applog(nil, :warn, "Service of #{service} does not appear to have a monitor configuration. Skipping!")
|
79
|
-
next
|
80
|
-
end
|
81
|
-
|
82
|
-
if File.readable? monitor_file
|
83
|
-
applog(nil, :info, "Loading monitor file #{monitor_file}")
|
84
|
-
load monitor_file
|
85
|
-
else
|
86
|
-
applog(nil, :warn, "Cannot find a monitor file for #{monitor_file}")
|
87
|
-
end
|
88
|
-
end
|
data/examples/users.sh
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
if ! id staging 2>/dev/null 1>&2; then
|
4
|
-
adduser --disabled-password --gecos 'staging' staging
|
5
|
-
mkdir -m 700 ~staging/.ssh
|
6
|
-
touch ~staging/.ssh/authorized_keys
|
7
|
-
chmod 600 ~staging/.ssh/authorized_keys
|
8
|
-
touch ~staging/.ssh/config
|
9
|
-
chmod 600 ~staging/.ssh/config
|
10
|
-
|
11
|
-
cat >>~staging/.ssh/authorized_keys <<END_OF_KEYS
|
12
|
-
ssh-dss AAAAB3NzaC1kc3MAAACBANcFLeySRpmVji+g9KcHBaedFE5SOLgkSQIKbeVjOwzGC75AIM5gY6gjOu0Kj4BYhlxUwOWkOEYgZwqu15qxtKPCnYQST3jqQnbfwN8UOC4y7XH/4G0gdOD9taFx4PpW0H+zvYs7smBb1qG8NnlUH1tyCGdNNmZLxn2b84R5pDcVAAAAFQDqV2zGPugaRR7gslhxyxrZnIpE9QAAAIAtEViFMBq8h4TXXbdeYR3EhR+zcUHzRz/yB3N7mdo8C1a5apHAnzwX7RPzvkskThU2Idj3ZxUyrTbd5WpBfk/OIwF+hvM3/Uw6XJLNaDSTd0t0HOJxE+SJuHwfOwNtI+J2IXwckUJ2laOTwjOc0YzIR1Gnf50gcz67R07H4qidtQAAAIANQsT7jT68TemlxBjjK22YDRxdRC5M2VuTAT6dDp9JL7KB6B1b3kU7EjiG9gk9oDUGWQiE5sEtHaFjgeViSwQhtaQ/Rqx8EmNG5W9lNgVcWtPmxqMJtOaaNggE+znE1xanY+fDtLqbAkbExZ8vypyUuMXvsgl7AiSSEMnpmX1Itw== simon@s345
|
13
|
-
ssh-dss AAAAB3NzaC1kc3MAAACBAIxHXUznZLryPsnK0YCa7W4HM3wSqpCV8MwIBYd4kl/qQzC2VlyX0mFhVFC3esLWyyWEAFcKyI3FlzI70Z4ppnukyL/2MonVTqto3RPoTQs8Ty3y10MYo+9UE65U6Rv2yHfx551vobJgHgVS7tmupCcemZYscgFCeUMgLOz+5tylAAAAFQC9NTxN10PfjndbLDaPYrpC3h8g9wAAAIBnq0vCE9FqjukltP85M5qiawS5sEXArB0HRP4MDpwk4xDdrpiEwa2qYSOiwN1brsxMGrVHe3HetPeApmZZV5vysV1sLp3CQAlGHoWJ3GjOR3lDYpTymlbZOzd62mKp7FxPVtNszbDiABJckTLUV95TM2OB2hn/mWqpzwJBh9GBrAAAAIAmFDbo3aCg3WcDFnBzI72aHBQ4532xEMrlASABJ9FwkNPCtr2VZRLR4vxo9Oyn21+z4SmFocJN0DcKgj1APeS8en/frAFG/UJr/4KdV/LAnTBz8qd6QnbxdUYxizVoYKI1Pl76axbPQCVe+dthfn0x19quOMc/ofHA7I0GGIojJw== nick@Sparta-MB.local
|
14
|
-
ssh-dss AAAAB3NzaC1kc3MAAACBAO/mj7W3wUuDAhvicx+C2MkAFJGFZvaPrBA+nbFbK240HDZcmS8sA9Ww3VwivKzQ4CwrpdMY3dPg0TM9H2USQvfMsis4bStDwLy4CFIvBEGoviVVdu8gBzVN+YGajhv7yZqJ9cpOSnUXUzCBh4ddhLtni4IQ2lEZyKdlUzmA77pZAAAAFQDSdiFXpCu3CrAm0zivwA68DcDj5wAAAIEA557V4w7vNgmZvkb3hnQui5IkVTpN+b2PKCzvA9clbJQvKBpivS7k5jpx+GeoAYA+pYNLppMf9zpyPLrJjJhJ3Y3qS3p5iFCed2aJRwxhd5lYIyEedZ2uW6tchVRPoXkT1/tmXBKUNnue8YHslhqXOy8nHyHd7dH7BXLblnQknRcAAACBANzpDp5oXEG7w40tCYd7dtJfDLT8cIXyA75yX2MtkHjpBylT+lP/c1P9pmPytEtBfoQCvwFKjVA7fVGTkF1QfMVzcJsB1wh6jUyS287JtbS4D2O/yEP6FioG5Qva8GdJ29Oy49+LIHgamc93ZaJPub+wvFYivNzQsomjdXtiNRNA olpc@xo-10-F8-44.localdomain
|
15
|
-
ssh-dss AAAAB3NzaC1kc3MAAACBAOC9i08N/CoZO9I4kXv8LFSkReglZw9gmOqK72E/IpijLZkd2oh0wyV98S+8lYZR0OPmK6B4vbPIarBsZiPfOe2EMGxsuYjwD3X3S2hIM/1zrvk+WMzf6UADxmCwWzC6bYa1aBH59ba9ojolsBuou6yOxm3boYmZYbnMCLUzm/eLAAAAFQCHNIOpZTKG0chczg+5T3WJ4Q5JAwAAAIA2/VIk8pST/ynuXuu82Z9ZsR9ZJHICYfYi2EqLA6qJUxSB8MjvF9BQGYgX+UCs96uFme8wPJMBU74c7mZlcHvtlgc+1rMQUTZhJ820b/eg2gcPKGYikWj8y3wT0TDoWemMWAaFprvgrPLhHYuVMUKKzI9VNTeKDD7NC1xMsd9pOgAAAIBT14VMwBZjaq0oJSDxzy7bgf5Tragy9yhs7ZgQ0QTpMTFrkO/YvbsCLeXbsRcq904EMcB5glOHXONppn5skwWwBCFtjpjL9WLaeCnhpCxFC+D89GyR7T3Jlvj/Wa2tkuCSFJLBc64kK+pTmDseRLBbhazJazn3oUrNuEFtazzZCw== simon@secondary
|
16
|
-
ssh-dss AAAAB3NzaC1kc3MAAACBALlZtmMckFufyVq+It10p4pC65NJCRdDpRrf1uIoVXvz1ZSlsm/f0jhatuNPpwnSQoRpvlWetiS5mzGJ3ze8aReqHHe9CZvDCpVy33cwyRhCZf7ndyGh1qa9ZA0YMHNVdVs03SpNr7Fzc3muGcKX3BiiOZz+6mtbaQW0X1p/VHpLAAAAFQC8AuBVqCRJKgBMHDHb0nxQAyHbRQAAAIEAgQJvHZ3Db3yVy99goeIJw/3lysVemaddIdPuJj/AdxRwkDeuZIxxtOUne/qjXr7hmu48EyXLVg/jsNivKarLI6CXZAk5JbxkgLN+8y0Ckzcd48KhSGpZsbTBtjV29UFH9aiMVOUTbL59603HNa3ucH2lCLhllBf+ameZZp+EFYMAAACARZwlCuPobEAk7wOxWzGQcaRvmSDSbIKexMeUBgZBZeYjp5Bxld6e7x/j3GBQEkzmxqf08zP6LpglDoNR3KuY2TEWhAS3H1KdT4GibNSNpY4y2Pl2K/GjUWC6wMmVcFFBCz/jJorttMSI1G+OVcy+Vdw42HyQ5Z2QtuoVA2MQ5IQ= staging@domU-12-31-39-0E-C8-82
|
17
|
-
END_OF_KEYS
|
18
|
-
cat >>~staging/.ssh/config <<END_OF_CONFIG
|
19
|
-
Host web
|
20
|
-
HostName domU-12-31-39-00-64-E4.compute-1.internal
|
21
|
-
User app
|
22
|
-
Host webu
|
23
|
-
HostName domU-12-31-39-00-64-E4.compute-1.internal
|
24
|
-
User ubuntu
|
25
|
-
Host *.compute-1.internal
|
26
|
-
ForwardAgent yes
|
27
|
-
END_OF_CONFIG
|
28
|
-
|
29
|
-
chown -R staging:staging ~staging/.ssh
|
30
|
-
fi
|
31
|
-
|
32
|
-
if ! id app 2>/dev/null 1>&2; then
|
33
|
-
adduser --disabled-password --gecos 'app' app
|
34
|
-
mkdir -m 700 ~app/.ssh
|
35
|
-
touch ~app/.ssh/authorized_keys
|
36
|
-
chmod 600 ~app/.ssh/authorized_keys
|
37
|
-
|
38
|
-
cat >>~app/.ssh/authorized_keys <<END_OF_KEYS
|
39
|
-
ssh-dss AAAAB3NzaC1kc3MAAACBALlZtmMckFufyVq+It10p4pC65NJCRdDpRrf1uIoVXvz1ZSlsm/f0jhatuNPpwnSQoRpvlWetiS5mzGJ3ze8aReqHHe9CZvDCpVy33cwyRhCZf7ndyGh1qa9ZA0YMHNVdVs03SpNr7Fzc3muGcKX3BiiOZz+6mtbaQW0X1p/VHpLAAAAFQC8AuBVqCRJKgBMHDHb0nxQAyHbRQAAAIEAgQJvHZ3Db3yVy99goeIJw/3lysVemaddIdPuJj/AdxRwkDeuZIxxtOUne/qjXr7hmu48EyXLVg/jsNivKarLI6CXZAk5JbxkgLN+8y0Ckzcd48KhSGpZsbTBtjV29UFH9aiMVOUTbL59603HNa3ucH2lCLhllBf+ameZZp+EFYMAAACARZwlCuPobEAk7wOxWzGQcaRvmSDSbIKexMeUBgZBZeYjp5Bxld6e7x/j3GBQEkzmxqf08zP6LpglDoNR3KuY2TEWhAS3H1KdT4GibNSNpY4y2Pl2K/GjUWC6wMmVcFFBCz/jJorttMSI1G+OVcy+Vdw42HyQ5Z2QtuoVA2MQ5IQ= staging@domU-12-31-39-0E-C8-82
|
40
|
-
END_OF_KEYS
|
41
|
-
chown -R app:app ~app/.ssh
|
42
|
-
fi
|