From 025301d08b061482c1f046d562bf017c8cbcfe8d Mon Sep 17 00:00:00 2001 From: ChrisC Date: Tue, 31 Jan 2017 11:40:03 +0100 Subject: Initial OpenECOMP MSO commit Change-Id: Ia6a7574859480717402cc2f22534d9973a78fa6d Signed-off-by: ChrisC --- .../src/main/docker/docker-files/Dockerfile.jacoco | 33 ++ .../docker/docker-files/Dockerfile.mso-arquillian | 99 ++++ .../main/docker/docker-files/Dockerfile.mso-build | 63 +++ .../docker/docker-files/Dockerfile.mso-chef-final | 102 ++++ .../docker-files/Dockerfile.ubuntu-16.04-update | 22 + .../main/docker/docker-files/Dockerfile.wildfly-10 | 33 ++ .../main/docker/docker-files/chef-configs/solo.rb | 9 + .../configuration/application-roles.properties | 32 ++ .../configuration/application-users.properties | 34 ++ .../configuration/mgmt-groups.properties | 22 + .../configuration/mgmt-users.properties | 27 + .../configuration/standalone-full-ha.xml | 609 +++++++++++++++++++++ .../jboss-configs/modules/mariadb/main/module.xml | 11 + .../docker/docker-files/scripts/build-and-start.sh | 230 ++++++++ .../main/docker/docker-files/scripts/init-chef.sh | 25 + .../docker-files/scripts/start-jboss-server.sh | 53 ++ .../src/main/docker/docker-files/settings.xml | 54 ++ 17 files changed, 1458 insertions(+) create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.jacoco create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.mso-arquillian create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.mso-build create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.mso-chef-final create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.ubuntu-16.04-update create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.wildfly-10 create mode 100644 packages/docker/src/main/docker/docker-files/chef-configs/solo.rb create mode 100644 packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-roles.properties create mode 100644 packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-users.properties create mode 100644 packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-groups.properties create mode 100644 packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-users.properties create mode 100644 packages/docker/src/main/docker/docker-files/jboss-configs/configuration/standalone-full-ha.xml create mode 100644 packages/docker/src/main/docker/docker-files/jboss-configs/modules/mariadb/main/module.xml create mode 100644 packages/docker/src/main/docker/docker-files/scripts/build-and-start.sh create mode 100644 packages/docker/src/main/docker/docker-files/scripts/init-chef.sh create mode 100644 packages/docker/src/main/docker/docker-files/scripts/start-jboss-server.sh create mode 100644 packages/docker/src/main/docker/docker-files/settings.xml (limited to 'packages/docker/src') diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.jacoco b/packages/docker/src/main/docker/docker-files/Dockerfile.jacoco new file mode 100644 index 0000000000..e3c243d707 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.jacoco @@ -0,0 +1,33 @@ +### Set the base image to Fedora +FROM ubuntu:14.04 + +### File Author / Maintainer +MAINTAINER "Ecomp Opensource Team" +LABEL Description="This image is used to get jacoco result from a jboss image" Version="1.0" + +ARG http_proxy +ARG https_proxy +ARG chef_repo_branch_name +ARG chef_repo_address +ARG chef_repo_git_name +ARG chef_repo_git_username +ENV HTTP_PROXY=$http_proxy +ENV HTTPS_PROXY=$https_proxy +ENV http_proxy=$HTTP_PROXY +ENV https_proxy=$HTTPS_PROXY +RUN echo "Acquire::http::Proxy \"$http_proxy\";" >> /etc/apt/apt.conf + +RUN apt-get update && apt-get install -y openssh-server +RUN mkdir /var/run/sshd +RUN echo 'root:screencast' | chpasswd +RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config + +# SSH login fix. Otherwise user is kicked off after login +RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd + +ENV NOTVISIBLE "in users profile" +RUN echo "export VISIBLE=now" >> /etc/profile + +VOLUME /shared + +CMD ["/usr/sbin/sshd", "-D"] \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.mso-arquillian b/packages/docker/src/main/docker/docker-files/Dockerfile.mso-arquillian new file mode 100644 index 0000000000..11b7cf7bb6 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.mso-arquillian @@ -0,0 +1,99 @@ +FROM ecomp/wildfly:1.0 + + +### File Author / Maintainer +MAINTAINER "Ecomp Opensource Team" +LABEL Description="This image contains Ecomp Opensource MSO base for arquillian" Version="1.0" + +ARG chef_repo_branch_name +ARG chef_repo_address +ARG chef_repo_git_name +ARG chef_repo_git_username +ENV BRANCH_NAME=$chef_repo_branch_name +ENV REPO_USERNAME=$chef_repo_git_username +ENV REPO_ADDRESS=$chef_repo_address +ENV CHEF_REPO_NAME=$chef_repo_git_name + +### Downloading dependencies + +USER root +RUN apt-get install -y curl && curl -LO https://packages.chef.io/stable/ubuntu/12.04/chefdk_0.17.17-1_amd64.deb && curl -LO http://central.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/1.5.4/mariadb-java-client-1.5.4.jar && curl -LO http://search.maven.org/remotecontent?filepath=org/jacoco/jacoco/0.7.7.201606060606/jacoco-0.7.7.201606060606.zip && apt-get remove --purge -y curl && apt-get autoremove -y +RUN apt-get install -y unzip && unzip jacoco-0.7.7.201606060606.zip -d /tmp/jacoco && apt-get remove --purge -y unzip && apt-get autoremove -y +RUN chown -R jboss:jboss /tmp/jacoco +### Install Chef +RUN dpkg -i chefdk_0.17.17-1_amd64.deb + +COPY scripts/init-chef.sh /opt/mso/scripts/init-chef.sh +COPY scripts/start-jboss-server.sh /opt/mso/scripts/start-jboss-server.sh + +RUN chown jboss:jboss /opt/mso/scripts/* +RUN chmod u+rx /opt/mso/scripts/* + +RUN mkdir /etc/chef +RUN chown jboss:jboss /etc/chef +RUN chmod u+xrw /etc/chef + +RUN mkdir -p /etc/mso +RUN chown -R jboss:jboss /etc/mso +RUN chmod u+xrw /etc/mso + +# Setup shared folder +RUN mkdir /shared +RUN chown jboss:jboss /shared + +# Setup chef folders +RUN mkdir /var/berks-cookbooks +RUN chown jboss:jboss /var/berks-cookbooks +COPY chef-configs/solo.rb /tmp/git/solo.rb +RUN chown -R jboss:jboss /tmp/git/ + +COPY id_rsa /home/jboss/user +RUN chmod 600 /home/jboss/user +RUN chown -R jboss:jboss /home/jboss + +# Start Chef config +RUN mkdir -p /var/nodes +RUN chown jboss:jboss /var/nodes + +RUN mkdir -p /home/jboss/.chef/nodes +RUN mkdir /home/jboss/.ssh + + +RUN apt-get install -y git && sed -i "s@jboss:/bin/false@jboss:/bin/bash@g" /etc/passwd && su jboss -c "/opt/mso/scripts/init-chef.sh" && sed -i "s@jboss:/bin/bash@jboss:/bin/false@g" /etc/passwd && apt-get remove --purge -y git && apt-get autoremove -y +RUN rm -rf /home/jboss/.ssh +RUN rm /home/jboss/user +RUN echo "" > /shared/mso-docker.json +RUN echo "" > /shared/jacoco-it.exec +RUN ls -latr / +RUN ls -latr /shared +RUN chown jboss:jboss /shared/jacoco-it.exec +RUN mv /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker-init.json +RUN ln -s /shared/mso-docker.json /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json +RUN rm -rf /tmp/git + +## Create the log folder for MSO +RUN mkdir -p /var/log/ecomp/MSO/ +RUN chown jboss:jboss /var/log/ecomp/MSO + +### Configure Jboss WildFly +RUN mkdir -p $JBOSS_HOME/modules/mariadb/main +RUN cp mariadb-java-client-1.5.4.jar $JBOSS_HOME/modules/mariadb/main +COPY jboss-configs/modules/mariadb/main/module.xml $JBOSS_HOME/modules/mariadb/main +COPY jboss-configs/configuration/standalone-full-ha.xml $JBOSS_HOME/standalone/configuration/standalone-full-ha-mso.xml +COPY jboss-configs/configuration/mgmt-users.properties $JBOSS_HOME/standalone/configuration/mgmt-users.properties +COPY jboss-configs/configuration/mgmt-groups.properties $JBOSS_HOME/standalone/configuration/mgmt-groups.properties +COPY jboss-configs/configuration/application-users.properties $JBOSS_HOME/standalone/configuration/application-users.properties +COPY jboss-configs/configuration/application-roles.properties $JBOSS_HOME/standalone/configuration/application-roles.properties + +RUN echo "JAVA_OPTS=\"\$JAVA_OPTS -Xms64m -Xmx4g -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=1g -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0 -Dmso.db=MARIADB -Dmso.config.path=/etc/mso/config.d/ -javaagent:/tmp/jacoco/lib/jacocoagent.jar=destfile=/shared/jacoco-it.exec,dumponexit=true,append=false,includes=com.att.*:org.openecomp.*\"" >> $JBOSS_HOME/bin/standalone.conf +RUN echo "LAUNCH_JBOSS_IN_BACKGROUND=true" >> $JBOSS_HOME/bin/standalone.conf + +### Open Ports +EXPOSE 8080 9990 + +VOLUME /shared + +### Start EAP +USER root +CMD ["/opt/mso/scripts/start-jboss-server.sh"] + diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.mso-build b/packages/docker/src/main/docker/docker-files/Dockerfile.mso-build new file mode 100644 index 0000000000..3a26a7f78e --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.mso-build @@ -0,0 +1,63 @@ +FROM ubuntu:16.04 + +### File Author / Maintainer +MAINTAINER "Ecomp Opensource Team" +LABEL Description="This image builds Ecomp Opensource MSO " Version="1.0" + + +ARG http_proxy +ARG https_proxy + +ARG mso_git_repository +ARG mso_git_branch + +ARG mvn_central_user +ARG mvn_central_pwd + +ENV HTTP_PROXY=$http_proxy +ENV HTTPS_PROXY=$https_proxy +ENV http_proxy=$HTTP_PROXY +ENV https_proxy=$HTTPS_PROXY + + +ENV mso_git_repository=$mso_git_repository +ENV mso_git_branch=$mso_git_branch + + +ENV mvn_central_user=$mvn_central_user +ENV mvn_central_pwd=$mvn_central_pwd + +ENV JBOSS_HOME=/opt/jboss + +USER root + +COPY scripts/init-chef.sh /opt/mso/scripts/init-chef.sh +RUN chmod 755 /opt/mso/scripts/init-chef.sh + +COPY scripts/build-and-start.sh /opt/mso/scripts/build-and-start.sh +RUN chmod 755 /opt/mso/scripts/build-and-start.sh + +# should be copied at final destination once jboss user is created +COPY id_rsa /tmp/id_rsa +COPY settings.xml /tmp/settings.xml + +# should be copied at final destination once jboss is installed +COPY jboss-configs/module.xml /tmp/jboss-configs/module.xml +COPY jboss-configs/standalone-full-ha.xml /tmp/jboss-configs/standalone-full-ha.xml +COPY jboss-configs/modules/mariadb/main/module.xml /tmp/jboss-configs/modules/mariadb/main +COPY jboss-configs/configuration/standalone-full-ha.xml /tmp/jboss-configs/standalone/configuration/standalone-full-ha-mso.xml +COPY jboss-configs/configuration/mgmt-users.properties /tmp/jboss-configs/standalone/configuration/mgmt-users.properties +COPY jboss-configs/configuration/mgmt-groups.properties /tmp/jboss-configs/standalone/configuration/mgmt-groups.properties +COPY jboss-configs/configuration/application-users.properties /tmp/jboss-configs/standalone/configuration/application-users.properties +COPY jboss-configs/configuration/application-roles.properties /tmp/jboss-configs/standalone/configuration/application-roles.properties + + +### Open Ports +EXPOSE 8080 + +### Start EAP +VOLUME /shared + + +CMD ["/opt/mso/scripts/build-and-start.sh"] + diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.mso-chef-final b/packages/docker/src/main/docker/docker-files/Dockerfile.mso-chef-final new file mode 100644 index 0000000000..b5afdcd274 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.mso-chef-final @@ -0,0 +1,102 @@ +FROM ecomp/wildfly:1.0 + + +### File Author / Maintainer +MAINTAINER "Ecomp Opensource Team" +LABEL Description="This image contains Ecomp Opensource MSO " Version="1.0" + +ARG http_proxy +ARG https_proxy +ARG chef_repo_branch_name +ARG chef_repo_address +ARG chef_repo_git_name +ARG chef_repo_git_username +ENV BRANCH_NAME=$chef_repo_branch_name +ENV REPO_USERNAME=$chef_repo_git_username +ENV REPO_ADDRESS=$chef_repo_address +ENV CHEF_REPO_NAME=$chef_repo_git_name +ENV HTTP_PROXY=$http_proxy +ENV HTTPS_PROXY=$https_proxy +ENV http_proxy=$HTTP_PROXY +ENV https_proxy=$HTTPS_PROXY + +### Downloading dependencies + +USER root +RUN apt-get install -y curl && curl -LO https://packages.chef.io/stable/ubuntu/12.04/chefdk_0.17.17-1_amd64.deb && curl -LO http://central.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/1.5.4/mariadb-java-client-1.5.4.jar && apt-get remove --purge -y curl && apt-get autoremove -y + +### Install Chef +RUN dpkg -i chefdk_0.17.17-1_amd64.deb + +COPY scripts/init-chef.sh /opt/mso/scripts/init-chef.sh +COPY scripts/start-jboss-server.sh /opt/mso/scripts/start-jboss-server.sh + +RUN chown jboss:jboss /opt/mso/scripts/* +RUN chmod u+rx /opt/mso/scripts/* + +RUN mkdir /etc/chef +RUN chown jboss:jboss /etc/chef +RUN chmod u+xrw /etc/chef + +RUN mkdir -p /etc/mso +RUN chown -R jboss:jboss /etc/mso +RUN chmod u+xrw /etc/mso + +# Setup shared folder +RUN mkdir /shared +RUN chown jboss:jboss /shared + +# Setup chef folders +RUN mkdir /var/berks-cookbooks +RUN chown jboss:jboss /var/berks-cookbooks +COPY chef-configs/solo.rb /tmp/git/solo.rb +RUN chown -R jboss:jboss /tmp/git/ + +COPY id_rsa /home/jboss/user +RUN chmod 600 /home/jboss/user +RUN chown -R jboss:jboss /home/jboss + +# Start Chef config +RUN mkdir -p /var/nodes +RUN chown jboss:jboss /var/nodes + +RUN mkdir -p /home/jboss/.chef/nodes +RUN mkdir /home/jboss/.ssh + + +RUN apt-get install -y git && sed -i "s@jboss:/bin/false@jboss:/bin/bash@g" /etc/passwd && su jboss -c "/opt/mso/scripts/init-chef.sh" && sed -i "s@jboss:/bin/bash@jboss:/bin/false@g" /etc/passwd && apt-get remove --purge -y git && apt-get autoremove -y +RUN rm -rf /home/jboss/.ssh +RUN rm /home/jboss/user +RUN echo "" > /shared/mso-docker.json +RUN mv /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker-init.json +RUN ln -s /shared/mso-docker.json /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json +RUN rm -rf /tmp/git + +## Create the log folder for MSO +RUN mkdir -p /var/log/ecomp/MSO/ +RUN chown jboss:jboss /var/log/ecomp/MSO + +### Configure Jboss WildFly +RUN mkdir -p $JBOSS_HOME/modules/mariadb/main +RUN cp mariadb-java-client-1.5.4.jar $JBOSS_HOME/modules/mariadb/main +COPY jboss-configs/modules/mariadb/main/module.xml $JBOSS_HOME/modules/mariadb/main +COPY jboss-configs/configuration/standalone-full-ha.xml $JBOSS_HOME/standalone/configuration/standalone-full-ha-mso.xml +COPY jboss-configs/configuration/mgmt-users.properties $JBOSS_HOME/standalone/configuration/mgmt-users.properties +COPY jboss-configs/configuration/mgmt-groups.properties $JBOSS_HOME/standalone/configuration/mgmt-groups.properties +COPY jboss-configs/configuration/application-users.properties $JBOSS_HOME/standalone/configuration/application-users.properties +COPY jboss-configs/configuration/application-roles.properties $JBOSS_HOME/standalone/configuration/application-roles.properties + +RUN echo "JAVA_OPTS=\"\$JAVA_OPTS -Xms64m -Xmx4g -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=1g -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0 -Dmso.db=MARIADB -Dmso.config.path=/etc/mso/config.d/\"" >> $JBOSS_HOME/bin/standalone.conf +RUN echo "LAUNCH_JBOSS_IN_BACKGROUND=true" >> $JBOSS_HOME/bin/standalone.conf + +COPY ./maven/artifacts/* $JBOSS_HOME/standalone/deployments/ + +### Open Ports +EXPOSE 8080 + +VOLUME /shared + +### Start EAP +USER root +CMD ["/opt/mso/scripts/start-jboss-server.sh"] + diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.ubuntu-16.04-update b/packages/docker/src/main/docker/docker-files/Dockerfile.ubuntu-16.04-update new file mode 100644 index 0000000000..08987b407e --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.ubuntu-16.04-update @@ -0,0 +1,22 @@ +FROM ubuntu:16.04 + +### File Author / Maintainer +MAINTAINER "Ecomp Opensource Team" +LABEL Description="This image contains an updated version of ubuntu 16.04" Version="1.0" + +ARG http_proxy +ARG https_proxy +ARG chef_repo_branch_name +ARG chef_repo_address +ARG chef_repo_git_name +ARG chef_repo_git_username +ENV HTTP_PROXY=$http_proxy +ENV HTTPS_PROXY=$https_proxy +ENV http_proxy=$HTTP_PROXY +ENV https_proxy=$HTTPS_PROXY + +### update first the image to fix potential security issues +RUN apt-get update +RUN apt-get -y dist-upgrade + + diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.wildfly-10 b/packages/docker/src/main/docker/docker-files/Dockerfile.wildfly-10 new file mode 100644 index 0000000000..729bf5eb59 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.wildfly-10 @@ -0,0 +1,33 @@ +FROM ecomp/ubuntu-update:1.0 + +### File Author / Maintainer +MAINTAINER "Ecomp Opensource Team" +LABEL Description="This image contains Ecomp Opensource MSO " Version="1.0" + +ARG http_proxy +ARG https_proxy +ARG chef_repo_branch_name +ARG chef_repo_address +ARG chef_repo_git_name +ARG chef_repo_git_username +ENV HTTP_PROXY=$http_proxy +ENV HTTPS_PROXY=$https_proxy +ENV http_proxy=$HTTP_PROXY +ENV https_proxy=$HTTPS_PROXY + +### Install OpenJDK +RUN apt-get -y install openjdk-8-jre-headless + + + +### Install Wildfly +ENV JBOSS_HOME=/opt/jboss + +RUN WILDFLY=wildfly-10.1.0.Final.tar.gz; apt-get -y install curl; curl -LO http://download.jboss.org/wildfly/10.1.0.Final/$WILDFLY ; tar xvfz $WILDFLY -C /opt/; mv /opt/${WILDFLY%.tar.gz} $JBOSS_HOME; rm $WILDFLY; apt-get remove -y --purge curl; apt-get autoremove -y +RUN adduser --system --group jboss +RUN chown -R jboss $JBOSS_HOME +RUN $JBOSS_HOME/bin/add-user.sh admin Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U --silent + +USER jboss +CMD ["/opt/jboss/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"] + diff --git a/packages/docker/src/main/docker/docker-files/chef-configs/solo.rb b/packages/docker/src/main/docker/docker-files/chef-configs/solo.rb new file mode 100644 index 0000000000..5e8247503a --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/chef-configs/solo.rb @@ -0,0 +1,9 @@ +current_dir = File.dirname(__FILE__) +log_level :info +log_location STDOUT +node_name "mso" +syntax_check_cache_path "#{current_dir}/syntaxcache" +cookbook_path ["/var/berks-cookbooks"] +environment_path "/var/berks-cookbooks/CHEF_REPO_NAME_TO_REPLACE/environments" +environment "mso-docker" + diff --git a/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-roles.properties b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-roles.properties new file mode 100644 index 0000000000..de9b0aac09 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-roles.properties @@ -0,0 +1,32 @@ +# +# Properties declaration of users roles for the realm 'ApplicationRealm' which is the default realm +# for application services on a new installation. +# +# This includes the following protocols: remote ejb, remote jndi, web, remote jms +# +# Users can be added to this properties file at any time, updates after the server has started +# will be automatically detected. +# +# The format of this file is as follows: - +# username=role1,role2,role3 +# +# A utility script is provided which can be executed from the bin folder to add the users: - +# - Linux +# bin/add-user.sh +# +# - Windows +# bin\add-user.bat +# +# The following illustrates how an admin user could be defined. +# +#admin=PowerUser,BillingAdmin, +#guest=guest +CSIClient=CSI-Client +CCDClient=CCD-Client +GUIClient=GUI-Client +BPMNClient=BPMN-Client +InfraPortalClient=InfraPortal-Client +MSOClient=MSO-Client +sitecontrol=SiteControl-Client +MSO=AAIEmul-Client +BPELClient=BPEL-Client \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-users.properties b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-users.properties new file mode 100644 index 0000000000..a04d22296d --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/application-users.properties @@ -0,0 +1,34 @@ +# +# Properties declaration of users for the realm 'ApplicationRealm' which is the default realm +# for application services on a new installation. +# +# This includes the following protocols: remote ejb, remote jndi, web, remote jms +# +# Users can be added to this properties file at any time, updates after the server has started +# will be automatically detected. +# +# The format of this realm is as follows: - +# username=HEX( MD5( username ':' realm ':' password)) +# +# A utility script is provided which can be executed from the bin folder to add the users: - +# - Linux +# bin/add-user.sh +# +# - Windows +# bin\add-user.bat +# +#$REALM_NAME=ApplicationRealm$ This line is used by the add-user utility to identify the realm name already used in this file. +# +# The following illustrates how an admin user could be defined, this +# is for illustration only and does not correspond to a usable password. +# +#admin=2a0923285184943425d1f53ddd58ec7a +CSIClient=0024f53a4ec012c22d9575a3710ed362 +CCDClient=c5e97286d4251605d8ef72f727ac1da6 +GUIClient=583075cf28c7c69c3a8b08356830b856 +BPMNClient=42b98ca2e0cc976d91a26c1495ecd529 +InfraPortalClient=e5077b432685a94babe332893337f6fc +MSOClient=72bc85031ae67afe67014c7663ae1033 +sitecontrol=9a3a360d86758f69ec9508725c017335 +MSO=a05cb60a04f41f750ce1fc60a2633534 +BPELClient=f2b4ce8ae1964050c0ad7e69bd88fd62 \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-groups.properties b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-groups.properties new file mode 100644 index 0000000000..44742a83c4 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-groups.properties @@ -0,0 +1,22 @@ +# +# Properties declaration of users groups for the realm 'ManagementRealm'. +# +# This is used for domain management, users groups membership information is used to assign the user +# specific management roles. +# +# Users can be added to this properties file at any time, updates after the server has started +# will be automatically detected. +# +# The format of this file is as follows: - +# username=role1,role2,role3 +# +# A utility script is provided which can be executed from the bin folder to add the users: - +# - Linux +# bin/add-user.sh +# +# - Windows +# bin\add-user.bat +# +# The following illustrates how an admin user could be defined. +# +#admin=PowerUser,BillingAdmin, \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-users.properties b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-users.properties new file mode 100644 index 0000000000..1576e76f4e --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/mgmt-users.properties @@ -0,0 +1,27 @@ +# +# Properties declaration of users for the realm 'ManagementRealm' which is the default realm +# for new installations. Further authentication mechanism can be configured +# as part of the in standalone.xml. +# +# Users can be added to this properties file at any time, updates after the server has started +# will be automatically detected. +# +# By default the properties realm expects the entries to be in the format: - +# username=HEX( MD5( username ':' realm ':' password)) +# +# A utility script is provided which can be executed from the bin folder to add the users: - +# - Linux +# bin/add-user.sh +# +# - Windows +# bin\add-user.bat +# On start-up the server will also automatically add a user $local - this user is specifically +# for local tools running against this AS installation. +# +# The following illustrates how an admin user could be defined, this +# is for illustration only and does not correspond to a usable password. +# +admin=281905e1b4420050a7f07eecba66ee68 +# +#$REALM_NAME=ManagementRealm$ This line is used by the add-user utility to identify the realm name already used in this file. +# diff --git a/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/standalone-full-ha.xml b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/standalone-full-ha.xml new file mode 100644 index 0000000000..cface7f46d --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/jboss-configs/configuration/standalone-full-ha.xml @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jdbc:mariadb://mariadb:3306/mso_requests?autoReconnect=true&connectTimeout=60000&socketTimeout=60000 + mariadb + TRANSACTION_READ_COMMITTED + + 10 + 100 + true + false + FailingConnectionOnly + + + mso + mso123 + + + + false + true + 20000 + true + + + + 15 + 30 + 1 + 3000 + + + + jdbc:mariadb://mariadb:3306/mso_catalog?autoReconnect=true&connectTimeout=60000&socketTimeout=60000 + mariadb + TRANSACTION_READ_COMMITTED + + 10 + 100 + true + false + FailingConnectionOnly + + + catalog + catalog123 + + + + false + true + 20000 + true + + + + 15 + 30 + 1 + 3000 + + + + jdbc:mariadb://mariadb:3306/camundabpmn?autoReconnect=true&connectTimeout=60000&socketTimeout=60000 + mariadb + set autocommit=1 + TRANSACTION_READ_COMMITTED + + 10 + 100 + true + false + FailingConnectionOnly + + + camunda + camunda123 + + + + + + + 32 + true + + + + jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + h2 + + sa + sa + + + + + org.h2.jdbcx.JdbcDataSource + + + org.mariadb.jdbc.MySQLDataSource + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jboss.bind.address:127.0.0.1} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/jboss-configs/modules/mariadb/main/module.xml b/packages/docker/src/main/docker/docker-files/jboss-configs/modules/mariadb/main/module.xml new file mode 100644 index 0000000000..1b127358ed --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/jboss-configs/modules/mariadb/main/module.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/scripts/build-and-start.sh b/packages/docker/src/main/docker/docker-files/scripts/build-and-start.sh new file mode 100644 index 0000000000..3694981628 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/scripts/build-and-start.sh @@ -0,0 +1,230 @@ +#!/bin/bash -x + +GIT_REPO=$mso_git_repository +GIT_BRANCH=$mso_git_branch +! [[ $GIT_SSH_KEY ]] && GIT_SSH_KEY=/home/jboss/user +MVN_CENTRAL_USER=$mvn_central_user +MVN_CENTRAL_PWD=$mvn_central_pwd +WILDFLY_TAR=wildfly-10.1.0.Final.tar.gz; +CHEF_DEB=chefdk_0.17.17-1_amd64.deb + +echo "Jboss Home:" +echo ${JBOSS_HOME} +echo "Repository :" +echo ${GIT_REPO} +echo "Branch :" +echo ${GIT_BRANCH} +echo "Ssh key file :" +echo ${GIT_SSH_KEY} +echo "Maven central user :" +echo ${MVN_CENTRAL_USER} + +[[ ${MVN_CENTRAL_PWD} ]] && echo "with password" || echo "without password" + +function update_terminal() { + echo "--------------------------------------------------------------------------" + echo $* + echo "--------------------------------------------------------------------------" +} + +function update_ubuntu() { + update_terminal "Updating ubuntu" + apt-get update + apt-get -y dist-upgrade +} + + +function set_ssh_key() { + [[ -f /home/jboss/user ]] && return || update_terminal "Setting ssh key" + mkdir -p /home/jboss/.ssh/ + mv /tmp/id_rsa /home/jboss/user + chown jboss:jboss -R /home/jboss/user + chmod 600 /home/jboss/user + chown jboss:jboss /home/jboss/.ssh + chmod 700 /home/jboss/.ssh + +} + +function set_maven_settings() { + [[ -f /home/jboss/.m2/settings.xml ]] && return || update_terminal "Updating maven settings" + mkdir -p /home/jboss/.m2/ + mv /tmp/settings.xml /home/jboss/.m2/settings.xml + chown -R jboss:jboss /home/jboss/.m2/ + + # set login and password for maven central + sed -i "s/#PASSWORD#/$MVN_CENTRAL_PWD/g" /home/jboss/.m2/settings.xml \ + && sed -i "s/#USERNAME#/$MVN_CENTRAL_USER/g" /home/jboss/.m2/settings.xml +} + +function install_jboss() { + [[ -f $JBOSS_HOME/bin/standalone.conf ]] && [[ $(grep "LAUNCH_JBOSS_IN_BACKGROUND=true" $JBOSS_HOME/bin/standalone.conf) ]] && return || update_terminal "Installing jboss"; + + + adduser --system --group jboss + + curl -C - -LO http://download.jboss.org/wildfly/10.1.0.Final/$WILDFLY_TAR ; + tar xvfz $WILDFLY_TAR -C /opt/; + mv /opt/${WILDFLY_TAR%.tar.gz} $JBOSS_HOME; + + chown -R jboss:jboss $JBOSS_HOME + echo "JAVA_OPTS=\"\$JAVA_OPTS -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0 -Dmso.db=MARIADB -Dmso.config.path=/etc/mso/config.d/ -Dmso.aaf.enable=false \"" >> $JBOSS_HOME/bin/standalone.conf + echo "LAUNCH_JBOSS_IN_BACKGROUND=true" >> $JBOSS_HOME/bin/standalone.conf + +} + +function create_log_folders() { + [[ -d /var/log/ecomp ]] && [[ /var/log/ecomp/MSO/ ]] && return || update_terminal "Creating log folders" + mkdir -p /var/log/ecomp/MSO/ + chown -R jboss:jboss /var/log/ecomp +} + +function install_mariadb_connector() { + [[ -f $JBOSS_HOME/standalone/configuration/standalone-full-ha-mso.xml ]] && return || update_terminal "Installing mariadb connector" + MARIADB_DIR=$JBOSS_HOME/modules/mariadb + curl -C - -O -L http://central.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/1.5.4/mariadb-java-client-1.5.4.jar + mkdir -p $MARIADB_DIR/main + mv mariadb-java-client-1.5.4.jar $MARIADB_DIR/main + cp /tmp/jboss-configs//modules/mariadb/main/module.xml $MARIADB_DIR/main + cp /tmp/jboss-configs/standalone-full-ha.xml $JBOSS_HOME/standalone/configuration/standalone-full-ha-mso.xml + cp /tmp/jboss-configs/configuration/application-roles.properties $JBOSS_HOME/standalone/configuration/application-roles.properties + cp /tmp/jboss-configs/configuration/application-users.properties $JBOSS_HOME/standalone/configuration/application-users.properties + cp /tmp/jboss-configs/configuration/mgmt-groups.properties $JBOSS_HOME/standalone/configuration/mgmt-groups.properties + cp /tmp/jboss-configs/configuration/mgmt-users.properties $JBOSS_HOME/standalone/configuration/mgmt-users.properties + + chown -R jboss:jboss $MARIADB_DIR +} + +function dep_install() { + update_terminal "Installing dependencies" + # install requirements + apt-get -y install openjdk-8-jre-headless curl git maven + STATUS=$? + if [[ $STATUS != 0 ]]; + then + exit 1 + fi +} + +function clone_mso() { + [[ $("ls /tmp/mso-core") ]] && return || update_terminal "Cloning mso repository" + # build git command + GIT_CMD="git clone --single-branch -b ${GIT_BRANCH-master} ${GIT_REPO} -v" + + # build ssh command + export GIT_SSH_COMMAND="ssh -i ${GIT_SSH_KEY} -o StrictHostKeyChecking=false" + + # cloning + su - jboss -s /bin/bash -c "export GIT_SSH_COMMAND=\"ssh -i ${GIT_SSH_KEY} -o StrictHostKeyChecking=false\"; cd /tmp/; ${GIT_CMD} mso-core" + STATUS=$? + if [[ $STATUS != 0 ]]; + then + exit 2 + fi +} +#export MAVEN_OPTS="$MAVEN_OPTS -Dhttp.proxyHost=one.proxy.att.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=one.proxy.att.com -Dhttps.proxyPort=8080" + +function mso_build() { + update_terminal "Building Mso core" + # building + cd /tmp/mso-core + su jboss -s /bin/bash -c "mvn clean install" + STATUS=$? + if [[ $STATUS != 0 ]]; + then + exit 4 + fi +} + +function war_to_temp() { + [[ $("ls /tmp/wars/") ]] && return || update_terminal "Copying wars to tmp directory" + function copy_wars() { + for war in `find . -iname "*.war" `; + do + cp $war /tmp/wars/ + done + } + export -f copy_wars + su - jboss -s /bin/bash -c copy_wars + #tar xzf ./packages/deliveries/target/assembly/war-packs/*.tar.gz -C /tmp/wars/ +} + +function install_chef() { + [[ -d /home/jboss/.chef/nodes ]] && return || update_terminal "Installing chef" + curl -C - -LO https://packages.chef.io/stable/ubuntu/12.04/$CHEF_DEB + dpkg -i $CHEF_DEB + for dir in "/etc/chef /etc/mso /var/berks-cookbooks /tmp/git /var/nodes /home/jboss/.chef/nodes"; + do + mkdir -p $dir + chown jboss:jboss $dir + chmod 700 $dir + done +} + +function chef_init() { + update_terminal "Initializing chef" + mkdir -p /tmp/git + cp /shared/solo.rb /tmp/git/ + chown -R jboss:jboss /tmp/git + su - jboss -s /bin/bash -c /opt/mso/scripts/init-chef.sh + mv /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker-init.json + ln -s /shared/mso-docker.json /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json +} + +function cleanup() { + # cleaning & space freeup + echo "Cleaning up" + + rm -rf /tmp/git/mso-core + rm -f /$WILDFLY_TAR; + rm -f /$CHEF_DEB + + rm -rf /home/jboss/.m2 + apt-get remove -y maven git curl + +} + +function build() { + update_ubuntu + dep_install + + install_jboss + create_log_folders + install_mariadb_connector + + set_ssh_key + + install_chef + chef_init + + + clone_mso + + set_maven_settings + mso_build + war_to_temp + cleanup +} + +function init_certif() { + # Copy the certificates + cp /shared/*.crt /usr/local/share/ca-certificates + update-ca-certificates +} + +function start() { + su - jboss -s /bin/bash -c /opt/mso/scripts/start-jboss-server.sh +} + +rm -f "$JBOSS_HOME/standalone/deployments/README.txt" +if ! [[ "$(ls -A $JBOSS_HOME/standalone/deployments/)" ]]; +then + mkdir -p /tmp/wars/ + build + cp /tmp/wars/* $JBOSS_HOME/standalone/deployments/ + rm -rf /tmp/wars/ + init_certif +fi + +cd /opt/jboss + +start diff --git a/packages/docker/src/main/docker/docker-files/scripts/init-chef.sh b/packages/docker/src/main/docker/docker-files/scripts/init-chef.sh new file mode 100644 index 0000000000..0a562e715e --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/scripts/init-chef.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# Copyright 2015 AT&T Intellectual Properties +############################################################################## +# Script to initialize the chef-repo branch and.chef +# +############################################################################## + +set -x +cd /tmp/git/ +export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=false -i ~/user" +git clone -b ${BRANCH_NAME:-master} --single-branch ssh://${REPO_USERNAME}@${REPO_ADDRESS}/${CHEF_REPO_NAME}.git + + +# Will have to be removed later +#mkdir -p /var/chef/nodes +sed "s/CHEF_REPO_NAME_TO_REPLACE/${CHEF_REPO_NAME}/g" -i /tmp/git/solo.rb +mv /tmp/git/solo.rb /tmp/git/${CHEF_REPO_NAME}/ +cd /tmp/git/${CHEF_REPO_NAME} + +echo "Vendor cookbooks with Berkshelf" +berks vendor /var/berks-cookbooks -b Berksfile.mso-docker + +# Execute the ChefClient to configure the mso-config +echo "Update config with chef solo" +chef-solo -c /var/berks-cookbooks/${CHEF_REPO_NAME}/solo.rb -o recipe[mso-config::apih],recipe[mso-config::bpmn],recipe[mso-config::jra] \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/scripts/start-jboss-server.sh b/packages/docker/src/main/docker/docker-files/scripts/start-jboss-server.sh new file mode 100644 index 0000000000..2e9b9da27d --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/scripts/start-jboss-server.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# Copyright 2015 AT&T Intellectual Properties +############################################################################## +# Script to initialize the chef-repo branch and.chef +# +############################################################################## +# Copy the certificates +echo 'Copying the *.crt provided in /shared folder' +cp --verbose /shared/*.crt /usr/local/share/ca-certificates +update-ca-certificates + +echo 'Running in JBOSS' +su - jboss + +#Start the chef-solo +chef-solo -c /var/berks-cookbooks/${CHEF_REPO_NAME}/solo.rb -o recipe[mso-config::apih],recipe[mso-config::bpmn],recipe[mso-config::jra] + + +JBOSS_PIDFILE=/tmp/jboss-standalone.pid +$JBOSS_HOME/bin/standalone.sh -c standalone-full-ha-mso.xml & +JBOSS_PID=$! +# Trap common signals and relay them to the jboss process +trap "kill -HUP $JBOSS_PID" HUP +trap "kill -TERM $JBOSS_PID" INT +trap "kill -QUIT $JBOSS_PID" QUIT +trap "kill -PIPE $JBOSS_PID" PIPE +trap "kill -TERM $JBOSS_PID" TERM +if [ "x$JBOSS_PIDFILE" != "x" ]; then + echo $JBOSS_PID > $JBOSS_PIDFILE +fi +# Wait until the background process exits +WAIT_STATUS=128 +while [ "$WAIT_STATUS" -ge 128 ]; do + wait $JBOSS_PID 2>/dev/null + WAIT_STATUS=$? + if [ "$WAIT_STATUS" -gt 128 ]; then + SIGNAL=`expr $WAIT_STATUS - 128` + SIGNAL_NAME=`kill -l $SIGNAL` + echo "*** JBossAS process ($JBOSS_PID) received $SIGNAL_NAME signal ***" >&2 + fi +done +if [ "$WAIT_STATUS" -lt 127 ]; then + JBOSS_STATUS=$WAIT_STATUS +else + JBOSS_STATUS=0 +fi +if [ "$JBOSS_STATUS" -ne 10 ]; then + # Wait for a complete shudown + wait $JBOSS_PID 2>/dev/null +fi +if [ "x$JBOSS_PIDFILE" != "x" ]; then + grep "$JBOSS_PID" $JBOSS_PIDFILE && rm $JBOSS_PIDFILE +fi diff --git a/packages/docker/src/main/docker/docker-files/settings.xml b/packages/docker/src/main/docker/docker-files/settings.xml new file mode 100644 index 0000000000..ff9343b6c6 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/settings.xml @@ -0,0 +1,54 @@ + + + + + + + + + optional + true + http + one.proxy.att.com + 8080 + localhost,127.0.0.1,*.att.com + + + + + + mso-releases + #USERNAME# + #PASSWORD# + + + mso-snapshots + #USERNAME# + #PASSWORD# + + + mso-3rd-party + #USERNAME# + #PASSWORD# + + + -- cgit 1.2.3-korg