elzar 0.0.1

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.
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: []