Skip to content
This repository has been archived by the owner on Jan 26, 2022. It is now read-only.

Commit

Permalink
Upgrade mysql to latest in services_ng branch
Browse files Browse the repository at this point in the history
stager shortlog
===================================================
Jennifer Hickey and Matthew Kocher (1):
      Bump vcap-staging

Maria Shaldybina (1):
      Assets precompilation for rails3 and fixes

Pieter Noordhuis (1):
      Bump vcap-staging

Change-Id: Ia18bbd8c78d1541ef0f69444f86607d86014bacb
  • Loading branch information
Haipeng Wu committed Dec 27, 2012
1 parent 1c92965 commit b48f2bf
Show file tree
Hide file tree
Showing 15 changed files with 510 additions and 185 deletions.
Expand Up @@ -18,7 +18,7 @@
service_name = "rabbit" if service_name == "rabbitmq"

# Work around for vblob/redis/mongo/rabbit since other services haven't wardenized
if ["vblob", "rabbit", "mongodb", "redis"].include?(service_name)
if ["vblob", "rabbit", "mongodb", "redis", "mysql"].include?(service_name)
cf_bundle_install(File.join(node[:cloudfoundry][:path], "services", "ng", service_name))
else
cf_bundle_install(File.join(node[:cloudfoundry][:path], "services", service_name))
Expand Down
25 changes: 15 additions & 10 deletions dev_setup/cookbooks/mysql/attributes/default.rb
@@ -1,26 +1,31 @@
include_attribute "backup"
include_attribute "service_lifecycle"
include_attribute "service"

default[:mysql][:supported_versions] = {
"5.1" => "5.1",
}
default[:mysql][:version_aliases] = {
"current" => "5.1",
}
default[:mysql][:default_version] = "5.1"
default[:mysql][:default_version] = "5.5"

default[:mysql][:path] = File.join(node[:service][:path], "mysql")

default[:mysql][:id][:server] = "eyJzaWciOiJNeTJsYkFDMk4xcnphZTM1ejBXV2ltbFhGOWs9Iiwib2lkIjoi%0ANGU0ZTc4YmNhNjFlMTIyMDA0ZTRlOGVjNmI0NGI2MDUwZDJhOGFlNGMyOTki%0AfQ==%0A"
default[:mysql][:id][:client] = "eyJzaWciOiI1eEhUaWdmTU1vSFBzamZkZGM4ZWxZaWZwKzA9Iiwib2lkIjoi%0ANGU0ZTc4YmNhMzFlMTIyMDA0ZTRlOGVjNjQ2ZTIxMDUwZDJhODhkNTQyOWYi%0AfQ==%0A"
default[:mysql][:id][:initdb] = "eyJzaWciOiJMZ3cvVVN4YllhMDhUS3c3U1g4R0REeEVyUlk9Iiwib2lkIjoi%0ANGU0ZTc4YmNhNDFlMTIxMDA0ZTRlN2Q1MTc2MThmMDUwZDJhOGExMmYxYzci%0AfQ==%0A"

default[:mysql][:checksum][:server] = "34197617ccd74cd7e8bd639fb8b168172bf3bd0b48de9d9e567b535a315b89e8"
default[:mysql][:checksum][:client] = "6c758ca82eeeb3e746cdffa03e1a0f28e51befd248e2e9a5fc1477b287f0d52c"
default[:mysql][:checksum][:initdb] = "fd13b9586c4dfbc8a06c4d0240dca887fd748f6a4f80f74b445271a700976a66"

default[:mysql][:server_root_password] = "mysql"
default[:mysql][:server_root_user] = "root"
default[:mysql][:host] = "localhost"

default[:mysql_gateway][:service][:timeout] = "15"
default[:mysql_gateway][:node_timeout] = "2"
default[:mysql_gateway][:service][:timeout] = "25"
default[:mysql_gateway][:node_timeout] = "20"

default[:mysql_node][:capacity] = "50"
default[:mysql_node][:index] = "0"
default[:mysql_node][:max_db_size] = "20"
default[:mysql_node][:token] = "changemysqltoken"
default[:mysql_node][:op_time_limit] = "6"
default[:mysql_node][:op_time_limit] = "15"
default[:mysql_node][:connection_wait_timeout] = "10"

default[:mysql_backup][:config_file] = "mysql_backup.yml"
Expand Down
140 changes: 115 additions & 25 deletions dev_setup/cookbooks/mysql/recipes/default.rb
Expand Up @@ -6,34 +6,124 @@
#
#

case node['platform']
when "ubuntu"
package "mysql-client"

bash "Setup mysql" do
code <<-EOH
echo mysql-server-5.1 mysql-server/root_password select #{node[:mysql][:server_root_password]} | debconf-set-selections
echo mysql-server-5.1 mysql-server/root_password_again select #{node[:mysql][:server_root_password]} | debconf-set-selections
EOH
not_if do
::File.exists?(File.join("", "usr", "sbin", "mysqld"))
end
end
version = "5.5.27-rel28.1-296.Linux.x86_64"

client_package = File.join(node[:deployment][:setup_cache], "client-#{version}.tar.gz")
cf_remote_file client_package do
owner node[:deployment][:user]
id node[:mysql][:id][:client]
checksum node[:mysql][:checksum][:client]
end

