Skip to content

Instantly share code, notes, and snippets.

@H2so4
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save H2so4/509b0f69d18ef26113a4 to your computer and use it in GitHub Desktop.
Save H2so4/509b0f69d18ef26113a4 to your computer and use it in GitHub Desktop.
Install sensu server on ubuntu in a single shot - dependencies and all
cat > client.json <<'EOF'
{
"client": {
"name": "sensu-server.dom.tld",
"address": "10.0.0.1",
"subscriptions": [ "test" ]
}
}
EOF
cat > config.json <<'EOF'
{
"rabbitmq": {
"port": 5672,
"host": "localhost",
"user": "sensu",
"password": "mypass",
"vhost": "/sensu"
},
"redis": {
"host": "localhost",
"port": 6379
},
"api": {
"host": "0.0.0.0",
"port": 4567
},
"dashboard": {
"host": "0.0.0.0",
"port": 8080,
"user": "admin",
"password": "secret"
},
"handlers": {
"default": {
"type": "pipe",
"command": "true"
}
}
}
EOF
cat > uchiwa.json <<'EOF'
{
"sensu": [
{
"name": "Sensu",
"host": "0.0.0.0",
"ssl": false,
"port": 4567,
"user": "",
"pass": "",
"path": "",
"timeout": 5000
}
],
"uchiwa": {
"user": "",
"pass": "",
"port": 3000,
"stats": 10,
"refresh": 10000
}
}
EOF
cat > policy-rc.d <<'EOF'
#!/bin/bash
DISABLE_ACTIONS=(start restart)
DISABLED_SERVICES=(rabbitmq-server)
longoptions='quiet,force,try-anyway,disclose-deny,query,no-fallback,help'
getopt=$(getopt -o '' --longoptions $longoptions -- "$@")
if [ $? != 0 ]; then
echo "ERROR!"
exit 1;
fi
eval set -- "$getopt"
while true; do
case "$1" in
--quiet)
QUIET=1
shift
;;
--force)
FORCE=1
shift
;;
--try-anyway)
TRY_ANYWAY=1
shift
;;
--disclose-deny)
DISCLOSE_DENY=1
shift
;;
--query)
QUERY=1
shift
;;
--no-fallback)
NO_FALLBACK=1
shift
;;
--)
shift
break
;;
*)
echo "There should probably be some help text here!"
exit 1
;;
esac
done
SRV_NAME=$1
shift
SRV_ACTION=$1
SRV_ARGS=$*
SRV_DISABLED=0
ACT_DISABLED=0
if [ ! -f "/etc/init.d/${SRV_NAME}" ]; then
exit 100
fi
for i in "${DISABLED_SERVICES}"
do
if [ $i = $SRV_NAME ]; then
SRV_DISABLED=1
fi
done
for i in "${DISABLE_ACTIONS}"
do
if [ $i = $SRV_ACTION ]; then
ACT_DISABLED=1
fi
done
if [ $SRV_DISABLED -eq 1 -a $ACT_DISABLED -eq 1 ]; then
exit 101
else
exit 104
fi
EOF
apt-get update
echo "deb http://archive.ubuntu.com/ubuntu precise universe" >> /etc/apt/sources.list
apt-get install -y sudo openssh-server curl lsb-release git
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
mkdir -p /var/run/sshd
echo '127.0.0.1 localhost.localdomain localhost' >> /etc/hosts
useradd -d /home/sensu -m -s /bin/bash sensu
echo sensu:sensu | chpasswd
echo 'sensu ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/sensu
chmod 0440 /etc/sudoers.d/sensu
cp policy-rc.d /usr/sbin/policy-rc.d
apt-get -y install erlang-nox
echo "deb http://www.rabbitmq.com/debian/ testing main" > /etc/apt/sources.list.d/rabbitmq.list
curl -L -o ~/rabbitmq-signing-key-public.asc http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add ~/rabbitmq-signing-key-public.asc
apt-get update
apt-get -y --allow-unauthenticated --force-yes install rabbitmq-server
rabbitmq-plugins enable rabbitmq_management
chown -R rabbitmq:rabbitmq /etc/rabbitmq/
apt-get -y install redis-server
wget -q http://repos.sensuapp.org/apt/pubkey.gpg -O- | apt-key add -
echo "deb http://repos.sensuapp.org/apt sensu main" > /etc/apt/sources.list.d/sensu.list
apt-get update
apt-get -y install sensu
apt-get -y install uchiwa
chown -R sensu:sensu /etc/sensu/
cp config.json uchiwa.json /etc/sensu/
cp client.json /etc/sensu/conf.d/client.json
pushd /tmp
git clone git@github.com:sensu/sensu-community-plugins.git
mv sensu-community-plugins/* /etc/sensu/plugins/
popd
echo "127.0.0.1 $HOSTNAME" >> /etc/hosts
update-rc.d sensu-server defaults
update-rc.d sensu-client defaults
update-rc.d sensu-api defaults
update-rc.d uchiwa defaults
/etc/init.d/rabbitmq-server start
rabbitmqctl add_vhost /sensu
rabbitmqctl add_user sensu mypass
rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
rabbitmqctl set_user_tags sensu administrator
/etc/init.d/redis-server start
/etc/init.d/sensu-service server start
/etc/init.d/sensu-service api start
/etc/init.d/sensu-service client start
/etc/init.d/uchiwa start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment