elzar 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.chef/knife.rb +3 -0
- data/.gitignore +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +96 -0
- data/README.md +42 -0
- data/Rakefile +1 -0
- data/Vagrantfile +16 -0
- data/cookbooks/.gitkeep +0 -0
- data/cookbooks/apt/README.md +122 -0
- data/cookbooks/apt/files/default/apt-cacher +9 -0
- data/cookbooks/apt/files/default/apt-cacher.conf +144 -0
- data/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
- data/cookbooks/apt/metadata.rb +13 -0
- data/cookbooks/apt/providers/repository.rb +73 -0
- data/cookbooks/apt/recipes/cacher-client.rb +44 -0
- data/cookbooks/apt/recipes/cacher.rb +45 -0
- data/cookbooks/apt/recipes/default.rb +50 -0
- data/cookbooks/apt/resources/repository.rb +30 -0
- data/cookbooks/build-essential/README.md +24 -0
- data/cookbooks/build-essential/metadata.rb +10 -0
- data/cookbooks/build-essential/recipes/default.rb +45 -0
- data/cookbooks/database/README.md +403 -0
- data/cookbooks/database/libraries/provider_database_mysql.rb +97 -0
- data/cookbooks/database/libraries/provider_database_mysql_user.rb +76 -0
- data/cookbooks/database/libraries/provider_database_postgresql.rb +126 -0
- data/cookbooks/database/libraries/provider_database_postgresql_user.rb +78 -0
- data/cookbooks/database/libraries/provider_database_sql_server.rb +109 -0
- data/cookbooks/database/libraries/provider_database_sql_server_user.rb +106 -0
- data/cookbooks/database/libraries/resource_database.rb +111 -0
- data/cookbooks/database/libraries/resource_database_user.rb +90 -0
- data/cookbooks/database/libraries/resource_mysql_database.rb +34 -0
- data/cookbooks/database/libraries/resource_mysql_database_user.rb +34 -0
- data/cookbooks/database/libraries/resource_postgresql_database.rb +35 -0
- data/cookbooks/database/libraries/resource_postgresql_database_user.rb +35 -0
- data/cookbooks/database/libraries/resource_sql_server_database.rb +34 -0
- data/cookbooks/database/libraries/resource_sql_server_database_user.rb +34 -0
- data/cookbooks/database/metadata.rb +21 -0
- data/cookbooks/database/recipes/default.rb +20 -0
- data/cookbooks/database/recipes/ebs_backup.rb +89 -0
- data/cookbooks/database/recipes/ebs_volume.rb +196 -0
- data/cookbooks/database/recipes/master.rb +78 -0
- data/cookbooks/database/recipes/snapshot.rb +62 -0
- data/cookbooks/database/templates/default/app_grants.sql.erb +8 -0
- data/cookbooks/database/templates/default/aws_config.erb +3 -0
- data/cookbooks/database/templates/default/chef-solo-database-snapshot.cron.erb +10 -0
- data/cookbooks/database/templates/default/chef-solo-database-snapshot.json.erb +1 -0
- data/cookbooks/database/templates/default/chef-solo-database-snapshot.rb.erb +6 -0
- data/cookbooks/database/templates/default/ebs-backup-cron.erb +2 -0
- data/cookbooks/database/templates/default/ebs-db-backup.sh.erb +8 -0
- data/cookbooks/database/templates/default/ebs-db-restore.sh.erb +10 -0
- data/cookbooks/database/templates/default/s3cfg.erb +27 -0
- data/cookbooks/mysql/README.md +148 -0
- data/cookbooks/mysql/attributes/server.rb +68 -0
- data/cookbooks/mysql/libraries/database.rb +19 -0
- data/cookbooks/mysql/libraries/helpers.rb +33 -0
- data/cookbooks/mysql/metadata.rb +90 -0
- data/cookbooks/mysql/recipes/client.rb +51 -0
- data/cookbooks/mysql/recipes/default.rb +20 -0
- data/cookbooks/mysql/recipes/server.rb +133 -0
- data/cookbooks/mysql/recipes/server_ec2.rb +49 -0
- data/cookbooks/mysql/templates/default/debian.cnf.erb +12 -0
- data/cookbooks/mysql/templates/default/grants.sql.erb +15 -0
- data/cookbooks/mysql/templates/default/my.cnf.erb +176 -0
- data/cookbooks/mysql/templates/default/mysql-server.seed.erb +10 -0
- data/cookbooks/mysql/templates/default/port_mysql.erb +3 -0
- data/cookbooks/openssl/README.md +37 -0
- data/cookbooks/openssl/libraries/secure_password.rb +37 -0
- data/cookbooks/openssl/metadata.rb +8 -0
- data/cookbooks/openssl/recipes/default.rb +19 -0
- data/cookbooks/passenger_enterprise/README.rdoc +8 -0
- data/cookbooks/passenger_enterprise/attributes/default.rb +28 -0
- data/cookbooks/passenger_enterprise/cc.gemspec +36 -0
- data/cookbooks/passenger_enterprise/metadata.json +44 -0
- data/cookbooks/passenger_enterprise/metadata.rb +16 -0
- data/cookbooks/passenger_enterprise/recipes/apache2.rb +54 -0
- data/cookbooks/passenger_enterprise/recipes/default.rb +30 -0
- data/cookbooks/passenger_enterprise/recipes/nginx.rb +50 -0
- data/cookbooks/passenger_enterprise/templates/default/passenger.conf.erb +2 -0
- data/cookbooks/passenger_enterprise/templates/default/passenger.load.erb +1 -0
- data/cookbooks/passenger_enterprise/templates/default/passenger_nginx.conf.erb +2 -0
- data/cookbooks/ruby_enterprise/README.rdoc +55 -0
- data/cookbooks/ruby_enterprise/attributes/default.rb +33 -0
- data/cookbooks/ruby_enterprise/cc.gemspec +36 -0
- data/cookbooks/ruby_enterprise/definitions/ree_gem.rb +28 -0
- data/cookbooks/ruby_enterprise/metadata.json +45 -0
- data/cookbooks/ruby_enterprise/metadata.rb +13 -0
- data/cookbooks/ruby_enterprise/recipes/default.rb +67 -0
- data/data_bags/deploy/authorized_keys.json +9 -0
- data/dna.json +25 -0
- data/elzar.gemspec +22 -0
- data/lib/elzar.rb +21 -0
- data/lib/elzar/assistant.rb +77 -0
- data/lib/elzar/chef_dna.rb +48 -0
- data/lib/elzar/template.rb +24 -0
- data/lib/elzar/templates/Gemfile +11 -0
- data/lib/elzar/templates/Vagrantfile.erb +16 -0
- data/lib/elzar/templates/dna.json +25 -0
- data/lib/elzar/templates/solo.rb.erb +6 -0
- data/lib/elzar/version.rb +3 -0
- data/roles/enterprise_appstack.rb +4 -0
- data/roles/plumbing.rb +11 -0
- data/roles/postgres_database.rb +4 -0
- data/roles/ruby_appstack.rb +4 -0
- data/script/install_cookbook +6 -0
- data/script/new_cookbook +5 -0
- data/site-cookbooks/.gitkeep +0 -0
- data/site-cookbooks/curl/README.md +17 -0
- data/site-cookbooks/curl/metadata.rb +6 -0
- data/site-cookbooks/curl/recipes/default.rb +11 -0
- data/site-cookbooks/nginx/CHANGELOG.md +11 -0
- data/site-cookbooks/nginx/CONTRIBUTING +29 -0
- data/site-cookbooks/nginx/LICENSE +201 -0
- data/site-cookbooks/nginx/README.md +76 -0
- data/site-cookbooks/nginx/attributes/default.rb +65 -0
- data/site-cookbooks/nginx/definitions/nginx_site.rb +35 -0
- data/site-cookbooks/nginx/files/default/mime.types +73 -0
- data/site-cookbooks/nginx/metadata.rb +89 -0
- data/site-cookbooks/nginx/recipes/default.rb +57 -0
- data/site-cookbooks/nginx/recipes/source.rb +126 -0
- data/site-cookbooks/nginx/templates/default/default-site.erb +11 -0
- data/site-cookbooks/nginx/templates/default/nginx.conf.erb +42 -0
- data/site-cookbooks/nginx/templates/default/nginx.init.erb +91 -0
- data/site-cookbooks/nginx/templates/default/nxdissite.erb +29 -0
- data/site-cookbooks/nginx/templates/default/nxensite.erb +38 -0
- data/site-cookbooks/passenger/README.md +12 -0
- data/site-cookbooks/passenger/attributes/default.rb +3 -0
- data/site-cookbooks/passenger/metadata.rb +6 -0
- data/site-cookbooks/passenger/recipes/default.rb +39 -0
- data/site-cookbooks/passenger/templates/default/passenger_nginx.conf.erb +2 -0
- data/site-cookbooks/postgresql/README.md +150 -0
- data/site-cookbooks/postgresql/attributes/default.rb +72 -0
- data/site-cookbooks/postgresql/metadata.rb +21 -0
- data/site-cookbooks/postgresql/recipes/client.rb +40 -0
- data/site-cookbooks/postgresql/recipes/default.rb +20 -0
- data/site-cookbooks/postgresql/recipes/server.rb +74 -0
- data/site-cookbooks/postgresql/recipes/server_debian.rb +62 -0
- data/site-cookbooks/postgresql/recipes/server_redhat.rb +82 -0
- data/site-cookbooks/postgresql/templates/default/debian.postgresql.conf.erb +499 -0
- data/site-cookbooks/postgresql/templates/default/pg_hba.conf.erb +83 -0
- data/site-cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb +501 -0
- data/site-cookbooks/rails_app/README.md +15 -0
- data/site-cookbooks/rails_app/attributes/default.rb +2 -0
- data/site-cookbooks/rails_app/files/default/sudoers +26 -0
- data/site-cookbooks/rails_app/metadata.rb +6 -0
- data/site-cookbooks/rails_app/recipes/default.rb +143 -0
- data/site-cookbooks/rails_app/recipes/system_libraries.rb +12 -0
- data/site-cookbooks/rails_app/templates/default/pg_hba.conf.erb +84 -0
- data/site-cookbooks/rails_app/templates/default/rails_app_nginx.erb +10 -0
- data/site-cookbooks/ruby/README.md +12 -0
- data/site-cookbooks/ruby/attributes/default.rb +6 -0
- data/site-cookbooks/ruby/metadata.rb +6 -0
- data/site-cookbooks/ruby/recipes/default.rb +54 -0
- data/solo.rb +7 -0
- data/upgrade-chef.sh +8 -0
- metadata +272 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
# /etc/sudoers
|
2
|
+
# This file MUST be edited with the 'visudo' command as root.
|
3
|
+
# See the man page for details on how to write a sudoers file.
|
4
|
+
|
5
|
+
Defaults env_reset
|
6
|
+
|
7
|
+
# Host alias specification
|
8
|
+
|
9
|
+
# User alias specification
|
10
|
+
|
11
|
+
# Cmnd alias specification
|
12
|
+
|
13
|
+
# User privilege specification
|
14
|
+
root ALL=(ALL) ALL
|
15
|
+
|
16
|
+
# Uncomment to allow members of group sudo to not need a password
|
17
|
+
# (Note that later entries override this, so you might need to move
|
18
|
+
# it further down)
|
19
|
+
%sudo ALL=(ALL) ALL
|
20
|
+
|
21
|
+
# Members of the admin group may gain root privileges
|
22
|
+
%admin ALL=(ALL) NOPASSWD:ALL
|
23
|
+
|
24
|
+
# ubuntu user is default user in ec2-images.
|
25
|
+
# It needs passwordless sudo functionality.
|
26
|
+
ubuntu ALL=(ALL) NOPASSWD:ALL
|
@@ -0,0 +1,143 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: rails_app
|
3
|
+
# Recipe:: default
|
4
|
+
#
|
5
|
+
# Copyright 2011, Relevance
|
6
|
+
#
|
7
|
+
# All rights reserved - Do Not Redistribute
|
8
|
+
#
|
9
|
+
|
10
|
+
include_recipe "rails_app::system_libraries"
|
11
|
+
|
12
|
+
group 'deploy' do
|
13
|
+
append true
|
14
|
+
end
|
15
|
+
|
16
|
+
group 'admin' do
|
17
|
+
append true
|
18
|
+
end
|
19
|
+
|
20
|
+
cookbook_file "/etc/sudoers" do
|
21
|
+
source 'sudoers'
|
22
|
+
owner 'root'
|
23
|
+
group 'root'
|
24
|
+
mode '0440'
|
25
|
+
end
|
26
|
+
|
27
|
+
user "deploy" do
|
28
|
+
shell "/bin/bash"
|
29
|
+
action :create
|
30
|
+
group 'deploy'
|
31
|
+
end
|
32
|
+
|
33
|
+
directory "/home/deploy" do
|
34
|
+
owner 'deploy'
|
35
|
+
group 'deploy'
|
36
|
+
mode '0755'
|
37
|
+
end
|
38
|
+
|
39
|
+
directory "/home/deploy/.ssh" do
|
40
|
+
owner 'deploy'
|
41
|
+
group 'deploy'
|
42
|
+
mode '0755'
|
43
|
+
end
|
44
|
+
|
45
|
+
file "/home/deploy/.ssh/authorized_keys" do
|
46
|
+
content data_bag_item('deploy','authorized_keys')['keys'].join("\n")
|
47
|
+
owner 'deploy'
|
48
|
+
group 'deploy'
|
49
|
+
mode '0600'
|
50
|
+
end
|
51
|
+
|
52
|
+
user "relevance" do
|
53
|
+
shell "/bin/bash"
|
54
|
+
action :create
|
55
|
+
group 'admin'
|
56
|
+
end
|
57
|
+
|
58
|
+
directory "/home/relevance" do
|
59
|
+
owner 'relevance'
|
60
|
+
group 'admin'
|
61
|
+
mode '0755'
|
62
|
+
end
|
63
|
+
|
64
|
+
directory "/home/relevance/.ssh" do
|
65
|
+
owner 'relevance'
|
66
|
+
group 'admin'
|
67
|
+
mode '0755'
|
68
|
+
end
|
69
|
+
|
70
|
+
file "/home/relevance/.ssh/authorized_keys" do
|
71
|
+
content data_bag_item('deploy','authorized_keys')['keys'].join("\n")
|
72
|
+
owner 'relevance'
|
73
|
+
group 'admin'
|
74
|
+
mode '0600'
|
75
|
+
end
|
76
|
+
|
77
|
+
directory "/var/www/apps/" do
|
78
|
+
recursive true
|
79
|
+
owner 'deploy'
|
80
|
+
group 'deploy'
|
81
|
+
mode '2775'
|
82
|
+
end
|
83
|
+
|
84
|
+
file "/home/deploy/.bashrc" do
|
85
|
+
run_list = node.run_list.map(&:name)
|
86
|
+
ruby_path = if run_list.include?('ruby_appstack')
|
87
|
+
node[:ruby][:install_path]
|
88
|
+
elsif run_list.include?('enterprise_appstack')
|
89
|
+
node[:ruby_enterprise][:install_path]
|
90
|
+
else
|
91
|
+
'/usr/local'
|
92
|
+
end
|
93
|
+
content "export PATH=#{ruby_path}/bin:$PATH"
|
94
|
+
owner 'deploy'
|
95
|
+
group 'deploy'
|
96
|
+
mode '0700'
|
97
|
+
end
|
98
|
+
|
99
|
+
file "/home/deploy/.bash_profile" do
|
100
|
+
content 'source "$HOME/.bashrc"'
|
101
|
+
owner 'deploy'
|
102
|
+
group 'deploy'
|
103
|
+
mode '0700'
|
104
|
+
end
|
105
|
+
|
106
|
+
template "#{node[:nginx][:dir]}/sites-enabled/#{node[:rails_app][:name]}" do
|
107
|
+
source "rails_app_nginx.erb"
|
108
|
+
mode "0440"
|
109
|
+
owner "root"
|
110
|
+
group "root"
|
111
|
+
notifies :reload, resources(:service => "nginx"), :immediately
|
112
|
+
end
|
113
|
+
|
114
|
+
if node.run_list.include? 'mysql::server'
|
115
|
+
gem_package "mysql"
|
116
|
+
mysql_database "#{node[:rails_app][:name]}_#{node[:rails_app][:rails_env]}" do
|
117
|
+
connection({:host => 'localhost', :username => 'root', :password => node['mysql']['server_root_password']})
|
118
|
+
action :create
|
119
|
+
end
|
120
|
+
elsif node.run_list.include? 'role[postgres_database]'
|
121
|
+
gem_package 'pg'
|
122
|
+
|
123
|
+
postgres_connection_info = {:host => 'localhost', :username => 'postgres', :password => node['postgresql']['password']['postgres']}
|
124
|
+
|
125
|
+
postgresql_database_user 'deploy' do
|
126
|
+
connection postgres_connection_info
|
127
|
+
password 'd3pl0y-p0stgr3s'
|
128
|
+
action :create
|
129
|
+
end
|
130
|
+
|
131
|
+
postgresql_database "#{node[:rails_app][:name]}_#{node[:rails_app][:rails_env]}" do
|
132
|
+
connection postgres_connection_info
|
133
|
+
action :create
|
134
|
+
owner 'deploy'
|
135
|
+
end
|
136
|
+
|
137
|
+
template "#{node[:postgresql][:dir]}/pg_hba.conf" do
|
138
|
+
mode "0600"
|
139
|
+
owner 'postgres'
|
140
|
+
group 'postgres'
|
141
|
+
notifies :reload, resources(:service => 'postgresql')
|
142
|
+
end
|
143
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# PostgreSQL Client Authentication Configuration File
|
2
|
+
# ===================================================
|
3
|
+
#
|
4
|
+
# Refer to the "Client Authentication" section in the
|
5
|
+
# PostgreSQL documentation for a complete description
|
6
|
+
# of this file. A short synopsis follows.
|
7
|
+
#
|
8
|
+
# This file controls: which hosts are allowed to connect, how clients
|
9
|
+
# are authenticated, which PostgreSQL user names they can use, which
|
10
|
+
# databases they can access. Records take one of these forms:
|
11
|
+
#
|
12
|
+
# local DATABASE USER METHOD [OPTION]
|
13
|
+
# host DATABASE USER CIDR-ADDRESS METHOD [OPTION]
|
14
|
+
# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTION]
|
15
|
+
# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTION]
|
16
|
+
#
|
17
|
+
# (The uppercase items must be replaced by actual values.)
|
18
|
+
#
|
19
|
+
# The first field is the connection type: "local" is a Unix-domain socket,
|
20
|
+
# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
|
21
|
+
# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
|
22
|
+
#
|
23
|
+
# DATABASE can be "all", "sameuser", "samerole", a database name, or
|
24
|
+
# a comma-separated list thereof.
|
25
|
+
#
|
26
|
+
# USER can be "all", a user name, a group name prefixed with "+", or
|
27
|
+
# a comma-separated list thereof. In both the DATABASE and USER fields
|
28
|
+
# you can also write a file name prefixed with "@" to include names from
|
29
|
+
# a separate file.
|
30
|
+
#
|
31
|
+
# CIDR-ADDRESS specifies the set of hosts the record matches.
|
32
|
+
# It is made up of an IP address and a CIDR mask that is an integer
|
33
|
+
# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies
|
34
|
+
# the number of significant bits in the mask. Alternatively, you can write
|
35
|
+
# an IP address and netmask in separate columns to specify the set of hosts.
|
36
|
+
#
|
37
|
+
# METHOD can be "trust", "reject", "md5", "crypt", "password", "gss", "sspi",
|
38
|
+
# "krb5", "ident", "pam" or "ldap". Note that "password" sends passwords
|
39
|
+
# in clear text; "md5" is preferred since it sends encrypted passwords.
|
40
|
+
#
|
41
|
+
# OPTION is the ident map or the name of the PAM service, depending on METHOD.
|
42
|
+
#
|
43
|
+
# Database and user names containing spaces, commas, quotes and other special
|
44
|
+
# characters must be quoted. Quoting one of the keywords "all", "sameuser" or
|
45
|
+
# "samerole" makes the name lose its special character, and just match a
|
46
|
+
# database or username with that name.
|
47
|
+
#
|
48
|
+
# This file is read on server startup and when the postmaster receives
|
49
|
+
# a SIGHUP signal. If you edit the file on a running system, you have
|
50
|
+
# to SIGHUP the postmaster for the changes to take effect. You can use
|
51
|
+
# "pg_ctl reload" to do that.
|
52
|
+
|
53
|
+
# Put your actual configuration here
|
54
|
+
# ----------------------------------
|
55
|
+
#
|
56
|
+
# If you want to allow non-local connections, you need to add more
|
57
|
+
# "host" records. In that case you will also need to make PostgreSQL listen
|
58
|
+
# on a non-local interface via the listen_addresses configuration parameter,
|
59
|
+
# or via the -i or -h command line switches.
|
60
|
+
#
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
# DO NOT DISABLE!
|
66
|
+
# If you change this first entry you will need to make sure that the
|
67
|
+
# database
|
68
|
+
# super user can access the database using some other method.
|
69
|
+
# Noninteractive
|
70
|
+
# access to all databases is required during automatic maintenance
|
71
|
+
# (autovacuum, daily cronjob, replication, and similar tasks).
|
72
|
+
#
|
73
|
+
# Database administrative login by UNIX sockets
|
74
|
+
local all postgres ident
|
75
|
+
local <%= node[:rails_app][:name]%>_<%= node[:rails_app][:rails_env] %> deploy ident
|
76
|
+
|
77
|
+
# TYPE DATABASE USER CIDR-ADDRESS METHOD
|
78
|
+
|
79
|
+
# "local" is for Unix domain socket connections only
|
80
|
+
local all all ident
|
81
|
+
# IPv4 local connections:
|
82
|
+
host all all 127.0.0.1/32 md5
|
83
|
+
# IPv6 local connections:
|
84
|
+
host all all ::1/128 md5
|
@@ -0,0 +1,10 @@
|
|
1
|
+
server {
|
2
|
+
listen 80 default_server;
|
3
|
+
server_name 172.25.5.5;
|
4
|
+
root /var/www/apps/<%= node[:rails_app][:name]%>/current/public;
|
5
|
+
client_max_body_size 100m;
|
6
|
+
|
7
|
+
passenger_min_instances 3;
|
8
|
+
passenger_enabled on;
|
9
|
+
rails_env <%= node[:rails_app][:rails_env] %>;
|
10
|
+
}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
default[:ruby][:version] = '1.9.3-p125'
|
2
|
+
default[:ruby][:url] = "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz"
|
3
|
+
default[:ruby][:install_path] = '/opt/relevance-ruby'
|
4
|
+
default[:ruby][:gems_dir] = '/opt/relevance-ruby/lib/ruby/gems/1.9.1/gems'
|
5
|
+
default[:ruby][:bin] = '/opt/relevance-ruby/bin/ruby'
|
6
|
+
default[:ruby][:gems_version] = '1.8.24'
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby
|
3
|
+
# Recipe:: default
|
4
|
+
#
|
5
|
+
# Copyright 2012, Relevance
|
6
|
+
#
|
7
|
+
# All rights reserved - Do Not Redistribute
|
8
|
+
|
9
|
+
include_recipe "build-essential"
|
10
|
+
ruby_tarball = "/tmp/ruby-#{node[:ruby][:version]}.tar.gz"
|
11
|
+
packages = value_for_platform(
|
12
|
+
["centos","redhat","fedora"] => {'default' => ['readline-devel', 'openssl-devel', 'patch']},
|
13
|
+
"default" => ['libssl-dev', 'libreadline5-dev', 'libyaml-dev']
|
14
|
+
)
|
15
|
+
|
16
|
+
packages.each do |pkg|
|
17
|
+
package pkg
|
18
|
+
end
|
19
|
+
|
20
|
+
remote_file ruby_tarball do
|
21
|
+
source node[:ruby][:url]
|
22
|
+
action :create_if_missing
|
23
|
+
end
|
24
|
+
|
25
|
+
directory '/opt/ruby' do
|
26
|
+
recursive true
|
27
|
+
owner 'root'
|
28
|
+
group 'root'
|
29
|
+
mode '0755'
|
30
|
+
end
|
31
|
+
|
32
|
+
bash "Compiling and Installing Ruby" do
|
33
|
+
cwd "/tmp"
|
34
|
+
code <<-EOH
|
35
|
+
tar zxf ruby-#{node[:ruby][:version]}.tar.gz
|
36
|
+
cd ruby-#{node[:ruby][:version]}
|
37
|
+
./configure --prefix=#{node[:ruby][:install_path]}
|
38
|
+
make
|
39
|
+
make install
|
40
|
+
EOH
|
41
|
+
not_if do
|
42
|
+
::File.exists?("#{node[:ruby][:install_path]}/bin/ruby") &&
|
43
|
+
`#{node[:ruby][:install_path]}/bin/ruby -e "puts \\"\#{RUBY_VERSION}-p\#{RUBY_PATCHLEVEL}\\""`.chomp == node[:ruby][:version]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
execute "Installing bundler" do
|
48
|
+
command "#{node[:ruby][:install_path]}/bin/gem install bundler"
|
49
|
+
not_if "#{node[:ruby][:install_path]}/bin/gem list -l bundler$ | grep -q bundler"
|
50
|
+
end
|
51
|
+
|
52
|
+
execute "Updating rubygems" do
|
53
|
+
command "#{node[:ruby][:install_path]}/bin/gem update --system #{node[:ruby][:gems_version]}"
|
54
|
+
end
|
data/solo.rb
ADDED
data/upgrade-chef.sh
ADDED
metadata
ADDED
@@ -0,0 +1,272 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: elzar
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Alex Redington
|
9
|
+
- Gabriel Horner
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2012-05-06 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: multi_json
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.3.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.3.0
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: rake
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ~>
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 0.9.2.2
|
39
|
+
type: :development
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.9.2.2
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rspec
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: bundler
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
description: Provides Chef cookbooks for a production Rails environment. Also supports
|
80
|
+
Chef-erizing a Rails app.
|
81
|
+
email:
|
82
|
+
- alex.redington@thinkrelevance.com
|
83
|
+
executables: []
|
84
|
+
extensions: []
|
85
|
+
extra_rdoc_files: []
|
86
|
+
files:
|
87
|
+
- .chef/knife.rb
|
88
|
+
- .gitignore
|
89
|
+
- .rvmrc
|
90
|
+
- Gemfile
|
91
|
+
- Gemfile.lock
|
92
|
+
- README.md
|
93
|
+
- Rakefile
|
94
|
+
- Vagrantfile
|
95
|
+
- cookbooks/.gitkeep
|
96
|
+
- cookbooks/apt/README.md
|
97
|
+
- cookbooks/apt/files/default/apt-cacher
|
98
|
+
- cookbooks/apt/files/default/apt-cacher.conf
|
99
|
+
- cookbooks/apt/files/default/apt-proxy-v2.conf
|
100
|
+
- cookbooks/apt/metadata.rb
|
101
|
+
- cookbooks/apt/providers/repository.rb
|
102
|
+
- cookbooks/apt/recipes/cacher-client.rb
|
103
|
+
- cookbooks/apt/recipes/cacher.rb
|
104
|
+
- cookbooks/apt/recipes/default.rb
|
105
|
+
- cookbooks/apt/resources/repository.rb
|
106
|
+
- cookbooks/build-essential/README.md
|
107
|
+
- cookbooks/build-essential/metadata.rb
|
108
|
+
- cookbooks/build-essential/recipes/default.rb
|
109
|
+
- cookbooks/database/README.md
|
110
|
+
- cookbooks/database/libraries/provider_database_mysql.rb
|
111
|
+
- cookbooks/database/libraries/provider_database_mysql_user.rb
|
112
|
+
- cookbooks/database/libraries/provider_database_postgresql.rb
|
113
|
+
- cookbooks/database/libraries/provider_database_postgresql_user.rb
|
114
|
+
- cookbooks/database/libraries/provider_database_sql_server.rb
|
115
|
+
- cookbooks/database/libraries/provider_database_sql_server_user.rb
|
116
|
+
- cookbooks/database/libraries/resource_database.rb
|
117
|
+
- cookbooks/database/libraries/resource_database_user.rb
|
118
|
+
- cookbooks/database/libraries/resource_mysql_database.rb
|
119
|
+
- cookbooks/database/libraries/resource_mysql_database_user.rb
|
120
|
+
- cookbooks/database/libraries/resource_postgresql_database.rb
|
121
|
+
- cookbooks/database/libraries/resource_postgresql_database_user.rb
|
122
|
+
- cookbooks/database/libraries/resource_sql_server_database.rb
|
123
|
+
- cookbooks/database/libraries/resource_sql_server_database_user.rb
|
124
|
+
- cookbooks/database/metadata.rb
|
125
|
+
- cookbooks/database/recipes/default.rb
|
126
|
+
- cookbooks/database/recipes/ebs_backup.rb
|
127
|
+
- cookbooks/database/recipes/ebs_volume.rb
|
128
|
+
- cookbooks/database/recipes/master.rb
|
129
|
+
- cookbooks/database/recipes/snapshot.rb
|
130
|
+
- cookbooks/database/templates/default/app_grants.sql.erb
|
131
|
+
- cookbooks/database/templates/default/aws_config.erb
|
132
|
+
- cookbooks/database/templates/default/chef-solo-database-snapshot.cron.erb
|
133
|
+
- cookbooks/database/templates/default/chef-solo-database-snapshot.json.erb
|
134
|
+
- cookbooks/database/templates/default/chef-solo-database-snapshot.rb.erb
|
135
|
+
- cookbooks/database/templates/default/ebs-backup-cron.erb
|
136
|
+
- cookbooks/database/templates/default/ebs-db-backup.sh.erb
|
137
|
+
- cookbooks/database/templates/default/ebs-db-restore.sh.erb
|
138
|
+
- cookbooks/database/templates/default/s3cfg.erb
|
139
|
+
- cookbooks/mysql/README.md
|
140
|
+
- cookbooks/mysql/attributes/server.rb
|
141
|
+
- cookbooks/mysql/libraries/database.rb
|
142
|
+
- cookbooks/mysql/libraries/helpers.rb
|
143
|
+
- cookbooks/mysql/metadata.rb
|
144
|
+
- cookbooks/mysql/recipes/client.rb
|
145
|
+
- cookbooks/mysql/recipes/default.rb
|
146
|
+
- cookbooks/mysql/recipes/server.rb
|
147
|
+
- cookbooks/mysql/recipes/server_ec2.rb
|
148
|
+
- cookbooks/mysql/templates/default/debian.cnf.erb
|
149
|
+
- cookbooks/mysql/templates/default/grants.sql.erb
|
150
|
+
- cookbooks/mysql/templates/default/my.cnf.erb
|
151
|
+
- cookbooks/mysql/templates/default/mysql-server.seed.erb
|
152
|
+
- cookbooks/mysql/templates/default/port_mysql.erb
|
153
|
+
- cookbooks/openssl/README.md
|
154
|
+
- cookbooks/openssl/libraries/secure_password.rb
|
155
|
+
- cookbooks/openssl/metadata.rb
|
156
|
+
- cookbooks/openssl/recipes/default.rb
|
157
|
+
- cookbooks/passenger_enterprise/README.rdoc
|
158
|
+
- cookbooks/passenger_enterprise/attributes/default.rb
|
159
|
+
- cookbooks/passenger_enterprise/cc.gemspec
|
160
|
+
- cookbooks/passenger_enterprise/metadata.json
|
161
|
+
- cookbooks/passenger_enterprise/metadata.rb
|
162
|
+
- cookbooks/passenger_enterprise/recipes/apache2.rb
|
163
|
+
- cookbooks/passenger_enterprise/recipes/default.rb
|
164
|
+
- cookbooks/passenger_enterprise/recipes/nginx.rb
|
165
|
+
- cookbooks/passenger_enterprise/templates/default/passenger.conf.erb
|
166
|
+
- cookbooks/passenger_enterprise/templates/default/passenger.load.erb
|
167
|
+
- cookbooks/passenger_enterprise/templates/default/passenger_nginx.conf.erb
|
168
|
+
- cookbooks/ruby_enterprise/README.rdoc
|
169
|
+
- cookbooks/ruby_enterprise/attributes/default.rb
|
170
|
+
- cookbooks/ruby_enterprise/cc.gemspec
|
171
|
+
- cookbooks/ruby_enterprise/definitions/ree_gem.rb
|
172
|
+
- cookbooks/ruby_enterprise/metadata.json
|
173
|
+
- cookbooks/ruby_enterprise/metadata.rb
|
174
|
+
- cookbooks/ruby_enterprise/recipes/default.rb
|
175
|
+
- data_bags/deploy/authorized_keys.json
|
176
|
+
- dna.json
|
177
|
+
- elzar.gemspec
|
178
|
+
- lib/elzar.rb
|
179
|
+
- lib/elzar/assistant.rb
|
180
|
+
- lib/elzar/chef_dna.rb
|
181
|
+
- lib/elzar/template.rb
|
182
|
+
- lib/elzar/templates/Gemfile
|
183
|
+
- lib/elzar/templates/Vagrantfile.erb
|
184
|
+
- lib/elzar/templates/dna.json
|
185
|
+
- lib/elzar/templates/solo.rb.erb
|
186
|
+
- lib/elzar/version.rb
|
187
|
+
- roles/enterprise_appstack.rb
|
188
|
+
- roles/plumbing.rb
|
189
|
+
- roles/postgres_database.rb
|
190
|
+
- roles/ruby_appstack.rb
|
191
|
+
- script/install_cookbook
|
192
|
+
- script/new_cookbook
|
193
|
+
- site-cookbooks/.gitkeep
|
194
|
+
- site-cookbooks/curl/README.md
|
195
|
+
- site-cookbooks/curl/metadata.rb
|
196
|
+
- site-cookbooks/curl/recipes/default.rb
|
197
|
+
- site-cookbooks/nginx/CHANGELOG.md
|
198
|
+
- site-cookbooks/nginx/CONTRIBUTING
|
199
|
+
- site-cookbooks/nginx/LICENSE
|
200
|
+
- site-cookbooks/nginx/README.md
|
201
|
+
- site-cookbooks/nginx/attributes/default.rb
|
202
|
+
- site-cookbooks/nginx/definitions/nginx_site.rb
|
203
|
+
- site-cookbooks/nginx/files/default/mime.types
|
204
|
+
- site-cookbooks/nginx/metadata.rb
|
205
|
+
- site-cookbooks/nginx/recipes/default.rb
|
206
|
+
- site-cookbooks/nginx/recipes/source.rb
|
207
|
+
- site-cookbooks/nginx/templates/default/default-site.erb
|
208
|
+
- site-cookbooks/nginx/templates/default/nginx.conf.erb
|
209
|
+
- site-cookbooks/nginx/templates/default/nginx.init.erb
|
210
|
+
- site-cookbooks/nginx/templates/default/nxdissite.erb
|
211
|
+
- site-cookbooks/nginx/templates/default/nxensite.erb
|
212
|
+
- site-cookbooks/passenger/README.md
|
213
|
+
- site-cookbooks/passenger/attributes/default.rb
|
214
|
+
- site-cookbooks/passenger/metadata.rb
|
215
|
+
- site-cookbooks/passenger/recipes/default.rb
|
216
|
+
- site-cookbooks/passenger/templates/default/passenger_nginx.conf.erb
|
217
|
+
- site-cookbooks/postgresql/README.md
|
218
|
+
- site-cookbooks/postgresql/attributes/default.rb
|
219
|
+
- site-cookbooks/postgresql/metadata.rb
|
220
|
+
- site-cookbooks/postgresql/recipes/client.rb
|
221
|
+
- site-cookbooks/postgresql/recipes/default.rb
|
222
|
+
- site-cookbooks/postgresql/recipes/server.rb
|
223
|
+
- site-cookbooks/postgresql/recipes/server_debian.rb
|
224
|
+
- site-cookbooks/postgresql/recipes/server_redhat.rb
|
225
|
+
- site-cookbooks/postgresql/templates/default/debian.postgresql.conf.erb
|
226
|
+
- site-cookbooks/postgresql/templates/default/pg_hba.conf.erb
|
227
|
+
- site-cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb
|
228
|
+
- site-cookbooks/rails_app/README.md
|
229
|
+
- site-cookbooks/rails_app/attributes/default.rb
|
230
|
+
- site-cookbooks/rails_app/files/default/sudoers
|
231
|
+
- site-cookbooks/rails_app/metadata.rb
|
232
|
+
- site-cookbooks/rails_app/recipes/default.rb
|
233
|
+
- site-cookbooks/rails_app/recipes/system_libraries.rb
|
234
|
+
- site-cookbooks/rails_app/templates/default/pg_hba.conf.erb
|
235
|
+
- site-cookbooks/rails_app/templates/default/rails_app_nginx.erb
|
236
|
+
- site-cookbooks/ruby/README.md
|
237
|
+
- site-cookbooks/ruby/attributes/default.rb
|
238
|
+
- site-cookbooks/ruby/metadata.rb
|
239
|
+
- site-cookbooks/ruby/recipes/default.rb
|
240
|
+
- solo.rb
|
241
|
+
- upgrade-chef.sh
|
242
|
+
homepage: http://github.com/relevance/elzar
|
243
|
+
licenses: []
|
244
|
+
post_install_message:
|
245
|
+
rdoc_options: []
|
246
|
+
require_paths:
|
247
|
+
- lib
|
248
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
249
|
+
none: false
|
250
|
+
requirements:
|
251
|
+
- - ! '>='
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
version: '0'
|
254
|
+
segments:
|
255
|
+
- 0
|
256
|
+
hash: 4460117594910515010
|
257
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
|
+
none: false
|
259
|
+
requirements:
|
260
|
+
- - ! '>='
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0'
|
263
|
+
segments:
|
264
|
+
- 0
|
265
|
+
hash: 4460117594910515010
|
266
|
+
requirements: []
|
267
|
+
rubyforge_project:
|
268
|
+
rubygems_version: 1.8.21
|
269
|
+
signing_key:
|
270
|
+
specification_version: 3
|
271
|
+
summary: Chef cookbooks for Rails
|
272
|
+
test_files: []
|