vagrant and chef install everything

This commit is contained in:
2019-09-02 16:48:23 -04:00
parent 4fb554add5
commit f1809bef83
268 changed files with 16021 additions and 7 deletions

View 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,

View File

@ -0,0 +1 @@
#include <local/mysql>

View 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>
}

View 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 %>

View 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

View 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

View 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

View 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 $?

View File

@ -0,0 +1 @@
d <%= @run_dir %> 0755 <%= @run_user %> <%= @run_group %> -

View 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

View 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