From e78c4dae9c784608e901ab39dc3fc8eb7d344804 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Fri, 4 Jan 2019 10:01:24 +1300 Subject: [PATCH] docker: enable user/password for RabbitMQ server Add settings for user/password for the RabbitMQ server and make dockersetup.py set it up. (The rabbitmq container intrinsically understands RABBITMQ_DEFAULT_*, and for the sake of consistency I've reused those variables for the other containers.) Signed-off-by: Paul Eggleton --- docker-compose.yml | 7 +++++++ docker/settings.py | 2 +- dockersetup.py | 11 +++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 885324f..9462208 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,8 @@ services: #- "SECRET_KEY=" - "DATABASE_PASSWORD=testingpw" - "DATABASE_HOST=layersdb" + - "RABBITMQ_DEFAULT_USER=guest" + - "RABBITMQ_DEFAULT_PASS=guest" #- "EMAIL_HOST=" #- "DEBUG=1" container_name: layersapp @@ -44,6 +46,9 @@ services: layersrabbit: image: rabbitmq:alpine container_name: layersrabbit + environment: + - "RABBITMQ_DEFAULT_USER=guest" + - "RABBITMQ_DEFAULT_PASS=guest" layerscelery: depends_on: - layersdb @@ -56,6 +61,8 @@ services: #- "SECRET_KEY=" - "DATABASE_PASSWORD=testingpw" - "DATABASE_HOST=layersdb" + - "RABBITMQ_DEFAULT_USER=guest" + - "RABBITMQ_DEFAULT_PASS=guest" #- "EMAIL_HOST=" #- "DEBUG=1" container_name: layerscelery diff --git a/docker/settings.py b/docker/settings.py index e5d4824..a1a36dc 100644 --- a/docker/settings.py +++ b/docker/settings.py @@ -260,7 +260,7 @@ SUBMIT_EMAIL_SUBJECT = 'OE Layerindex layer submission' SEND_PUBLISH_EMAIL = True # RabbitMQ settings -RABBIT_BROKER = 'amqp://guest:guest@layersrabbit:5672/' +RABBIT_BROKER = 'amqp://' + os.getenv('RABBITMQ_DEFAULT_USER') + ':' + os.getenv('RABBITMQ_DEFAULT_PASS') + '@layersrabbit:5672/' RABBIT_BACKEND = 'rpc://layersrabbit/' # Used for fetching repo diff --git a/dockersetup.py b/dockersetup.py index 427a688..07bcd7e 100755 --- a/dockersetup.py +++ b/dockersetup.py @@ -137,7 +137,7 @@ def yaml_comment(line): # Add hostname, secret key, db info, and email host in docker-compose.yml -def edit_dockercompose(hostname, dbpassword, secretkey, portmapping, letsencrypt): +def edit_dockercompose(hostname, dbpassword, secretkey, rmqpassword, portmapping, letsencrypt): filedata= readfile("docker-compose.yml") in_layersweb = False in_layersweb_ports = False @@ -192,6 +192,12 @@ def edit_dockercompose(hostname, dbpassword, secretkey, portmapping, letsencrypt elif '- "MYSQL_ROOT_PASSWORD' in line: format = line[0:line.find('- "MYSQL_ROOT_PASSWORD')].replace("#", "") newlines.append(format + '- "MYSQL_ROOT_PASSWORD=' + dbpassword + '"\n') + elif '- "RABBITMQ_DEFAULT_USER' in line: + format = line[0:line.find('- "RABBITMQ_DEFAULT_USER')].replace("#", "") + newlines.append(format + '- "RABBITMQ_DEFAULT_USER=layermq"\n') + elif '- "RABBITMQ_DEFAULT_PASS' in line: + format = line[0:line.find('- "RABBITMQ_DEFAULT_PASS')].replace("#", "") + newlines.append(format + '- "RABBITMQ_DEFAULT_PASS=' + rmqpassword + '"\n') elif "ports:" in line: if in_layersweb: in_layersweb_ports = True @@ -263,6 +269,7 @@ def writefile(filename, data): # Generate secret key and database password secretkey = generatepasswords(50) dbpassword = generatepasswords(10) +rmqpassword = generatepasswords(10) ## Get user arguments and modify config files hostname, http_proxy, https_proxy, dbfile, port, proxymod, portmapping, no_https, cert, cert_key, letsencrypt = get_args() @@ -307,7 +314,7 @@ if http_proxy: if http_proxy or https_proxy: edit_dockerfile(http_proxy, https_proxy) -edit_dockercompose(hostname, dbpassword, secretkey, portmapping, letsencrypt) +edit_dockercompose(hostname, dbpassword, secretkey, rmqpassword, portmapping, letsencrypt) edit_dockerfile_web(hostname, no_https)