vagrant and chef install everything
This commit is contained in:
14
ops/cookbooks/vendor/mysql/templates/default/apparmor/usr.sbin.mysqld-instance.erb
vendored
Normal file
14
ops/cookbooks/vendor/mysql/templates/default/apparmor/usr.sbin.mysqld-instance.erb
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
/etc/<%= @mysql_name %>/*.pem r,
|
||||
/etc/<%= @mysql_name %>/conf.d/ r,
|
||||
/etc/<%= @mysql_name %>/conf.d/* r,
|
||||
/etc/<%= @mysql_name %>/my.cnf r,
|
||||
<%= @config.log_dir %>/ r,
|
||||
<%= @config.log_dir %>/* rw,
|
||||
<%= @config.data_dir %>/ r,
|
||||
<%= @config.data_dir %>/** rwk,
|
||||
<%= @config.run_dir %>/** rw,
|
||||
<%= @config.pid_file %> rw,
|
||||
<%= @config.socket_file %> rw,
|
||||
/tmp/<%= @mysql_name %>/ r,
|
||||
/tmp/<%= @mysql_name %>/my.sql r,
|
||||
<%= @config.tmp_dir %>/* rw,
|
1
ops/cookbooks/vendor/mysql/templates/default/apparmor/usr.sbin.mysqld-local.erb
vendored
Normal file
1
ops/cookbooks/vendor/mysql/templates/default/apparmor/usr.sbin.mysqld-local.erb
vendored
Normal file
@ -0,0 +1 @@
|
||||
#include <local/mysql>
|
47
ops/cookbooks/vendor/mysql/templates/default/apparmor/usr.sbin.mysqld.erb
vendored
Normal file
47
ops/cookbooks/vendor/mysql/templates/default/apparmor/usr.sbin.mysqld.erb
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
# vim:syntax=apparmor
|
||||
# Last Modified: Tue Jun 19 17:37:30 2007
|
||||
#include <tunables/global>
|
||||
|
||||
/usr/sbin/mysqld {
|
||||
#include <abstractions/base>
|
||||
#include <abstractions/nameservice>
|
||||
#include <abstractions/user-tmp>
|
||||
#include <abstractions/mysql>
|
||||
#include <abstractions/winbind>
|
||||
|
||||
capability dac_override,
|
||||
capability sys_resource,
|
||||
capability setgid,
|
||||
capability setuid,
|
||||
|
||||
network tcp,
|
||||
|
||||
/etc/hosts.allow r,
|
||||
/etc/hosts.deny r,
|
||||
|
||||
/etc/mysql/*.pem r,
|
||||
/etc/mysql/conf.d/ r,
|
||||
/etc/mysql/conf.d/* r,
|
||||
/etc/mysql/*.cnf r,
|
||||
/usr/lib/mysql/plugin/ r,
|
||||
/usr/lib/mysql/plugin/*.so* mr,
|
||||
/usr/sbin/mysqld mr,
|
||||
/usr/share/mysql/** r,
|
||||
/var/log/mysql.log rw,
|
||||
/var/log/mysql.err rw,
|
||||
/var/lib/mysql/ r,
|
||||
/var/lib/mysql/** rwk,
|
||||
/var/log/mysql/ r,
|
||||
/var/log/mysql/* rw,
|
||||
/var/run/mysqld/mysqld.pid rw,
|
||||
/var/run/mysqld/mysqld.sock w,
|
||||
/var/run/mysqld/mysqld.sock.lock rw,
|
||||
/run/mysqld/mysqld.pid rw,
|
||||
/run/mysqld/mysqld.sock w,
|
||||
/run/mysqld/mysqld.sock.lock rw,
|
||||
|
||||
/sys/devices/system/cpu/ r,
|
||||
|
||||
# Site-specific additions and overrides. See local/README for details.
|
||||
#include <local/usr.sbin.mysqld>
|
||||
}
|
57
ops/cookbooks/vendor/mysql/templates/default/my.cnf.erb
vendored
Normal file
57
ops/cookbooks/vendor/mysql/templates/default/my.cnf.erb
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
# Chef generated my.cnf for instance mysql-<%= @config.name %>
|
||||
|
||||
[client]
|
||||
<% if @config.charset %>
|
||||
default-character-set = <%= @config.charset %>
|
||||
<% end %>
|
||||
<% if @config.port %>
|
||||
port = <%= @config.port %>
|
||||
<% end %>
|
||||
<% if @config.socket_file %>
|
||||
socket = <%= @config.socket_file %>
|
||||
<% end %>
|
||||
|
||||
[mysql]
|
||||
<% if @config.charset %>
|
||||
default-character-set = <%= @config.charset %>
|
||||
<% end %>
|
||||
|
||||
[mysqld]
|
||||
<% if @config.run_user %>
|
||||
user = <%= @config.run_user %>
|
||||
<% end %>
|
||||
<% if @config.pid_file %>
|
||||
pid-file = <%= @config.pid_file %>
|
||||
<% end %>
|
||||
<% if @config.socket_file %>
|
||||
socket = <%= @config.socket_file %>
|
||||
<% end %>
|
||||
<% if @config.bind_address %>
|
||||
bind-address = <%= @config.bind_address %>
|
||||
<% end %>
|
||||
<% if @config.port %>
|
||||
port = <%= @config.port %>
|
||||
<% end %>
|
||||
<% if @config.data_dir %>
|
||||
datadir = <%= @config.data_dir %>
|
||||
<% end %>
|
||||
<% if @config.tmp_dir %>
|
||||
tmpdir = <%= @config.tmp_dir %>
|
||||
<% end %>
|
||||
<% @config.mysqld_options.each do |option,value| %>
|
||||
<%= option %> = <%= value %>
|
||||
<% end %>
|
||||
<% if @config.lc_messages_dir %>
|
||||
lc-messages-dir = <%= @config.lc_messages_dir %>
|
||||
<% end %>
|
||||
<% if @config.error_log %>
|
||||
log-error = <%= @config.error_log %>
|
||||
<% end %>
|
||||
<% if @config.include_dir %>
|
||||
!includedir <%= @config.include_dir %>
|
||||
<% end %>
|
||||
|
||||
[mysqld_safe]
|
||||
<% if @config.socket_file %>
|
||||
socket = <%= @config.socket_file %>
|
||||
<% end %>
|
28
ops/cookbooks/vendor/mysql/templates/default/smf/svc.method.mysqld.erb
vendored
Normal file
28
ops/cookbooks/vendor/mysql/templates/default/smf/svc.method.mysqld.erb
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
#!/sbin/sh
|
||||
#
|
||||
# Generated by Chef
|
||||
#
|
||||
|
||||
. /lib/svc/share/smf_include.sh
|
||||
|
||||
ulimit -n 10240
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
<%= @mysqld_bin %> \
|
||||
--defaults-file=<%= @defaults_file %> \
|
||||
--basedir=<%= @base_dir %> \
|
||||
--datadir=<%= @data_dir %> \
|
||||
--pid-file=<%= @pid_file %> \
|
||||
--log-error=<%= @error_log %> &
|
||||
;;
|
||||
stop)
|
||||
[ -f <%= @pid_file %> ] && kill `/usr/bin/head -1 <%= @pid_file %>`
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit $SMF_EXIT_OK
|
30
ops/cookbooks/vendor/mysql/templates/default/systemd/mysqld-wait-ready.erb
vendored
Normal file
30
ops/cookbooks/vendor/mysql/templates/default/systemd/mysqld-wait-ready.erb
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
daemon_pid="$1"
|
||||
|
||||
# Wait for the server to come up or for the mysqld process to disappear
|
||||
ret=0
|
||||
while /bin/true; do
|
||||
RESPONSE=`/usr/bin/mysqladmin --no-defaults --socket="<%= @socket_file %>" --user=UNKNOWN_MYSQL_USER ping 2>&1`
|
||||
mret=$?
|
||||
if [ $mret -eq 0 ]; then
|
||||
break
|
||||
fi
|
||||
# exit codes 1, 11 (EXIT_CANNOT_CONNECT_TO_SERVICE) are expected,
|
||||
# anything else suggests a configuration error
|
||||
if [ $mret -ne 1 -a $mret -ne 11 ]; then
|
||||
ret=1
|
||||
break
|
||||
fi
|
||||
# "Access denied" also means the server is alive
|
||||
echo "$RESPONSE" | grep -q "Access denied for user" && break
|
||||
|
||||
# Check process still exists
|
||||
if ! /bin/kill -0 $daemon_pid 2>/dev/null; then
|
||||
ret=1
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
exit $ret
|
16
ops/cookbooks/vendor/mysql/templates/default/systemd/mysqld.service.erb
vendored
Normal file
16
ops/cookbooks/vendor/mysql/templates/default/systemd/mysqld.service.erb
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description=mysql_service[mysql-<%= @config.instance %>]
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=<%= @config.run_user %>
|
||||
Group=<%= @config.run_group %>
|
||||
ExecStart=<%= @mysqld_bin %> --defaults-file=<%= @etc_dir %>/my.cnf --basedir=<%= @base_dir %>
|
||||
ExecStartPost=/usr/libexec/mysql-<%= @config.instance %>-wait-ready $MAINPID
|
||||
TimeoutSec=300
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
279
ops/cookbooks/vendor/mysql/templates/default/sysvinit/mysqld.erb
vendored
Normal file
279
ops/cookbooks/vendor/mysql/templates/default/sysvinit/mysqld.erb
vendored
Normal file
@ -0,0 +1,279 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: <%= @mysql_name %>
|
||||
# Required-Start: $remote_fs $syslog
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Should-Start: $network $time
|
||||
# Should-Stop: $network $time
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start and stop the mysql database server daemon
|
||||
# Description: Controls the main MySQL database server daemon "mysqld"
|
||||
# and its wrapper script "mysqld_safe".
|
||||
### END INIT INFO
|
||||
|
||||
# set -e
|
||||
# set -u
|
||||
|
||||
### Exit code reference
|
||||
# http://fedoraproject.org/wiki/Packaging:SysVInitScript
|
||||
# http://refspecs.linuxbase.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
|
||||
|
||||
# Source functions
|
||||
<% if node['platform_family'] == 'rhel' %>
|
||||
# Source RHEL function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
<% end %>
|
||||
|
||||
####
|
||||
# Variables
|
||||
####
|
||||
|
||||
STARTTIMEOUT=900
|
||||
STOPTIMEOUT=900
|
||||
PID_DELAY=60
|
||||
|
||||
####
|
||||
# Helper functions
|
||||
###
|
||||
|
||||
# Boolean function to see if MYSQL_PID exists and is a number
|
||||
pid_exists() {
|
||||
PID_EXISTS=1
|
||||
if [ -f <%= @pid_file %> ]; then
|
||||
MYSQLD_PID=`cat <%= @pid_file %> 2>/dev/null`
|
||||
if [ -n "$MYSQLD_PID" ] && [ -d "/proc/$MYSQLD_PID" ] ; then
|
||||
PID_EXISTS=0
|
||||
fi
|
||||
fi
|
||||
return $PID_EXISTS
|
||||
}
|
||||
|
||||
# Use mysqladmin to ping the service as an invalid user over a socket
|
||||
running() {
|
||||
RUNNING=1
|
||||
RESPONSE=`<%= @mysqladmin_bin %> --defaults-file=<%= @defaults_file %> --user=UNKNOWN_MYSQL_USER ping 2>&1`
|
||||
local mret=$?
|
||||
if pid_exists \
|
||||
&& [ $mret -eq 0 ] \
|
||||
|| [ `echo $RESPONSE | grep -q "Access denied for user"` ]; then
|
||||
RUNNING=0
|
||||
fi
|
||||
return $RUNNING
|
||||
}
|
||||
|
||||
writable_error_log() {
|
||||
WRITABLE_ERROR_LOG=1
|
||||
touch "<%= @error_log %>" 2>/dev/null
|
||||
touchret=$?
|
||||
if [ $touchret -eq 0 ]; then
|
||||
chown <%= @config.run_user %>:<%= @config.run_group %> <%= @error_log %>
|
||||
return 0
|
||||
else
|
||||
return $WRITABLE_ERROR_LOG
|
||||
fi
|
||||
}
|
||||
|
||||
print_start_success() {
|
||||
<% if node['platform_family'] == 'rhel' %>
|
||||
action $"Starting <%= @mysql_name %>: " /bin/true
|
||||
<% else %>
|
||||
echo "Staring MySQL instance <%= @mysql_name %>"
|
||||
<% end %>
|
||||
return 0;
|
||||
}
|
||||
|
||||
print_start_failure() {
|
||||
<% if node['platform_family'] == 'rhel' %>
|
||||
action $"Starting <%= @mysql_name %>: " /bin/false
|
||||
<% else %>
|
||||
echo "Could not start MySQL instance <%= @mysql_name %>"
|
||||
<% end %>
|
||||
return 0;
|
||||
}
|
||||
|
||||
print_reload_success() {
|
||||
<% if node['platform_family'] == 'rhel' %>
|
||||
action $"Reloading <%= @mysql_name %>" /bin/true
|
||||
<% else %>
|
||||
echo "Reload success for <%= @mysql_name %>"
|
||||
<% end %>
|
||||
return 0;
|
||||
}
|
||||
|
||||
print_reload_failure() {
|
||||
<% if node['platform_family'] == 'rhel' %>
|
||||
action $"Reloading <%= @mysql_name %>" /bin/false
|
||||
<% else %>
|
||||
echo "Reload failed for <%= @mysql_name %>"
|
||||
<% end %>
|
||||
return 0;
|
||||
}
|
||||
|
||||
print_stop_success() {
|
||||
<% if node['platform_family'] == 'rhel' %>
|
||||
action $"Stopping <%= @mysql_name %>: " /bin/true
|
||||
<% else %>
|
||||
echo "Stopping MySQL instance <%= @mysql_name %>"
|
||||
<% end %>
|
||||
return 0;
|
||||
}
|
||||
|
||||
print_stop_failure() {
|
||||
<% if node['platform_family'] == 'rhel' %>
|
||||
action $"Stopping <%= @mysql_name %>: " /bin/false
|
||||
<% else %>
|
||||
echo "Could not stop MySQL instance <%= @mysql_name %>"
|
||||
<% end %>
|
||||
return 0;
|
||||
}
|
||||
|
||||
start_command() {
|
||||
# Attempt to start <%= @mysql_name %>
|
||||
echo "Starting MySQL instance <%= @mysql_name %>"
|
||||
|
||||
local scl_name="<%= @scl_name %>"
|
||||
|
||||
if [ -z $scl_name ]; then
|
||||
<%= @mysqld_safe_bin %> \
|
||||
--defaults-file=<%= @defaults_file %> \
|
||||
>/dev/null 2>&1 &
|
||||
local pid=$!
|
||||
else
|
||||
scl enable $scl_name "<%= @mysqld_safe_bin %> \
|
||||
--defaults-file=<%= @defaults_file %> \
|
||||
>/dev/null 2>&1 &"
|
||||
local pid=$!
|
||||
fi
|
||||
|
||||
return $pid
|
||||
}
|
||||
|
||||
####
|
||||
# Init script actions
|
||||
###
|
||||
|
||||
# Start <%= @mysql_name %>
|
||||
start() {
|
||||
# exit 0 if already running.
|
||||
if running; then
|
||||
print_start_success
|
||||
return 0;
|
||||
fi
|
||||
|
||||
# exit 4 if we can't write to error_log
|
||||
if ! writable_error_log; then
|
||||
print_start_failure
|
||||
return 4
|
||||
fi
|
||||
|
||||
# run program
|
||||
start_command;
|
||||
start_pid=$?
|
||||
|
||||
# Timeout loop
|
||||
local TIMEOUT=$STARTTIMEOUT
|
||||
while [ $TIMEOUT -gt 0 ]; do
|
||||
if running; then
|
||||
break
|
||||
fi
|
||||
|
||||
let CURRENT_DELAY=${STARTTIMEOUT}-${TIMEOUT}
|
||||
if [ $CURRENT_DELAY -gt $PID_DELAY ] \
|
||||
&& ! pid_exists; then
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
let TIMEOUT=${TIMEOUT}-1
|
||||
done
|
||||
|
||||
if running; then
|
||||
# successbaby.gif
|
||||
print_start_success
|
||||
return 0
|
||||
elif ! pid_exists; then
|
||||
# Handle startup failure
|
||||
print_start_failure
|
||||
return 3
|
||||
elif [ $TIMEOUT -eq 0 ]; then
|
||||
# Handle timeout
|
||||
print_start_failure
|
||||
# clean up
|
||||
kill $start_pid 2>/dev/null
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Reload <%= @mysql_name %>
|
||||
reload() {
|
||||
<%= @mysqladmin_bin %> reload
|
||||
local ret=$?
|
||||
if [ $ret -eq 0 ]; then
|
||||
print_reload_success;
|
||||
else
|
||||
print_reload_failure;
|
||||
fi
|
||||
return $ret
|
||||
}
|
||||
|
||||
# Status of <%= @mysql_name %>
|
||||
status() {
|
||||
if running; then
|
||||
echo "<%= @mysql_name %> is running"
|
||||
return 0
|
||||
else
|
||||
echo "<%= @mysql_name %> is not running"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Stop <%= @mysql_name %>
|
||||
stop() {
|
||||
if running; then
|
||||
echo "Stopping MySQL instance <%= @mysql_name %>"
|
||||
if [ -f <%= @pid_file %> ]; then
|
||||
/bin/kill `cat <%= @pid_file %> 2>/dev/null`
|
||||
kstat=$?
|
||||
fi
|
||||
|
||||
# Timeout loop
|
||||
local TIMEOUT=$STARTTIMEOUT
|
||||
while [ $TIMEOUT -gt 0 ]; do
|
||||
if [ -e <%= @pid_file %> ]; then
|
||||
sleep 1
|
||||
fi
|
||||
let TIMEOUT=${TIMEOUT}-1
|
||||
done
|
||||
|
||||
return $kstat
|
||||
else
|
||||
echo "MySQL instance <%= @mysql_name %> Stopped."
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
# main()
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status
|
||||
;;
|
||||
restart)
|
||||
stop ; start
|
||||
;;
|
||||
reload)
|
||||
reload
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|reload}"
|
||||
exit 2
|
||||
esac
|
||||
|
||||
exit $?
|
1
ops/cookbooks/vendor/mysql/templates/default/tmpfiles.d.conf.erb
vendored
Normal file
1
ops/cookbooks/vendor/mysql/templates/default/tmpfiles.d.conf.erb
vendored
Normal file
@ -0,0 +1 @@
|
||||
d <%= @run_dir %> 0755 <%= @run_user %> <%= @run_group %> -
|
22
ops/cookbooks/vendor/mysql/templates/default/upstart/mysqld-wait-ready.erb
vendored
Normal file
22
ops/cookbooks/vendor/mysql/templates/default/upstart/mysqld-wait-ready.erb
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Wait for the server to come up
|
||||
ret=0
|
||||
while /bin/true; do
|
||||
RESPONSE=`/usr/bin/mysqladmin --no-defaults --socket="<%= @socket_file %>" --user=UNKNOWN_MYSQL_USER ping 2>&1`
|
||||
mret=$?
|
||||
if [ $mret -eq 0 ]; then
|
||||
break
|
||||
fi
|
||||
# exit codes 1, 11 (EXIT_CANNOT_CONNECT_TO_SERVICE) are expected,
|
||||
# anything else suggests a configuration error
|
||||
if [ $mret -ne 1 -a $mret -ne 11 ]; then
|
||||
ret=1
|
||||
break
|
||||
fi
|
||||
# "Access denied" also means the server is alive
|
||||
echo "$RESPONSE" | grep -q "Access denied for user" && break
|
||||
sleep 1
|
||||
done
|
||||
|
||||
exit $ret
|
26
ops/cookbooks/vendor/mysql/templates/default/upstart/mysqld.erb
vendored
Normal file
26
ops/cookbooks/vendor/mysql/templates/default/upstart/mysqld.erb
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
# <%= @mysql_name %> Service
|
||||
|
||||
description "MySQL service <%= @mysql_name %>"
|
||||
author "chef-client"
|
||||
|
||||
start on runlevel [2345]
|
||||
stop on starting rc RUNLEVEL=[016]
|
||||
|
||||
respawn
|
||||
respawn limit 2 5
|
||||
|
||||
env HOME=/etc/<%= @mysql_name %>
|
||||
umask 007
|
||||
|
||||
kill timeout 300
|
||||
|
||||
pre-start script
|
||||
[ -d /run/<%= @mysql_name %> ] || install -m 755 -o <%= @run_user %> -g <%= @run_group %> -d /run/<%= @mysql_name %>
|
||||
[ -d <%= @socket_dir %> ] || install -m 755 -o <%= @run_user %> -g <%= @run_group %> -d <%= @socket_dir %>
|
||||
end script
|
||||
|
||||
exec /usr/sbin/mysqld --defaults-file=<%= @defaults_file %>
|
||||
|
||||
post-start script
|
||||
/usr/sbin/<%= @mysql_name %>-wait-ready
|
||||
end script
|
Reference in New Issue
Block a user