cluster 0.5.33 → 0.5.34
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/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
|