cleanup
This commit is contained in:
parent
f57411b753
commit
780e73e54a
@ -1,61 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -ue
|
|
||||||
|
|
||||||
# peer gives us a username, we generate credentials and access in return
|
|
||||||
RABBIT_USER=`relation-get username`
|
|
||||||
|
|
||||||
DEFAULT_ETH=$(ip route | grep default | awk '{ print $5 }')
|
|
||||||
IP=$(ifconfig $DEFAULT_ETH | grep 'inet addr' | awk '{ print $2 }' | cut -d: -f2)
|
|
||||||
|
|
||||||
RABBIT_CTL='rabbitmqctl'
|
|
||||||
PASSWD_FILE="/var/run/ensemble/$RABBIT_USER.passwd"
|
|
||||||
|
|
||||||
if ! which pwgen ; then apt-get -y install pwgen ; fi
|
|
||||||
|
|
||||||
if [[ -e $PASSWD_FILE ]] ; then
|
|
||||||
PASSWORD=$(cat $PASSWD_FILE)
|
|
||||||
else
|
|
||||||
PASSWORD=$(pwgen 10 1)
|
|
||||||
echo $PASSWORD >$PASSWD_FILE
|
|
||||||
chmod 0400 $PASSWD_FILE
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z $RABBIT_USER ]] ; then
|
|
||||||
ensemble-log "Peer not ready."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
function user_exists {
|
|
||||||
$RABBIT_CTL list_users | grep $1 >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function user_is_admin {
|
|
||||||
$RABBIT_CTL list_users | grep $1 | grep true >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function user_create {
|
|
||||||
ensemble-log "Creating user $1."
|
|
||||||
|
|
||||||
$RABBIT_CTL add_user $1 $PASSWORD || return 1
|
|
||||||
|
|
||||||
# grant the user all permissions on the default vhost /
|
|
||||||
# TODO: investigate sane permissions
|
|
||||||
ensemble-log "Granting permission to $1 on vhost /"
|
|
||||||
$RABBIT_CTL set_permissions -p / $1 ".*" ".*" ".*"
|
|
||||||
|
|
||||||
if [[ $2 == 'admin' ]] ; then
|
|
||||||
user_is_admin $1 && return 0
|
|
||||||
ensemble-log "Granting user $1 admin access"
|
|
||||||
$RABBIT_CTL set_admin $1 || return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! user_exists $RABBIT_USER ; then
|
|
||||||
user_create $RABBIT_USER admin || exit 1
|
|
||||||
else
|
|
||||||
ensemble-log "RabbiqMQ user $RABBIT_USER already exists."
|
|
||||||
fi
|
|
||||||
|
|
||||||
ensemble-log "Giving peer credentials for $RABBIT_USER@$IP"
|
|
||||||
relation-set ip=$IP
|
|
||||||
relation-set password=$PASSWORD
|
|
1
hooks/amqp-relation-changed
Symbolic link
1
hooks/amqp-relation-changed
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
rabbitmq-relations
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -ue
|
|
||||||
echo "JOINED" >>/tmp/log
|
|
||||||
|
|
1
hooks/amqp-relation-joined
Symbolic link
1
hooks/amqp-relation-joined
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
rabbitmq-relations
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -ue
|
|
||||||
ensemble-log "Starting install."
|
|
||||||
echo "INSTALL" >>/tmp/log
|
|
||||||
|
|
||||||
DEFAULT_ETH=$(ip route | grep default | awk '{ print $5 }')
|
|
||||||
IP=$(ifconfig $DEFAULT_ETH | grep 'inet addr' | awk '{ print $2 }' | cut -d: -f2)
|
|
||||||
|
|
||||||
|
|
||||||
if ! cat /etc/hosts | grep "$IP $HOSTNAME" >>/dev/null; then
|
|
||||||
echo "Updating /etc/hosts"
|
|
||||||
echo $IP $HOSTNAME >> /etc/hosts
|
|
||||||
fi
|
|
||||||
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get -y install rabbitmq-server
|
|
||||||
rc=$?
|
|
||||||
echo "Install done. Exiting rc $rc" >>/tmp/log
|
|
||||||
ensemble-log "Install complete. $rc"
|
|
||||||
exit $rc
|
|
||||||
|
|
1
hooks/install
Symbolic link
1
hooks/install
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
rabbitmq-relations
|
29
hooks/rabbitmq-common
Executable file
29
hooks/rabbitmq-common
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
RABBIT_CTL='rabbitmqctl'
|
||||||
|
PASSWD_FILE="/var/run/ensemble/$RABBIT_USER.passwd"
|
||||||
|
HOSTNAME=`hostname -f`
|
||||||
|
function user_exists {
|
||||||
|
$RABBIT_CTL list_users | grep $1 >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
function user_is_admin {
|
||||||
|
$RABBIT_CTL list_users | grep $1 | grep true >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
function user_create {
|
||||||
|
ensemble-log "rabbitmq: Creating user $1."
|
||||||
|
|
||||||
|
$RABBIT_CTL add_user $1 $PASSWORD || return 1
|
||||||
|
|
||||||
|
# grant the user all permissions on the default vhost /
|
||||||
|
# TODO: investigate sane permissions
|
||||||
|
ensemble-log "rabbitmq: Granting permission to $1 on vhost /"
|
||||||
|
$RABBIT_CTL set_permissions -p / $1 ".*" ".*" ".*"
|
||||||
|
|
||||||
|
if [[ $2 == 'admin' ]] ; then
|
||||||
|
user_is_admin $1 && return 0
|
||||||
|
ensemble-log "rabbitmq: Granting user $1 admin access"
|
||||||
|
$RABBIT_CTL set_admin $1 || return 1
|
||||||
|
fi
|
||||||
|
}
|
52
hooks/rabbitmq-relations
Executable file
52
hooks/rabbitmq-relations
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -u
|
||||||
|
FORMULA_DIR=$(dirname $0)
|
||||||
|
ARG0=${0##*/}
|
||||||
|
|
||||||
|
ensemble-log "rabbitmq: Firing hook $ARG0."
|
||||||
|
|
||||||
|
DEFAULT_ETH=$(ip route | grep default | awk '{ print $5 }')
|
||||||
|
IP=$(ifconfig $DEFAULT_ETH | grep 'inet addr' | awk '{ print $2 }' | cut -d: -f2)
|
||||||
|
|
||||||
|
|
||||||
|
function install_hook() {
|
||||||
|
if ! cat /etc/hosts | grep "$IP $HOSTNAME" >>/dev/null; then
|
||||||
|
echo "Updating /etc/hosts"
|
||||||
|
echo $IP $HOSTNAME >> /etc/hosts
|
||||||
|
fi
|
||||||
|
[[ ! `which pwgen` ]] && apt-get -y install pwgen
|
||||||
|
apt-get -y install rabbitmq-server
|
||||||
|
rc=$?
|
||||||
|
ensemble-log "rabbitmq: Installation complete. $rc"
|
||||||
|
}
|
||||||
|
|
||||||
|
function amqp_changed() {
|
||||||
|
RABBIT_USER=`relation-get username`
|
||||||
|
[[ -z $RABBIT_USER ]] && exit 0
|
||||||
|
if [[ -e $PASSWD_FILE ]] ; then
|
||||||
|
PASSWORD=$(cat $PASSWD_FILE)
|
||||||
|
else
|
||||||
|
PASSWORD=$(pwgen 10 1)
|
||||||
|
echo $PASSWORD >$PASSWD_FILE
|
||||||
|
chmod 0400 $PASSWD_FILE
|
||||||
|
fi
|
||||||
|
if ! user_exists $RABBIT_USER ; then
|
||||||
|
user_create $RABBIT_USER admin || exit 1
|
||||||
|
else
|
||||||
|
ensemble-log "rabbitmq: user $RABBIT_USER already exists."
|
||||||
|
fi
|
||||||
|
ensemble-log "rabbitmq: Returning credentials for $RABBIT_USER@$HOSTNAME"
|
||||||
|
relation-set hostname=$HOSTNAME
|
||||||
|
relation-set password=$PASSWORD
|
||||||
|
}
|
||||||
|
|
||||||
|
case $ARG0 in
|
||||||
|
"install") install_hook ;;
|
||||||
|
"start") service rabbitmq-server status || service rabbitmq-server start ;;
|
||||||
|
"stop") service rabbitmq-server status && service rabbitmq-server stop ;;
|
||||||
|
"amqp-relation-joined") exit 0 ;;
|
||||||
|
"amqp-relation-changed") amqp_changed ;;
|
||||||
|
esac
|
||||||
|
rc=$?
|
||||||
|
ensemble-log "rabbitmq: Hook $ARG0 complete. Exitting $rc"
|
||||||
|
exit $rc
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
start -ue
|
|
||||||
echo "Start action" >>/tmp/log
|
|
||||||
|
|
||||||
service rabbitmq-server status || service rabbitmq-server start
|
|
1
hooks/start
Symbolic link
1
hooks/start
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
rabbitmq-relations
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
start -ue
|
|
||||||
|
|
||||||
echo "stop" >>/tmp/log
|
|
1
hooks/stop
Symbolic link
1
hooks/stop
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
rabbitmq-relations
|
@ -1,6 +1,6 @@
|
|||||||
ensemble: formula
|
ensemble: formula
|
||||||
name: rabbitmq
|
name: rabbitmq
|
||||||
revision: 15
|
revision: 19
|
||||||
summary: "An AMQP server written in Erlang"
|
summary: "An AMQP server written in Erlang"
|
||||||
description: |
|
description: |
|
||||||
RabbitMQ is an implementation of AMQP, the emerging standard for high
|
RabbitMQ is an implementation of AMQP, the emerging standard for high
|
||||||
|
Loading…
Reference in New Issue
Block a user