This is an automated email from the ASF dual-hosted git repository.

ioleksandr pushed a commit to branch DLAB-657
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/DLAB-657 by this push:
     new 577b815  fix+redhat version
577b815 is described below

commit 577b815147be5c5e7c034c2f95793bf04cc841b9
Author: Oleksandr_Isniuk <[email protected]>
AuthorDate: Wed Jun 5 11:14:50 2019 +0300

    fix+redhat version
---
 .../src/general/lib/os/debian/ssn_lib.py           |  4 +-
 .../src/general/lib/os/redhat/ssn_lib.py           |  4 +-
 .../files/aws => ssn/files/os}/billing_Dockerfile  |  0
 .../src/ssn/files/os/create_db.js                  |  8 ++++
 .../files/os/mongo_Dockerfile}                     | 24 +++++-------
 .../src/ssn/files/os/mongodb.conf                  | 42 ++++++++++++++++++++
 .../files/aws => ssn/files/os}/webui_Dockerfile    |  0
 .../src/ssn/scripts/configure_mongo.py             | 45 ++++++++++++++--------
 .../src/ssn/scripts/configure_ui.py                |  4 +-
 9 files changed, 94 insertions(+), 37 deletions(-)

diff --git a/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py 
b/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py
index eef8b25..9079c99 100644
--- a/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py
@@ -292,9 +292,9 @@ def start_ss(keyfile, host_string, dlab_conf_dir, web_path,
                     sudo("cp -r {0}webapp/provisioning-service/lib/*.jar 
{1}".format(dlab_path, k8s_dir))
                     sudo("cp -r {0}webapp/billing/lib/*.jar 
{1}".format(dlab_path, k8s_dir))
                     sudo('sed -i "s|ssn.yml|/root/ssn.yml|g" 
{}self-service.yml'.format(k8s_dir))
-                    sudo("cd {}; docker build --file 
general/files/aws/webui_Dockerfile -t docker.dlab-ui ."
+                    sudo("cd {}; docker build --file 
ssn/files/os/webui_Dockerfile -t docker.dlab-ui ."
                             .format(dlab_source_dir))
-                    sudo("cd {}; docker build --file 
general/files/aws/billing_Dockerfile -t docker.dlab-billing ."
+                    sudo("cd {}; docker build --file 
ssn/files/os/billing_Dockerfile -t docker.dlab-billing ."
                             .format(dlab_source_dir))
                     sudo("rm -rf {}".format(k8s_dir))
                 except Exception as err:
diff --git a/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py 
b/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py
index 502e8c8..9d22c73 100644
--- a/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py
@@ -323,9 +323,9 @@ def start_ss(keyfile, host_string, dlab_conf_dir, web_path,
                     sudo("cp -r {0}webapp/provisioning-service/lib/*.jar 
{1}".format(dlab_path, k8s_dir))
                     sudo("cp -r {0}webapp/billing/lib/*.jar 
{1}".format(dlab_path, k8s_dir))
                     sudo('sed -i "s|ssn.yml|/root/ssn.yml|g" 
{}self-service.yml'.format(k8s_dir))
-                    sudo("cd {}; docker build --file 
general/files/aws/webui_Dockerfile -t docker.dlab-ui ."
+                    sudo("cd {}; docker build --file 
ssn/files/os/webui_Dockerfile -t docker.dlab-ui ."
                             .format(dlab_source_dir))
-                    sudo("cd {}; docker build --file 
general/files/aws/billing_Dockerfile -t docker.dlab-billing ."
+                    sudo("cd {}; docker build --file 
ssn/files/os/billing_Dockerfile -t docker.dlab-billing ."
                             .format(dlab_source_dir))
                     sudo("rm -rf {}".format(k8s_dir))
                 except Exception as err:
diff --git 
a/infrastructure-provisioning/src/general/files/aws/billing_Dockerfile 
b/infrastructure-provisioning/src/ssn/files/os/billing_Dockerfile
similarity index 100%
copy from infrastructure-provisioning/src/general/files/aws/billing_Dockerfile
copy to infrastructure-provisioning/src/ssn/files/os/billing_Dockerfile
diff --git a/infrastructure-provisioning/src/ssn/files/os/create_db.js 
b/infrastructure-provisioning/src/ssn/files/os/create_db.js
new file mode 100644
index 0000000..96163d2
--- /dev/null
+++ b/infrastructure-provisioning/src/ssn/files/os/create_db.js
@@ -0,0 +1,8 @@
+use dlabdb
+db.createUser(
+    {
+      user: "admin",
+      pwd: "PASSWORD",
+      roles: [{'role':'userAdminAnyDatabase','db':'admin'}]
+    }
+);
diff --git 
a/infrastructure-provisioning/src/general/files/aws/billing_Dockerfile 
b/infrastructure-provisioning/src/ssn/files/os/mongo_Dockerfile
similarity index 64%
rename from infrastructure-provisioning/src/general/files/aws/billing_Dockerfile
rename to infrastructure-provisioning/src/ssn/files/os/mongo_Dockerfile
index c0952c4..39ab400 100644
--- a/infrastructure-provisioning/src/general/files/aws/billing_Dockerfile
+++ b/infrastructure-provisioning/src/ssn/files/os/mongo_Dockerfile
@@ -19,22 +19,18 @@
 #
 # 
******************************************************************************
 
-FROM ubuntu:16.04
+FROM mongo:4.0-xenial
 
+ARG CLOUD_PROVIDER
 
-USER root
-RUN  apt-get update && \
-     apt-get -y upgrade && \
-     apt-get -y install software-properties-common && \
-     apt-get -y install curl tar sudo
+COPY create_db.js /root/
+COPY ssn/files/${CLOUD_PROVIDER}/mongo_roles.json /root/
+RUN mv /root/mongodb.conf /etc/mongodb.conf
 
+RUN mkdir -p /data/db2 \
+    && mkdir -p /data/logs \
+    && chown -R mongodb:mongodb /data/db2 && \
+    chown -R mongodb:mongodb /data/logs
 
-# java
-RUN apt-get install -y default-jre && \
-    apt-get install -y default-jdk && \
-    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+CMD ["mongod", "--config", "/etc/mongodb.conf"]
 
-COPY tmp-kuber/* /root/
-COPY tmp-kuber/conf/* /root/
-
-CMD sudo java -Xmx1024M -jar -Duser.timezone=UTC -Dfile.encoding=UTF-8 
-DDLAB_CONF_DIR=/root/ /root/billing-aws-2.1.jar --conf /root/billing.yml
\ No newline at end of file
diff --git a/infrastructure-provisioning/src/ssn/files/os/mongodb.conf 
b/infrastructure-provisioning/src/ssn/files/os/mongodb.conf
new file mode 100644
index 0000000..28d182b
--- /dev/null
+++ b/infrastructure-provisioning/src/ssn/files/os/mongodb.conf
@@ -0,0 +1,42 @@
+# mongod.conf
+
+# for documentation of all options, see:
+#   http://docs.mongodb.org/manual/reference/configuration-options/
+
+# Where and how to store data.
+storage:
+  dbPath: /data/db2
+  journal:
+    enabled: true
+#  engine:
+#  mmapv1:
+#  wiredTiger:
+
+# where to write logging data.
+systemLog:
+  destination: file
+  logAppend: true
+  path: /data/logs/mongod.log
+
+# network interfaces
+net:
+  port: 27017
+  bindIp: 0.0.0.0
+
+
+#processManagement:
+
+#security:
+#  authorization: enabled
+
+#operationProfiling:
+
+#replication:
+
+#sharding:
+
+## Enterprise-Only Options:
+
+#auditLog:
+
+#snmp:
diff --git a/infrastructure-provisioning/src/general/files/aws/webui_Dockerfile 
b/infrastructure-provisioning/src/ssn/files/os/webui_Dockerfile
similarity index 100%
rename from infrastructure-provisioning/src/general/files/aws/webui_Dockerfile
rename to infrastructure-provisioning/src/ssn/files/os/webui_Dockerfile
diff --git a/infrastructure-provisioning/src/ssn/scripts/configure_mongo.py 
b/infrastructure-provisioning/src/ssn/scripts/configure_mongo.py
index a7a5fc8..b4f26d6 100644
--- a/infrastructure-provisioning/src/ssn/scripts/configure_mongo.py
+++ b/infrastructure-provisioning/src/ssn/scripts/configure_mongo.py
@@ -22,6 +22,7 @@
 # 
******************************************************************************
 
 from pymongo import MongoClient
+from fabric.api import *
 import yaml, json, sys
 import subprocess
 import time
@@ -34,6 +35,8 @@ outfile = "/etc/mongo_params.yml"
 parser = argparse.ArgumentParser()
 parser.add_argument('--dlab_path', type=str, default='')
 parser.add_argument('--mongo_parameters', type=str, default='')
+parser.add_argument('--cloud_provider', type=str, default='')
+parser.add_argument('--kuber', type=str, default=False)
 args = parser.parse_args()
 
 
@@ -78,24 +81,32 @@ if __name__ == "__main__":
     # Setting up admin's password and enabling security
     client = MongoClient(mongo_ip + ':' + str(mongo_port))
     pass_upd = True
-    try:
-        command = ['service', 'mongod', 'start']
-        subprocess.call(command, shell=False)
-        time.sleep(5)
-        client.dlabdb.add_user('admin', mongo_passwd, 
roles=[{'role':'userAdminAnyDatabase','db':'admin'}])
-        client.dlabdb.command('grantRolesToUser', "admin", roles=["readWrite"])
-        set_mongo_parameters(client, mongo_parameters)
-        with open(args.dlab_path + 'tmp/mongo_roles.json', 'r') as data:
-            json_data = json.load(data)
-        for i in json_data:
-            client.dlabdb.roles.insert_one(i)
-        client.dlabdb.security.create_index("expireAt", 
expireAfterSeconds=7200)
-        if add_2_yml_config(path,'security','authorization','enabled'):
-            command = ['service', 'mongod', 'restart']
+    if kuber:
+        local("cd {}; docker build --build-arg CLOUD_PROVIDER={} --file 
ssn/files/os/mongo_Dockerfile -t docker.dlab-mongo ."
+             .format(args.dlab_path, args.cloud_provider))
+        local("mkdir -p /opt/mongo-vol")
+        local("docker run --name dlab-mongo -p 27017:27017 -v -d 
docker.dlab-mongo")
+        local("docker exec some-mongo sh -c 'mongo < /root/create_db.js'")
+        local("docker exec some-mongo sh -c 'mongoimport --jsonArray --db 
dlabdb --collection roles --file /root/mongo_roles.json'")
+    else:
+        try:
+            command = ['service', 'mongod', 'start']
             subprocess.call(command, shell=False)
-    except:
-        print("Looks like MongoDB have already been secured")
-        pass_upd = False
+            time.sleep(5)
+            client.dlabdb.add_user('admin', mongo_passwd, 
roles=[{'role':'userAdminAnyDatabase','db':'admin'}])
+            client.dlabdb.command('grantRolesToUser', "admin", 
roles=["readWrite"])
+            set_mongo_parameters(client, mongo_parameters)
+            with open(args.dlab_path + 'tmp/mongo_roles.json', 'r') as data:
+                json_data = json.load(data)
+            for i in json_data:
+                client.dlabdb.roles.insert_one(i)
+            client.dlabdb.security.create_index("expireAt", 
expireAfterSeconds=7200)
+            if add_2_yml_config(path,'security','authorization','enabled'):
+                command = ['service', 'mongod', 'restart']
+                subprocess.call(command, shell=False)
+        except:
+            print("Looks like MongoDB have already been secured")
+            pass_upd = False
 
     # Generating output config
     add_2_yml_config(outfile, 'network', 'ip', mongo_ip)
diff --git a/infrastructure-provisioning/src/ssn/scripts/configure_ui.py 
b/infrastructure-provisioning/src/ssn/scripts/configure_ui.py
index daafc19..196e44f 100644
--- a/infrastructure-provisioning/src/ssn/scripts/configure_ui.py
+++ b/infrastructure-provisioning/src/ssn/scripts/configure_ui.py
@@ -122,8 +122,8 @@ def configure_mongo(mongo_passwd):
                                                                                
           env.host_string))
         sudo('mv /tmp/mongo_roles.json ' + args.dlab_path + 'tmp/')
         mongo_parameters = json.loads(args.mongo_parameters)
-        sudo("python " + args.dlab_path + "tmp/configure_mongo.py --dlab_path 
{} --mongo_parameters '{}'".format(
-            args.dlab_path, json.dumps(mongo_parameters)))
+        sudo("python " + args.dlab_path + "tmp/configure_mongo.py --dlab_path 
{} --mongo_parameters '{}' --cloud_provider {}".format(
+            args.dlab_path, json.dumps(mongo_parameters), args.cloud_provider))
     except Exception as err:
         traceback.print_exc()
         print('Failed to configure MongoDB: ', str(err))


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to