cue/cue/templates/install_rabbit.sh.tmpl

69 lines
2.1 KiB
Bash

#!/bin/bash
cat > /etc/hosts << EOF
127.0.0.1 localhost
{%- for node_name, node_ip in rabbit_nodes.iteritems() %}
{{node_ip}} {{node_name}}
{%- endfor %}
EOF
echo "{{erlang_cookie}}" > /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 0400 /var/lib/rabbitmq/.erlang.cookie
mkdir -p /var/run/rabbitmq
chown rabbitmq:rabbitmq /var/run/rabbitmq
cat > /etc/rabbitmq/rabbitmq.config << EOF
[
{kernel,
[{inet_dist_listen_min, 61000},
{inet_dist_listen_max, 61000},
{inet_default_listen_options, [{nodelay, true},
{sndbuf, 65535},
{recbuf, 65535},
{keepalive, true}
]
},
{inet_default_connect_options, [{nodelay, true},
{keepalive, true}
]
}
]
},
{mnesia, [{dump_log_write_threshold, 1000}]},
{rabbit, [{vm_memory_high_watermark, 0.4},
{memory_alarms, true},
{loopback_users,[]},
{cluster_partition_handling, pause_minority},
{cluster_nodes, {[{%- for node_name in rabbit_nodes -%}
'rabbit@{{node_name}}' {%- if not loop.last -%},{%- endif -%}
{%- endfor -%}], disc}},
{default_user, <<"{{default_rabbit_user}}">>},
{default_pass, <<"{{default_rabbit_pass}}">>}
]
}
].
EOF
cat > /etc/security/limits.d/rabbitmq_limits.conf << EOF
# Set number of file descriptors
rabbitmq hard nofile 65536
rabbitmq soft nofile 65536
EOF
update-rc.d rabbitmq-server enable
while [ ! -z "$(rabbitmqctl status 2>&1 | grep 'nodedown')" ]; do
service rabbitmq-server start
sleep 5
done
rabbitmq-plugins enable rabbitmq_management
# Create monitoring user
rabbitmqctl add_user cue_monitor "{{cluster_id}}"
rabbitmqctl set_user_tags cue_monitor monitoring
rabbitmqctl set_permissions cue_monitor ".*" ".*" ".*"
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'