elzar 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. data/.chef/knife.rb +3 -0
  2. data/.gitignore +1 -0
  3. data/.rvmrc +1 -0
  4. data/Gemfile +11 -0
  5. data/Gemfile.lock +96 -0
  6. data/README.md +42 -0
  7. data/Rakefile +1 -0
  8. data/Vagrantfile +16 -0
  9. data/cookbooks/.gitkeep +0 -0
  10. data/cookbooks/apt/README.md +122 -0
  11. data/cookbooks/apt/files/default/apt-cacher +9 -0
  12. data/cookbooks/apt/files/default/apt-cacher.conf +144 -0
  13. data/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
  14. data/cookbooks/apt/metadata.rb +13 -0
  15. data/cookbooks/apt/providers/repository.rb +73 -0
  16. data/cookbooks/apt/recipes/cacher-client.rb +44 -0
  17. data/cookbooks/apt/recipes/cacher.rb +45 -0
  18. data/cookbooks/apt/recipes/default.rb +50 -0
  19. data/cookbooks/apt/resources/repository.rb +30 -0
  20. data/cookbooks/build-essential/README.md +24 -0
  21. data/cookbooks/build-essential/metadata.rb +10 -0
  22. data/cookbooks/build-essential/recipes/default.rb +45 -0
  23. data/cookbooks/database/README.md +403 -0
  24. data/cookbooks/database/libraries/provider_database_mysql.rb +97 -0
  25. data/cookbooks/database/libraries/provider_database_mysql_user.rb +76 -0
  26. data/cookbooks/database/libraries/provider_database_postgresql.rb +126 -0
  27. data/cookbooks/database/libraries/provider_database_postgresql_user.rb +78 -0
  28. data/cookbooks/database/libraries/provider_database_sql_server.rb +109 -0
  29. data/cookbooks/database/libraries/provider_database_sql_server_user.rb +106 -0
  30. data/cookbooks/database/libraries/resource_database.rb +111 -0
  31. data/cookbooks/database/libraries/resource_database_user.rb +90 -0
  32. data/cookbooks/database/libraries/resource_mysql_database.rb +34 -0
  33. data/cookbooks/database/libraries/resource_mysql_database_user.rb +34 -0
  34. data/cookbooks/database/libraries/resource_postgresql_database.rb +35 -0
  35. data/cookbooks/database/libraries/resource_postgresql_database_user.rb +35 -0
  36. data/cookbooks/database/libraries/resource_sql_server_database.rb +34 -0
  37. data/cookbooks/database/libraries/resource_sql_server_database_user.rb +34 -0
  38. data/cookbooks/database/metadata.rb +21 -0
  39. data/cookbooks/database/recipes/default.rb +20 -0
  40. data/cookbooks/database/recipes/ebs_backup.rb +89 -0
  41. data/cookbooks/database/recipes/ebs_volume.rb +196 -0
  42. data/cookbooks/database/recipes/master.rb +78 -0
  43. data/cookbooks/database/recipes/snapshot.rb +62 -0
  44. data/cookbooks/database/templates/default/app_grants.sql.erb +8 -0
  45. data/cookbooks/database/templates/default/aws_config.erb +3 -0
  46. data/cookbooks/database/templates/default/chef-solo-database-snapshot.cron.erb +10 -0
  47. data/cookbooks/database/templates/default/chef-solo-database-snapshot.json.erb +1 -0
  48. data/cookbooks/database/templates/default/chef-solo-database-snapshot.rb.erb +6 -0
  49. data/cookbooks/database/templates/default/ebs-backup-cron.erb +2 -0
  50. data/cookbooks/database/templates/default/ebs-db-backup.sh.erb +8 -0
  51. data/cookbooks/database/templates/default/ebs-db-restore.sh.erb +10 -0
  52. data/cookbooks/database/templates/default/s3cfg.erb +27 -0
  53. data/cookbooks/mysql/README.md +148 -0
  54. data/cookbooks/mysql/attributes/server.rb +68 -0
  55. data/cookbooks/mysql/libraries/database.rb +19 -0
  56. data/cookbooks/mysql/libraries/helpers.rb +33 -0
  57. data/cookbooks/mysql/metadata.rb +90 -0
  58. data/cookbooks/mysql/recipes/client.rb +51 -0
  59. data/cookbooks/mysql/recipes/default.rb +20 -0
  60. data/cookbooks/mysql/recipes/server.rb +133 -0
  61. data/cookbooks/mysql/recipes/server_ec2.rb +49 -0
  62. data/cookbooks/mysql/templates/default/debian.cnf.erb +12 -0
  63. data/cookbooks/mysql/templates/default/grants.sql.erb +15 -0
  64. data/cookbooks/mysql/templates/default/my.cnf.erb +176 -0
  65. data/cookbooks/mysql/templates/default/mysql-server.seed.erb +10 -0
  66. data/cookbooks/mysql/templates/default/port_mysql.erb +3 -0
  67. data/cookbooks/openssl/README.md +37 -0
  68. data/cookbooks/openssl/libraries/secure_password.rb +37 -0
  69. data/cookbooks/openssl/metadata.rb +8 -0
  70. data/cookbooks/openssl/recipes/default.rb +19 -0
  71. data/cookbooks/passenger_enterprise/README.rdoc +8 -0
  72. data/cookbooks/passenger_enterprise/attributes/default.rb +28 -0
  73. data/cookbooks/passenger_enterprise/cc.gemspec +36 -0
  74. data/cookbooks/passenger_enterprise/metadata.json +44 -0
  75. data/cookbooks/passenger_enterprise/metadata.rb +16 -0
  76. data/cookbooks/passenger_enterprise/recipes/apache2.rb +54 -0
  77. data/cookbooks/passenger_enterprise/recipes/default.rb +30 -0
  78. data/cookbooks/passenger_enterprise/recipes/nginx.rb +50 -0
  79. data/cookbooks/passenger_enterprise/templates/default/passenger.conf.erb +2 -0
  80. data/cookbooks/passenger_enterprise/templates/default/passenger.load.erb +1 -0
  81. data/cookbooks/passenger_enterprise/templates/default/passenger_nginx.conf.erb +2 -0
  82. data/cookbooks/ruby_enterprise/README.rdoc +55 -0
  83. data/cookbooks/ruby_enterprise/attributes/default.rb +33 -0
  84. data/cookbooks/ruby_enterprise/cc.gemspec +36 -0
  85. data/cookbooks/ruby_enterprise/definitions/ree_gem.rb +28 -0
  86. data/cookbooks/ruby_enterprise/metadata.json +45 -0
  87. data/cookbooks/ruby_enterprise/metadata.rb +13 -0
  88. data/cookbooks/ruby_enterprise/recipes/default.rb +67 -0
  89. data/data_bags/deploy/authorized_keys.json +9 -0
  90. data/dna.json +25 -0
  91. data/elzar.gemspec +22 -0
  92. data/lib/elzar.rb +21 -0
  93. data/lib/elzar/assistant.rb +77 -0
  94. data/lib/elzar/chef_dna.rb +48 -0
  95. data/lib/elzar/template.rb +24 -0
  96. data/lib/elzar/templates/Gemfile +11 -0
  97. data/lib/elzar/templates/Vagrantfile.erb +16 -0
  98. data/lib/elzar/templates/dna.json +25 -0
  99. data/lib/elzar/templates/solo.rb.erb +6 -0
  100. data/lib/elzar/version.rb +3 -0
  101. data/roles/enterprise_appstack.rb +4 -0
  102. data/roles/plumbing.rb +11 -0
  103. data/roles/postgres_database.rb +4 -0
  104. data/roles/ruby_appstack.rb +4 -0
  105. data/script/install_cookbook +6 -0
  106. data/script/new_cookbook +5 -0
  107. data/site-cookbooks/.gitkeep +0 -0
  108. data/site-cookbooks/curl/README.md +17 -0
  109. data/site-cookbooks/curl/metadata.rb +6 -0
  110. data/site-cookbooks/curl/recipes/default.rb +11 -0
  111. data/site-cookbooks/nginx/CHANGELOG.md +11 -0
  112. data/site-cookbooks/nginx/CONTRIBUTING +29 -0
  113. data/site-cookbooks/nginx/LICENSE +201 -0
  114. data/site-cookbooks/nginx/README.md +76 -0
  115. data/site-cookbooks/nginx/attributes/default.rb +65 -0
  116. data/site-cookbooks/nginx/definitions/nginx_site.rb +35 -0
  117. data/site-cookbooks/nginx/files/default/mime.types +73 -0
  118. data/site-cookbooks/nginx/metadata.rb +89 -0
  119. data/site-cookbooks/nginx/recipes/default.rb +57 -0
  120. data/site-cookbooks/nginx/recipes/source.rb +126 -0
  121. data/site-cookbooks/nginx/templates/default/default-site.erb +11 -0
  122. data/site-cookbooks/nginx/templates/default/nginx.conf.erb +42 -0
  123. data/site-cookbooks/nginx/templates/default/nginx.init.erb +91 -0
  124. data/site-cookbooks/nginx/templates/default/nxdissite.erb +29 -0
  125. data/site-cookbooks/nginx/templates/default/nxensite.erb +38 -0
  126. data/site-cookbooks/passenger/README.md +12 -0
  127. data/site-cookbooks/passenger/attributes/default.rb +3 -0
  128. data/site-cookbooks/passenger/metadata.rb +6 -0
  129. data/site-cookbooks/passenger/recipes/default.rb +39 -0
  130. data/site-cookbooks/passenger/templates/default/passenger_nginx.conf.erb +2 -0
  131. data/site-cookbooks/postgresql/README.md +150 -0
  132. data/site-cookbooks/postgresql/attributes/default.rb +72 -0
  133. data/site-cookbooks/postgresql/metadata.rb +21 -0
  134. data/site-cookbooks/postgresql/recipes/client.rb +40 -0
  135. data/site-cookbooks/postgresql/recipes/default.rb +20 -0
  136. data/site-cookbooks/postgresql/recipes/server.rb +74 -0
  137. data/site-cookbooks/postgresql/recipes/server_debian.rb +62 -0
  138. data/site-cookbooks/postgresql/recipes/server_redhat.rb +82 -0
  139. data/site-cookbooks/postgresql/templates/default/debian.postgresql.conf.erb +499 -0
  140. data/site-cookbooks/postgresql/templates/default/pg_hba.conf.erb +83 -0
  141. data/site-cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb +501 -0
  142. data/site-cookbooks/rails_app/README.md +15 -0
  143. data/site-cookbooks/rails_app/attributes/default.rb +2 -0
  144. data/site-cookbooks/rails_app/files/default/sudoers +26 -0
  145. data/site-cookbooks/rails_app/metadata.rb +6 -0
  146. data/site-cookbooks/rails_app/recipes/default.rb +143 -0
  147. data/site-cookbooks/rails_app/recipes/system_libraries.rb +12 -0
  148. data/site-cookbooks/rails_app/templates/default/pg_hba.conf.erb +84 -0
  149. data/site-cookbooks/rails_app/templates/default/rails_app_nginx.erb +10 -0
  150. data/site-cookbooks/ruby/README.md +12 -0
  151. data/site-cookbooks/ruby/attributes/default.rb +6 -0
  152. data/site-cookbooks/ruby/metadata.rb +6 -0
  153. data/site-cookbooks/ruby/recipes/default.rb +54 -0
  154. data/solo.rb +7 -0
  155. data/upgrade-chef.sh +8 -0
  156. metadata +272 -0
