Skip to content

Instantly share code, notes, and snippets.

@justone
Created July 30, 2012 20:47
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save justone/3210047 to your computer and use it in GitHub Desktop.
Save justone/3210047 to your computer and use it in GitHub Desktop.
saltstack on lenny
#!/bin/bash
# link init scripts into /etc/init.d
ln -s /opt/salt/etc/salt-minion /etc/init.d/salt-minion
ln -s /opt/salt/etc/salt-master /etc/init.d/salt-master
# create the salt config directory
mkdir -p /etc/salt
#!/bin/bash
# remove links
rm /etc/init.d/salt-minion
rm /etc/init.d/salt-master
#!/bin/sh
#
# Salt master
###################################
# LSB header
### BEGIN INIT INFO
# Provides: salt-master
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: salt master control daemon
# Description: This is a daemon that controls the salt minions
### END INIT INFO
# chkconfig header
# chkconfig: 2345 99 01
# description: This is a daemon that controls the salt mininons
#
# processname: /opt/salt/bin/salt-master
# Sanity checks.
[ -x /opt/salt/bin/salt-master ] || exit 0
DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
break
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
. /etc/rc.status
else
. /etc/rc.d/init.d/functions
fi
SERVICE=salt-master
PROCESS=salt-master
CONFIG_ARGS=" "
PS_CMD="ps -e -o pid,args"
PROC_LIST=""
RETVAL=0
findproc() {
PROC_LIST=`$PS_CMD | grep 'bin/python.*salt-master' | grep -v grep | grep -v sh | grep -v vi | awk '{ print $1 }'`
}
start() {
echo -n "Starting salt-master daemon: "
if [ -f $SUSE_RELEASE ]; then
startproc -f -p /var/run/$SERVICE.pid /opt/salt/bin/salt-master -d $CONFIG_ARGS
rc_status -v
elif [ -e $DEBIAN_VERSION ]; then
findproc
if [ -n "$PROC_LIST" ]; then
echo -n "already started, lock file found"
RETVAL=1
elif /opt/salt/bin/python /opt/salt/bin/salt-master -d; then
echo -n "OK"
RETVAL=0
fi
else
daemon --check $SERVICE $PROCESS -d $CONFIG_ARGS
fi
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n "Stopping salt-master daemon: "
if [ -f $SUSE_RELEASE ]; then
killproc -TERM /opt/salt/bin/salt-master
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
# Added this since Debian's start-stop-daemon doesn't support spawned processes
findproc
if echo $PROC_LIST | xargs kill >/dev/null 2>&1 ; then
echo -n "OK"
RETVAL=0
else
echo -n "Daemon is not started"
RETVAL=1
fi
else
killproc $PROCESS
fi
RETVAL=$?
echo
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start|stop|restart)
$1
;;
status)
if [ -f $SUSE_RELEASE ]; then
echo -n "Checking for service salt-master "
checkproc /opt/salt/bin/salt-master
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
findproc
if [ -n "$PROC_LIST" ]; then
RETVAL=0
echo "salt-master is running."
else
RETVAL=1
echo "salt-master is stopped."
fi
else
status $PROCESS
RETVAL=$?
fi
;;
condrestart)
findproc
[ -n "$PROC_LIST" ] && restart || :
;;
reload|force-reload)
echo "Can't reload configuration, you have to restart it"
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}"
exit 1
;;
esac
exit $RETVAL
#!/bin/sh
#
# Salt minion
###################################
# LSB header
### BEGIN INIT INFO
# Provides: salt-minion
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: salt minion control daemon
# Description: This is a daemon that controls the salt minions
### END INIT INFO
# chkconfig header
# chkconfig: 2345 99 01
# description: This is a daemon that controls the salt mininons
#
# processname: /opt/salt/bin/salt-minion
# Sanity checks.
[ -x /opt/salt/bin/salt-minion ] || exit 0
DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
break
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
. /etc/rc.status
else
. /etc/rc.d/init.d/functions
fi
SERVICE=salt-minion
PROCESS=salt-minion
CONFIG_ARGS=" "
PS_CMD="ps -e -o pid,args"
PROC_LIST=""
RETVAL=0
findproc() {
PROC_LIST=`$PS_CMD | grep 'bin/python.*salt-minion' | grep -v grep | grep -v sh | grep -v vi | awk '{ print $1 }'`
}
start() {
echo -n "Starting salt-minion daemon: "
if [ -f $SUSE_RELEASE ]; then
startproc -f -p /var/run/$SERVICE.pid /opt/salt/bin/salt-minion -d $CONFIG_ARGS
rc_status -v
elif [ -e $DEBIAN_VERSION ]; then
findproc
if [ -n "$PROC_LIST" ]; then
echo -n "already started, lock file found"
RETVAL=1
elif /opt/salt/bin/python /opt/salt/bin/salt-minion -d; then
echo -n "OK"
RETVAL=0
fi
else
daemon --check $SERVICE $PROCESS -d $CONFIG_ARGS
fi
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n "Stopping salt-minion daemon: "
if [ -f $SUSE_RELEASE ]; then
killproc -TERM /opt/salt/bin/salt-minion
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
# Added this since Debian's start-stop-daemon doesn't support spawned processes
findproc
if echo $PROC_LIST | xargs kill >/dev/null 2>&1 ; then
echo -n "OK"
RETVAL=0
else
echo -n "Daemon is not started"
RETVAL=1
fi
else
killproc $PROCESS
fi
RETVAL=$?
echo
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start|stop|restart)
$1
;;
status)
if [ -f $SUSE_RELEASE ]; then
echo -n "Checking for service salt-minion "
checkproc /opt/salt/bin/salt-minion
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
findproc
if [ -n "$PROC_LIST" ]; then
RETVAL=0
echo "salt-minion is running."
else
RETVAL=1
echo "salt-minion is stopped."
fi
else
status $PROCESS
RETVAL=$?
fi
;;
condrestart)
findproc
[ -n "$PROC_LIST" ] && restart || :
;;
reload|force-reload)
echo "Can't reload configuration, you have to restart it"
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}"
exit 1
;;
esac
exit $RETVAL
aptitude install -y libssl-dev libyaml-dev swig uuid-dev libz-dev
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar -xzvf Python-2.7.3.tgz
cd Python-2.7.3
./configure --prefix=/opt/salt
make
make install
cd ..
wget http://download.zeromq.org/zeromq-2.2.0.tar.gz
tar -xzvf zeromq-2.2.0.tar.gz
cd zeromq-2.2.0
./configure --prefix=/opt/salt --with-pgm
make
make install
cd ..
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar -xzvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
/opt/salt/bin/python setup.py install
cd ..
wget http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz
tar -xzvf pip-1.1.tar.gz
cd pip-1.1
/opt/salt/bin/python setup.py install
cd ..
/opt/salt/bin/pip install pyzmq --install="--zmq=/opt/salt"
/opt/salt/bin/pip install salt
mkdir -p /opt/salt/etc/
cp etc/salt-master /opt/salt/etc/salt-master
cp etc/salt-minion /opt/salt/etc/salt-minion
#!/bin/bash
# install rvm
#aptitude install -y curl
#curl -L https://get.rvm.io | bash -s stable --ruby
#source /usr/local/rvm/scripts/rvm
#gem install fpm
# create package
fpm -s dir \
--description "Salt is an open source tool to manage your infrastructure." \
--iteration 4+lenny \
--provides salt-minion,salt-master \
--post-install postinstall.sh \
--pre-uninstall preuninstall.sh \
-t deb \
-n salt \
-v 0.10.2 \
/opt/salt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment