diff --git a/attributes/default.rb b/attributes/default.rb index 748b86b8..c1a2e1dc 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -7,8 +7,9 @@ default['ndb']['version'] = "#{node['ndb']['majorVersion']}.#{node['ndb']['minorVersion']}.#{node['ndb']['patchVersion']}" default['ndb']['enabled'] = "true" default['ndb']['glib_version'] = "2.28" +default['ndb']['cpu_platform'] = "x86_64" -default['ndb']['url'] = node['download_url'] + "/rondb-#{node['ndb']['version']}-linux-glibc#{node['ndb']['glib_version']}-x86_64.tar.gz" +default['ndb']['url'] = node['download_url'] + "/rondb-#{node['ndb']['version']}-linux-glibc#{node['ndb']['glib_version']}-#{node['ndb']['cpu_platform']}.tar.gz" # checksum is not a security check - used to improve the speed of downloads by skipping if matched # checksum calculated using: shasum -a 256 /var/www/hops/...tgz | cut -c-12 # checksum calculated using: sha256sum /var/www/hops/...tgz | cut -c-12 @@ -30,7 +31,7 @@ default['ndb']['bind_cpus'] = "false" default['ndb']['mgmd']['port'] = 1186 -default['ndb']['ndbd']['port'] = 10000 +default['ndb']['ndbd']['port'] = 11860 default['ndb']['ndbd']['systemctl_timeout_sec'] = 3600 default['ndb']['ip'] = "10.0.2.15" @@ -129,9 +130,9 @@ default['ndb']['interrupts_isolated_to_single_cpu'] = "false" -default['mgm']['scripts'] = %w{ enter-singleuser-mode.sh mgm-client.sh mgm-server-start.sh mgm-server-stop.sh mgm-server-restart.sh cluster-shutdown.sh cluster-init.sh cluster-start-with-recovery.sh exit-singleuser-mode.sh } -default['ndb']['scripts'] = %w{ ndbd-start.sh ndbd-init.sh ndbd-stop.sh ndbd-restart.sh } -default['mysql']['scripts'] = %w{ get-mysql-socket.sh get-mysql-port.sh mysql-server-start.sh mysql-server-stop.sh mysql-server-restart.sh mysql-client.sh } +default['mgm']['scripts'] = %w{ enter-singleuser-mode.sh mgm-client.sh mgm-server-start.sh mgm-server-stop.sh mgm-server-restart.sh cluster-shutdown.sh cluster-init.sh cluster-start-with-recovery.sh exit-singleuser-mode.sh mgmd_env_variables } +default['ndb']['scripts'] = %w{ ndbd-start.sh ndbd-init.sh ndbd-stop.sh ndbd-restart.sh ndbd_env_variables } +default['mysql']['scripts'] = %w{ get-mysql-socket.sh get-mysql-port.sh mysql-server-start.sh mysql-server-stop.sh mysql-server-restart.sh mysql-client.sh mysqld_env_variables } default['ndb']['dir'] = node['install']['dir'].empty? ? "/var/lib" : node['install']['dir'] diff --git a/files/default/ndbd_env_variables b/files/default/ndbd_env_variables deleted file mode 100644 index 0cfb6b05..00000000 --- a/files/default/ndbd_env_variables +++ /dev/null @@ -1 +0,0 @@ -NDBD_INITIAL_RESTART=false \ No newline at end of file diff --git a/recipes/mgmd.rb b/recipes/mgmd.rb index 9de48e6d..039ea662 100644 --- a/recipes/mgmd.rb +++ b/recipes/mgmd.rb @@ -101,7 +101,6 @@ group "root" mode 0754 cookbook 'ndb' - variables({ :node_id => found_id }) if node['services']['enabled'] == "true" notifies :enable, resources(:service => service_name) end diff --git a/recipes/mysqld.rb b/recipes/mysqld.rb index 6d3882c6..37d52879 100644 --- a/recipes/mysqld.rb +++ b/recipes/mysqld.rb @@ -86,8 +86,7 @@ mode 0755 cookbook 'ndb' variables({ - :deps => deps, - :pid_file => "#{node['ndb']['log_dir']}/mysql_#{found_id}.pid" + :deps => deps }) end @@ -251,4 +250,4 @@ #{exec} -e "source #{grants_path}" EOF only_if {node['mysql']['onlinefs'].casecmp?("true")} -end \ No newline at end of file +end diff --git a/recipes/ndbd.rb b/recipes/ndbd.rb index cb6a9395..cba669aa 100644 --- a/recipes/ndbd.rb +++ b/recipes/ndbd.rb @@ -132,13 +132,6 @@ action :create end -cookbook_file "#{node['ndb']['scripts_dir']}/ndbd_env_variables" do - source "ndbd_env_variables" - user node['ndb']['user'] - group node['ndb']['group'] - mode 0750 -end - for script in node['ndb']['scripts'] template "#{node['ndb']['scripts_dir']}/#{script}" do source "#{script}.erb" @@ -176,7 +169,6 @@ mode 0754 variables({ :deps => deps, - :node_id => found_id }) if node['services']['enabled'] == "true" notifies :enable, resources(:service => service_name) diff --git a/templates/default/mgm-client.sh.erb b/templates/default/mgm-client.sh.erb index e143fb22..19cc2222 100644 --- a/templates/default/mgm-client.sh.erb +++ b/templates/default/mgm-client.sh.erb @@ -1,6 +1,8 @@ #!/usr/bin/env sh -MGM_CONN=<%= node['ndb']['connectstring'] %> +. <%= node['ndb']['scripts_dir'] %>/mgmd_env_variables + +MGM_CONN=${MGM_CONN_STRING} PARAMS= EXEC= while [ $# -gt 0 ]; do diff --git a/templates/default/mgm-server-start.sh.erb b/templates/default/mgm-server-start.sh.erb index a254674c..098041fd 100644 --- a/templates/default/mgm-server-start.sh.erb +++ b/templates/default/mgm-server-start.sh.erb @@ -8,12 +8,12 @@ if [ "X$USERID" != "X<%= node['ndb']['user'] %>" ]; then exit -3 fi -echo "Testing to see if a cluster is already running on <%= node['ndb']['connectstring'] %> ..." -# <%= node['mysql']['base_dir'] %>/bin/ndb_mgm -c <%= node['ndb']['connectstring'] %> -e \"show\"> /dev/null +echo "Testing to see if a cluster is already running on ${MGM_CONN_STRING} ..." +# <%= node['mysql']['base_dir'] %>/bin/ndb_mgm -c ${MGM_CONN_STRING} -e \"show\"> /dev/null ss -Hltu | grep -e "<%= node['ndb']['mgmd']['port'] %>\s" if [ $? -eq 0 ] ; then - echo "A management server is already running on <%= node['ndb']['connectstring'] %>" + echo "A management server is already running on ${MGM_CONN_STRING} %>" exit 2 fi @@ -23,11 +23,17 @@ if [ ! -e <%= node['mysql']['base_dir'] %>/bin/ndb_mgmd ] ; then exit 3 fi +INITIAL_START_ARG= +if [ -n "$INITIAL_START" ]; then + INITIAL_START_ARG="--initial" +fi + +SERVICE_ARG="--service-name ${SERVICE_NAME:-ndb_mgmd}" <% if #{node['ndb']['use_systemd']} == "true" -%> -<%= node['mysql']['base_dir'] %>/bin/ndb_mgmd --ndb-nodeid=<%= @node_id %> -f <%= node['ndb']['root_dir'] %>/config.ini --configdir=<%= node['ndb']['mgm_dir'] %> --reload --initial +<%= node['mysql']['base_dir'] %>/bin/ndb_mgmd --ndb-nodeid=${NDB_MGMD_NODE_ID} -f <%= node['ndb']['root_dir'] %>/config.ini --configdir=<%= node['ndb']['mgm_dir'] %> --reload ${INITIAL_START_ARG} ${SERVICE_ARG} <% else -%> -su <%= node['ndb']['user'] %> -c \"<% node['mysql']['base_dir'] %>/bin/ndb_mgmd --ndb-nodeid=<%= @node_id %> -f <%= node['ndb']['root_dir'] %>/config.ini --configdir=<%= node['ndb']['mgm_dir'] %> --reload --initial\" +su <%= node['ndb']['user'] %> -c \"<% node['mysql']['base_dir'] %>/bin/ndb_mgmd --ndb-nodeid=${NDB_MGMD_NODE_ID} -f <%= node['ndb']['root_dir'] %>/config.ini --configdir=<%= node['ndb']['mgm_dir'] %> --reload ${INITIAL_START_ARG} ${SERVICE_ARG}\" <% end -%> diff --git a/templates/default/mgm-server-stop.sh.erb b/templates/default/mgm-server-stop.sh.erb index fecadf47..6bf31666 100644 --- a/templates/default/mgm-server-stop.sh.erb +++ b/templates/default/mgm-server-stop.sh.erb @@ -9,7 +9,6 @@ if [ $# -gt 0 ] ;then fi fi -ID=<%= @node_id %> -PID_FILE=<%= "#{node['ndb']['log_dir']}/ndb_${ID}.pid" %> +PID_FILE=<%= "#{node['ndb']['log_dir']}/ndb_mgmd.pid" %> <%= node['ndb']['scripts_dir'] %>/util/kill-process.sh ndb_mgmd $PID_FILE 0 $FORCE exit $? diff --git a/templates/default/mgmd_env_variables.erb b/templates/default/mgmd_env_variables.erb new file mode 100644 index 00000000..1fc47896 --- /dev/null +++ b/templates/default/mgmd_env_variables.erb @@ -0,0 +1,5 @@ +MGM_CONN_STRING=<%= node['ndb']['connectstring'] %> +NDB_MGMD_NODE_ID=<%= @node_id %> + +INITIAL_START=1 +SERVICE_NAME=ndb_mgmd \ No newline at end of file diff --git a/templates/default/my-ndb.cnf.erb b/templates/default/my-ndb.cnf.erb index 745c1591..9abff1c1 100644 --- a/templates/default/my-ndb.cnf.erb +++ b/templates/default/my-ndb.cnf.erb @@ -13,7 +13,7 @@ socket = <%= node['ndb']['mysql_socket'] %> mysqlx_port = <%= node['ndb']['mysqlx_port'] %> mysqlx_socket = <%= node['ndb']['mysqlx_socket'] %> bind-address = 0.0.0.0 -pid-file = <%= node['ndb']['log_dir'] %>/mysql_<%= @mysql_id %>.pid +pid-file = <%= node['ndb']['log_dir'] %>/mysqld.pid tmpdir = /tmp max-connections = 512 max-prepared-stmt-count = 65530 diff --git a/templates/default/mysql-server-start.sh.erb b/templates/default/mysql-server-start.sh.erb index 52911ac6..e7a64370 100644 --- a/templates/default/mysql-server-start.sh.erb +++ b/templates/default/mysql-server-start.sh.erb @@ -33,7 +33,7 @@ rm -f /tmp/mysql.sock.lock export MYSQL_HOME=<%= node['ndb']['root_dir'] %> if [ $SKIP_WAIT -ne 1 ] ; then - <%= node['mysql']['base_dir'] %>/bin/ndb_waiter -c <%= node['ndb']['connectstring'] %> --timeout=<%= node['ndb']['wait_startup'] %> 2>&1 > /dev/null + <%= node['mysql']['base_dir'] %>/bin/ndb_waiter -c ${MGM_CONN_STRING} --timeout=<%= node['ndb']['wait_startup'] %> 2>&1 > /dev/null fi <% if #{node['ndb']['use_systemd']} == "true" then -%> diff --git a/templates/default/mysql-server-stop.sh.erb b/templates/default/mysql-server-stop.sh.erb index 38db3a06..a7bbf4fc 100644 --- a/templates/default/mysql-server-stop.sh.erb +++ b/templates/default/mysql-server-stop.sh.erb @@ -11,8 +11,7 @@ fi MYSQL_SOCKET=$(<%= node['ndb']['base_dir'] %>/scripts/get-mysql-socket.sh) wait_pid_removed=10 -ID=<%= @node_id %> -PID_FILE=<%= node['ndb']['log_dir'] %>/mysql_$ID.pid +PID_FILE=<%= node['ndb']['log_dir'] %>/mysqld.pid <%= node['ndb']['scripts_dir'] %>/util/kill-process.sh mysqld $PID_FILE 0 $FORCE exit $? diff --git a/templates/default/mysqld.service.erb b/templates/default/mysqld.service.erb index c24c3bda..71b04d6f 100644 --- a/templates/default/mysqld.service.erb +++ b/templates/default/mysqld.service.erb @@ -6,7 +6,8 @@ StartLimitBurst=10 [Service] User = <%= node['ndb']['user'] %> -PIDFile = <%= @pid_file %> +PIDFile =<%= node['ndb']['log_dir'] %>/mysqld.pid +EnvironmentFile = <%= node['ndb']['scripts_dir'] %>/mysqld_env_variables ExecStart = <%= node['ndb']['scripts_dir'] %>/mysql-server-start.sh ExecStop = <%= node['ndb']['scripts_dir'] %>/mysql-server-stop.sh ExecReload = <%= node['ndb']['scripts_dir'] %>/mysql-server-restart.sh diff --git a/templates/default/mysqld_env_variables.erb b/templates/default/mysqld_env_variables.erb new file mode 100644 index 00000000..3bd035b7 --- /dev/null +++ b/templates/default/mysqld_env_variables.erb @@ -0,0 +1,2 @@ +MGM_CONN_STRING=<%= node['ndb']['connectstring'] %> +SERVICE_NAME=mysqld diff --git a/templates/default/ndb_mgmd.service.erb b/templates/default/ndb_mgmd.service.erb index d4da5465..5e63e282 100644 --- a/templates/default/ndb_mgmd.service.erb +++ b/templates/default/ndb_mgmd.service.erb @@ -6,7 +6,8 @@ StartLimitBurst=20 [Service] User = <%= node['ndb']['user'] %> -PIDFile = <%= "#{node['ndb']['log_dir']}" %>/ndb_<%= @node_id %>.pid +PIDFile = <%= "#{node['ndb']['log_dir']}" %>/ndb_mgmd.pid +EnvironmentFile = <%= node['ndb']['scripts_dir'] %>/mgmd_env_variables ExecStart = <%= "#{node['ndb']['base_dir']}/scripts/mgm-server-start.sh" %> ExecStop = <%= "#{node['ndb']['base_dir']}/scripts/mgm-server-stop.sh" %> ExecReload = <%= "#{node['ndb']['base_dir']}/scripts/mgm-server-restart.sh" %> diff --git a/templates/default/ndbd-init.sh.erb b/templates/default/ndbd-init.sh.erb index c6d2542e..00b3d7b4 100644 --- a/templates/default/ndbd-init.sh.erb +++ b/templates/default/ndbd-init.sh.erb @@ -30,6 +30,7 @@ while [ $# -gt 0 ]; do shift done +SERVICE_ARG="--service-name ${SERVICE_NAME:-ndbmtd}" echo "Initializing Data Node <%= @node_id %>." echo "" diff --git a/templates/default/ndbd-start.sh.erb b/templates/default/ndbd-start.sh.erb index f928144c..20ae165e 100644 --- a/templates/default/ndbd-start.sh.erb +++ b/templates/default/ndbd-start.sh.erb @@ -8,12 +8,16 @@ if [ "X$USERID" != "X<%= node['ndb']['user'] %>" ]; then exit -3 fi -if [ "${NDBD_INITIAL_RESTART}" = "true" ]; then +INIT_ARG= +if [ "${NDBD_INITIAL_RESTART}" = "true" ] || [ -n "${INITIAL_START}" ]; then INIT_ARG=--initial sed -i 's/^NDBD_INITIAL_RESTART=.*$/NDBD_INITIAL_RESTART=false/g' <%= node['ndb']['scripts_dir'] %>/ndbd_env_variables + sed -i 's/^INITIAL_START=.*$/INITIAL_START=/g' <%= node['ndb']['scripts_dir'] %>/ndbd_env_variables fi -MGM_CONN=<%= node['ndb']['connectstring'] %> +SERVICE_ARG="--service-name ${SERVICE_NAME:-ndbmtd}" + +MGM_CONN=${MGM_CONN_STRING} # comma separated list of node-ids of nodes not to wait for when starting this ndbmtd NOWAIT_NODES_LIST= @@ -45,8 +49,8 @@ done echo "Starting Data Node <%= @node_id %>." # --connect-retries == -1 implies that the ndbd keeps trying forever to connect to the ndb_mgmd -#su <%= node['ndb']['user'] %> -c "<%= node['mysql']['base_dir'] %>/bin/ndbmtd -c $MGM_CONN --ndb-nodeid=<%= @node_id %> --connect-retries=-1 --connect-delay=10" -<%= node['mysql']['base_dir'] %>/bin/ndbmtd -c "$MGM_CONN" --ndb-nodeid=<%= @node_id %> --connect-retries=-1 --connect-delay=10 $INIT_ARG $NOWAIT_NODES_LIST +#su <%= node['ndb']['user'] %> -c "<%= node['mysql']['base_dir'] %>/bin/ndbmtd -c $MGM_CONN --ndb-nodeid=${NDB_NDBD_NODE_ID} --connect-retries=-1 --connect-delay=10 ${SERVICE_ARG}" +<%= node['mysql']['base_dir'] %>/bin/ndbmtd -c "$MGM_CONN" --ndb-nodeid=${NDB_NDBD_NODE_ID} --connect-retries=-1 --connect-delay=10 $INIT_ARG $NOWAIT_NODES_LIST ${SERVICE_ARG} RES=$(echo $?) exit $RES diff --git a/templates/default/ndbd-stop.sh.erb b/templates/default/ndbd-stop.sh.erb index 47fd83eb..c929ba2f 100644 --- a/templates/default/ndbd-stop.sh.erb +++ b/templates/default/ndbd-stop.sh.erb @@ -9,7 +9,6 @@ if [ $# -gt 0 ] ;then fi fi -ID=<%= @node_id %> -PID_FILE=<%= "#{node['ndb']['log_dir']}/ndb_${ID}.pid" %> +PID_FILE=<%= "#{node['ndb']['log_dir']}/ndbmtd.pid" %> <%= node['ndb']['scripts_dir'] %>/util/kill-process.sh ndbmtd $PID_FILE 1 $FORCE exit $? diff --git a/templates/default/ndbd_env_variables.erb b/templates/default/ndbd_env_variables.erb new file mode 100644 index 00000000..049afd7c --- /dev/null +++ b/templates/default/ndbd_env_variables.erb @@ -0,0 +1,7 @@ +NDBD_INITIAL_RESTART=false + +MGM_CONN_STRING=<%= node['ndb']['connectstring'] %> +NDB_NDBD_NODE_ID=<%= @node_id %> + +INITIAL_START= +SERVICE_NAME=ndbmtd \ No newline at end of file diff --git a/templates/default/ndbmtd.service.erb b/templates/default/ndbmtd.service.erb index 10510500..75c254a6 100644 --- a/templates/default/ndbmtd.service.erb +++ b/templates/default/ndbmtd.service.erb @@ -7,7 +7,7 @@ StartLimitBurst=10 [Service] User = <%= node['ndb']['user'] %> Nice = -20 -PIDFile = <%= "#{node['ndb']['log_dir']}" %>/ndb_<%= @node_id %>.pid +PIDFile = <%= "#{node['ndb']['log_dir']}" %>/ndbmtd.pid EnvironmentFile = <%= node['ndb']['scripts_dir'] %>/ndbd_env_variables ExecStart = <%= "#{node['ndb']['base_dir']}/scripts/ndbd-start.sh" %> ExecStop = <%= "#{node['ndb']['base_dir']}/scripts/ndbd-stop.sh" %>