@@ -0,0 +1,15 @@
1
+ Description
2
+ ===========
3
+
4
+ Set up a rails deployment target on the target vm.
5
+
6
+ Requirements
7
+ ============
8
+
9
+
10
+ Attributes
11
+ ==========
12
+
13
+ Usage
14
+ =====
15
+
@@ -0,0 +1,2 @@
1
+ default[:rails_app][:name] = "elzar_test"
2
+ default[:rails_app][:rails_env] = "production"
@@ -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,6 @@
1
+ maintainer "Relevance"
2
+ maintainer_email "opfor@thinkrelevance.com"
3
+ license "All rights reserved"
4
+ description "Installs/Configures rails_app"
5
+ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
6
+ version "0.0.1"
@@ -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,12 @@
1
+ #
2
+ # Cookbook Name:: rails_app
3
+ # Recipe:: common_libraries
4
+ #
5
+ # Copyright 2011, Relevance
6
+ #
7
+ # All rights reserved - Do Not Redistribute
8
+ #
9
+
10
+ package 'git-core'
11
+ package 'libxml2-dev'
12
+ package 'libxslt-dev'
@@ -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,12 @@
1
+ Description
2
+ ===========
3
+
4
+ Requirements
5
+ ============
6
+
7
+ Attributes
8
+ ==========
9
+
10
+ Usage
11
+ =====
12
+
@@ -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,6 @@
1
+ maintainer "Relevance"
2
+ maintainer_email "opfor@thinkrelevance.com"
3
+ license "All rights reserved"
4
+ description "Installs/Configures ruby"
5
+ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
6
+ version "0.0.1"
@@ -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
@@ -0,0 +1,7 @@
1
+ file_cache_path "/tmp/chef-solo"
2
+ data_bag_path "/tmp/chef-solo/data_bags"
3
+ cookbook_path [ "/tmp/chef-solo/site-cookbooks",
4
+ "/tmp/chef-solo/cookbooks" ]
5
+ role_path "/tmp/chef-solo/roles"
6
+ log_level :debug
7
+ log_location STDOUT
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+ gem list -d chef | grep "0.10.2"
3
+ OLD_CHEF_INSTALLED=$?
4
+ if [ $OLD_CHEF_INSTALLED -eq 0 ]
5
+ then
6
+ gem install chef -v '=0.10.8' --no-ri --no-rdoc
7
+ gem uninstall chef -v '<0.10.8'
8
+ fi
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: []