Initial rabbitmq service. Standalone.

Jinja vars will be added later, since build tool is not ready yet.
Proper cluster implementation already done for mesos and will be re-wrote
for k8s as all needed tools are ready.

Change-Id: I392ffbed9b2947d09b696d613c523dd68c0a2c0d
This commit is contained in:
Proskurin Kirill 2016-05-10 18:40:43 +03:00
parent f9e0313cab
commit 04823bd45b
7 changed files with 142 additions and 0 deletions

66
.gitignore vendored Normal file
View File

@ -0,0 +1,66 @@
*.py[cod]
# C extensions
*.so
# Packages
*.egg
*.egg-info
dist
build
.eggs
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
lib
lib64
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
cover
.tox
nosetests.xml
.testrepository
.venv
# Translations
*.mo
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# Complexity
output/*.html
output/*/index.html
# Sphinx
doc/build
# oslo-config-generator
etc/*.sample
# pbr generates these
AUTHORS
ChangeLog
# Editors
*~
.*.swp
.*sw?
# Vagrant
.vagrant
vagrant/Vagrantfile.custom
vagrant/vagrantkey*
# generated openrc
openrc

View File

@ -0,0 +1,22 @@
FROM {{ namespace }}/base-tools:{{ tag }}
MAINTAINER {{ maintainer }}
RUN apt-get install -y --no-install-recommends \
rabbitmq-server \
&& apt-get clean
RUN rm -rf /var/lib/rabbitmq/*
COPY rabbitmq.config /etc/rabbitmq/
COPY start.sh /usr/local/bin/start.sh
COPY rabbitmq_sudoers /etc/sudoers.d/rabbitmq_sudoers
RUN chmod 755 /usr/local/bin/start.sh \
&& chmod 750 /etc/sudoers.d \
&& chmod 440 /etc/sudoers.d/rabbitmq_sudoers \
&& usermod -a -G microservices rabbitmq
ENV RABBITMQ_CLUSTER_COOKIE "password"
USER rabbitmq
CMD ["start.sh"]

View File

@ -0,0 +1,11 @@
[
{rabbit, [
{tcp_listeners, [
{"IPADDR", 5672}
]},
{default_user, <<"rabbitmq">>},
{default_pass, <<"RABBITMQ_CLUSTER_COOKIE">>},
{cluster_partition_handling, autoheal}
]}
].
% EOF

View File

@ -0,0 +1 @@
%microservices ALL=(root) NOPASSWD: /usr/bin/chown -R rabbitmq\: /var/lib/rabbitmq, /bin/chown -R rabbitmq\: /var/lib/rabbitmq, /bin/chown -R rabbitmq\: /etc/rabbitmq

15
docker/rabbitmq/start.sh Normal file
View File

@ -0,0 +1,15 @@
#!/bin/bash
# bootstrap
sudo chown -R rabbitmq: /var/lib/rabbitmq
sudo chown -R rabbitmq: /etc/rabbitmq
echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
# delme in future
sed -i "s/IPADDR_COMMAS/`hostname -i | sed 's/\./,/g'`/g" /etc/rabbitmq/rabbitmq.config
sed -i "s/IPADDR/`hostname -i`/g" /etc/rabbitmq/rabbitmq.config
sed -i "s/RABBITMQ_CLUSTER_COOKIE/$RABBITMQ_CLUSTER_COOKIE/g" /etc/rabbitmq/rabbitmq.config
# run daemon
rabbitmq-server

View File

@ -0,0 +1,10 @@
#!/bin/bash
### Temp docker syntax checker script. Doesnt really check something...
set -e
for file in $(find . -name 'Dockerfile.j2')
do
fgrep -q FROM $file
fgrep -q MAINTAINER $file
fgrep -q RUN $file
done

17
tox.ini Normal file
View File

@ -0,0 +1,17 @@
[tox]
minversion = 1.6
envlist = py34,py27,pypy,pep8
skipsdist = True
[testenv:linters]
commands =
{toxinidir}/tools/run-check-docker-syntax.sh
[testenv:pep8]
commands =
{toxinidir}/tools/run-check-docker-syntax.sh
[testenv:bashate]
commands =
{toxinidir}/tools/run-check-docker-syntax.sh