Set mysql server_id based on instance-id

Do nothing if we are booted on a server which has no instance-id set,
such as a non-cloud VM or server.

Change-Id: I6df81edbea1b2b4e4f1ef11a9f2ddaf100d98eda
This commit is contained in:
Clint Byrum 2013-03-21 16:28:17 -07:00 committed by Gerrit Code Review
parent 72534d6eba
commit 6bf07b12d3
2 changed files with 28 additions and 0 deletions

View File

@ -6,5 +6,6 @@ set -e
set -o xtrace
install -D -m 0644 -o root -g root $(dirname $0)/my.cnf /etc/mysql/my.cnf
install $(dirname $0)/mysql-set-server-id.upstart /etc/init/mysql-set-server-id.conf
install-packages sysstat mytop percona-toolkit mysql-server-5.5 mysql-client-5.5

View File

@ -0,0 +1,27 @@
# vim: syntax=upstart
description "Set mysql server_id based on instance-id"
start on starting mysql
task
env INSTANCE_ID="/var/lib/cloud/data/instance-id"
env CONF_TARGET="/etc/mysql/conf.d/server_id.cnf"
pre-start script
if ! [ -e $INSTANCE_ID ] ; then
stop
exit 0
fi
end script
script
instance=$(cat $INSTANCE_ID)
server_id=$(python -c "print 0x${instance##i-}")
cat > $CONF_TARGET.new <<EOF
# Generated by mysql-set-server-id upstart job $(date)
# From $INSTANCE_ID ${instance}
[mysqld]
server_id = $server_id
EOF
mv -f $CONF_TARGET.new $CONF_TARGET
end script