/
database.rb
90 lines (74 loc) · 1.74 KB
/
database.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package :database_driver do
requires :mysql_driver
requires :mongo_driver
end
package :database do
requires :mysql
requires :mongodb
end
package :mysql_driver do
description "Ruby MySQL database driver"
gem 'mysql'
verify do
has_gem 'mysql'
end
requires :ruby_enterprise
requires :mysql_client
end
package :mysql_client do
description 'MySQL client components'
apt %w(mysql-client libmysqlclient15-dev)
verify do
has_directory '/usr/lib/mysql'
has_executable 'mysql'
end
end
package :mysql do
description 'MySQL database'
apt 'mysql-server'
monitor_using "monitoring/mysql.monit"
verify do
has_executable '/etc/init.d/mysql'
has_monitored 'mysql'
end
requires :mysql_client
end
# MongoDB
package :mongo_driver do
gem 'mongo_mapper'
# mongo_mapper installs bson and mongo (1.0)
gem 'bson_ext', :version => "1.0"
verify do
%w(mongo bson bson_ext mongo_mapper).each do |mongo_component|
has_gem mongo_component
end
has_gem 'bson', "1.0"
end
requires :ruby_enterprise
end
package :mongodb do
apt 'mongodb-stable' do
post :install, "/etc/init.d/mongodb start"
end
monitor_using "monitoring/mongodb.monit"
verify do
has_executable 'mongod'
has_executable 'mongo'
has_process 'mongod'
has_monitored 'mongod'
end
requires :mongodb_deb
end
package :mongodb_deb do
description "Add mongodb to apt-sources list"
sources_list = "/etc/apt/sources.list"
mongodb = <<EOL
\n# mongodb package repository
deb http://downloads.mongodb.org/distros/debian 5.0 10gen
EOL
push_text mongodb, sources_list, :sudo => true do
post :install, 'apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10'
post :install, 'apt-get update'
end
verify { file_contains sources_list, 'mongodb' }
end