Last active
August 29, 2015 14:16
-
-
Save H2so4/509b0f69d18ef26113a4 to your computer and use it in GitHub Desktop.
Install sensu server on ubuntu in a single shot - dependencies and all
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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