package "mysql-server"
server_package = File.join(node[:deployment][:setup_cache], "server-#{version}.tar.gz")
cf_remote_file server_package do
owner node[:deployment][:user]
id node[:mysql][:id][:server]
checksum node[:mysql][:checksum][:server]
end

template File.join("", "etc", "mysql", "my.cnf") do
source "ubuntu.cnf.erb"
owner "root"
group "root"
mode "0600"
notifies :restart, "service[mysql]"
initdb_package = File.join(node[:deployment][:setup_cache], "mysql-initdb-#{version}.tar.gz")
cf_remote_file initdb_package do
owner node[:deployment][:user]
id node[:mysql][:id][:initdb]
checksum node[:mysql][:checksum][:initdb]
end

directory node[:mysql][:path] do
owner node[:deployment][:user]
group node[:deployment][:group]
mode "0755"
recursive true
action :create
end

bash "install mysql client" do
cwd File.join("", "tmp")
user node[:deployment][:user]
code <<-EOH
mkdir -p "#{node[:mysql][:path]}/mysqlclient"
tar zxvf #{client_package}
cd client-#{version}
for x in bin include lib; do
cp -a ${x} "#{node[:mysql][:path]}/mysqlclient"
done
EOH
not_if do
::File.exists?(File.join("#{node[:mysql][:path]}", "mysqlclient", "bin", "mysql"))
end
end

bash "install mysql server" do
cwd File.join("", "tmp")
user node[:deployment][:user]
code <<-EOH
mkdir -p "#{node[:mysql][:path]}/#{node[:mysql][:default_version]}"
tar zxvf #{server_package}
cd server-#{version}
for x in bin include lib libexec share; do
cp -a ${x} "#{node[:mysql][:path]}/#{node[:mysql][:default_version]}"
done
EOH
not_if do
::File.exists?(File.join("#{node[:mysql][:path]}", "#{node[:mysql][:default_version]}", "bin", "mysql"))
end
end

service "mysql" do
supports :status => true, :restart => true, :reload => true
action [ :enable, :start ]
bash "install initdb" do
cwd File.join("", "tmp")
user node[:deployment][:user]
code <<-EOH
tar zxvf #{initdb_package}
cp -a initdb55 "#{node[:mysql][:path]}/#{node[:mysql][:default_version]}"
EOH
not_if do
::File.exists?(File.join("#{node[:mysql][:path]}", "#{node[:mysql][:default_version]}", "initdb55"))
end
else
Chef::Log.error("Installation of mysql not supported on this platform.")
end

template File.join(node[:mysql][:path], node[:mysql][:default_version], "libexec", "mysql_warden.server") do
source "mysql55_warden.server.erb"
owner node[:deployment][:user]
mode 0755
end

directory File.join(node[:mysql][:path], "common", "bin") do
owner node[:deployment][:user]
group node[:deployment][:group]
mode "0755"
recursive true
action :create
end

directory File.join(node[:mysql][:path], "common", "config") do
owner node[:deployment][:user]
group node[:deployment][:group]
mode "0755"
recursive true
action :create
end

bash "install mysql tools" do
user node[:deployment][:user]
code <<-EOH
cp #{node[:service][:common_path]}/utils.sh #{node[:mysql][:path]}/common/bin
EOH
end

template File.join(node[:mysql][:path], "common", "bin", "warden_service_ctl") do
source "warden_service_ctl.erb"
owner node[:deployment][:user]
mode 0755
end

template File.join(node[:mysql][:path], "common", "config", "warden_mysql_init") do
source "warden_mysql_init.erb"
owner node[:deployment][:user]
mode 0644
end

template File.join(node[:mysql][:path], "common", "config", "my55.cnf") do
source "my55.cnf.erb"
owner node[:deployment][:user]
mode 0644
end
50 changes: 50 additions & 0 deletions dev_setup/cookbooks/mysql/templates/default/my55.cnf.erb
@@ -0,0 +1,50 @@
[client]
port = 3307
socket = /var/vcap/sys/run/mysqld/mysqld55.sock

[mysqld_safe]
socket = /var/vcap/sys/run/mysqld/mysqld55.sock
nice = 0
log-error = /var/vcap/sys/log/mysql/mysqld55.err.log

[mysqld]
collation_server = utf8_unicode_ci
character_set_server = utf8
user = vcap
socket = /var/vcap/sys/run/mysqld/mysqld55.sock
port = 3307
basedir = <%= node[:mysql][:path] %>/<%= node[:mysql][:default_version] %>
datadir = /var/vcap/store/mysql55
tmpdir = /var/vcap/data/mysql_tmp
lc-messages-dir = <%= node[:mysql][:path] %>/<%= node[:mysql][:default_version] %>/share
skip-external-locking


init-file = <%= node[:mysql][:path] %>/common/config/warden_mysql_init


key_buffer = 51M
innodb_buffer_pool_size = 154M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 8
max_connections = 40
table_open_cache = 140
myisam-recover = BACKUP
query_cache_limit = 1M
query_cache_size = 13M
expire_logs_days = 10
innodb_file_per_table = 1

innodb_open_files = 100


[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]

[isamchk]
key_buffer = 16M

0 comments on commit b48f2bf

Please sign in to comment.