
{"id":114,"date":"2014-06-15T16:05:29","date_gmt":"2014-06-15T06:05:29","guid":{"rendered":"http:\/\/mnm.at\/markus\/?p=114"},"modified":"2014-06-15T16:05:29","modified_gmt":"2014-06-15T06:05:29","slug":"openshift-local-vm-environment-notes","status":"publish","type":"post","link":"https:\/\/mnm.at\/markus\/2014\/06\/15\/openshift-local-vm-environment-notes\/","title":{"rendered":"OpenShift Local VM Environment Notes"},"content":{"rendered":"<h2>Initial Set-up<\/h2>\n<p>I was able to use an older version of my non-spring test server <a href=\"https:\/\/bitbucket.org\/markus_ebenhoeh\/simple-executable-jar-web-server.git\">simple-executable-jar-web-server<\/a>.<\/p>\n<p>The test is following up on <a href=\"http:\/\/mnm.at\/markus\/2014\/06\/15\/cloud-foundry-environment-notes\/\">my tests with Cloud Foundry<\/a> as well as <a href=\"http:\/\/mnm.at\/markus\/2014\/06\/15\/stackato-local-vm-environment-notes\/\">Stackato<\/a>.<\/p>\n<p>I also created a <a href=\"https:\/\/bitbucket.org\/markus_ebenhoeh\/openshift-cartridge-spring-boot-jar-runner\">very simple cartridge<\/a> (<a href=\"http:\/\/mnm.at\/markus\/2014\/06\/15\/building-an-openshift-cartridge\/\">notes<\/a>) that I was using to understand the way cartridges work. But a<br \/>\nDIY cartridge would have been sufficent for this.<\/p>\n<p>App container cartridge are supposed to come with templates as far as I understand. In this case I packaged the<br \/>\ntest server  in the template which is also the reason why I wanted it to stay small.<\/p>\n<h2>Runtime Environment and Properties<\/h2>\n<h2>Environment<\/h2>\n<pre><code>'OPENSHIFT_DEPLOYMENTS_DIR' = '\/var\/lib\/openshift\/539\/app-deployments\/'\n'HISTFILE' = '\/var\/lib\/openshift\/539\/app-root\/data\/.bash_history'\n'OPENSHIFT_SBJR_JAR_DIR' = '\/var\/lib\/openshift\/539\/app-root\/runtime\/repo\/\/target\/'\n'OPENSHIFT_DATA_DIR' = '\/var\/lib\/openshift\/539\/app-root\/data\/'\n'JAVA_HOME' = '\/etc\/alternatives\/java_sdk_1.6.0'\n'OPENSHIFT_SBJR_VERSION' = '1.0.2'\n'OPENSHIFT_SBJR_JPDA_PORT' = '8787'\n'PWD' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner'\n'TMP_DIR' = '\/tmp\/'\n'OPENSHIFT_SECRET_TOKEN' = 'n_3eZmWnvvsJUnY4nYicj-k6vVAG_6nglPrtgkqjyKf0OWH-pGlRbVyCRGRcFAruY4n8BKX7aPKSvZxO-5lQTlWheStOyHkmBcsQ4zwlmJaMjNk9Ii5IkzktC0P9seXS'\n'NLSPATH' = '\/usr\/dt\/lib\/nls\/msg\/%L\/%N.cat'\n'OPENSHIFT_APP_DNS' = 'app1-testapps.openshift.local'\n'TMPDIR' = '\/tmp\/'\n'TMP' = '\/tmp\/'\n'OPENSHIFT_SBJR_LOG_DIR' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner\/\/logs\/'\n'OPENSHIFT_NAMESPACE' = 'testapps'\n'PATH' = '\/etc\/alternatives\/java_sdk_1.6.0\/bin:\/bin:\/usr\/bin:\/usr\/sbin'\n'OPENSHIFT_SBJR_IP' = '127.1.245.1'\n'OPENSHIFT_SBJR_IDENT' = 'coder_mnm_at:spring-boot-jar-runner:1.0.2:0.0.1'\n'OPENSHIFT_UMASK' = '022'\n'OPENSHIFT_APP_UUID' = '539'\n'OPENSHIFT_CARTRIDGE_SDK_BASH' = '\/usr\/lib\/openshift\/cartridge_sdk\/bash\/sdk'\n'OPENSHIFT_BUILD_DEPENDENCIES_DIR' = '\/var\/lib\/openshift\/539\/app-root\/runtime\/build-dependencies\/'\n'OPENSHIFT_SBJR_MAX_STARTUP_WAIT_IN_SEC' = '60'\n'OPENSHIFT_SBJR_DIR' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner\/'\n'OPENSHIFT_GEAR_DNS' = 'app1-testapps.openshift.local'\n'OPENSHIFT_REPO_DIR' = '\/var\/lib\/openshift\/539\/app-root\/runtime\/repo\/'\n'OPENSHIFT_BROKER_HOST' = 'localhost'\n'SHLVL' = '3'\n'OPENSHIFT_GEAR_MEMORY_MB' = '512'\n'XFILESEARCHPATH' = '\/usr\/dt\/app-defaults\/%L\/Dt'\n'OPENSHIFT_APP_NAME' = 'app1'\n'OPENSHIFT_GEAR_UUID' = '539'\n'OPENSHIFT_SBJR_JAR_RELATIVE_FOLDER_NAME' = 'target'\n'OPENSHIFT_APP_SSH_PUBLIC_KEY' = '\/var\/lib\/openshift\/539\/.openshift_ssh\/id_rsa.pub'\n'OPENSHIFT_GEAR_NAME' = 'app1'\n'LOGNAME' = '539'\n'OPENSHIFT_SBJR_JAR_BASE_DIR' = '\/var\/lib\/openshift\/539\/app-root\/runtime\/repo\/'\n'OPENSHIFT_PRIMARY_CARTRIDGE_DIR' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner\/'\n'_' = '\/bin\/java'\n'OPENSHIFT_SBJR_HTTP_PORT' = '8080'\n'OPENSHIFT_CLOUD_DOMAIN' = 'openshift.local'\n'OPENSHIFT_DEPENDENCIES_DIR' = '\/var\/lib\/openshift\/539\/app-root\/runtime\/dependencies\/'\n'SHELL' = '\/bin\/sh'\n'Copy of OPENSHIFT_SBJR_MAX_SHUTDOWN_WAIT_IN_SEC' = '60'\n'OPENSHIFT_SBJR_LOG' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner\/\/logs\/main-SBJR-log'\n'OPENSHIFT_HOMEDIR' = '\/var\/lib\/openshift\/539\/'\n'GEM_HOME' = '\/var\/lib\/openshift\/539\/.gem'\n'OPENSHIFT_TMP_DIR' = '\/tmp\/'\n'OPENSHIFT_APP_SSH_KEY' = '\/var\/lib\/openshift\/539\/.openshift_ssh\/id_rsa'\n'OPENSHIFT_CARTRIDGE_SDK_RUBY' = '\/usr\/lib\/openshift\/cartridge_sdk\/ruby\/sdk.rb'\n'USER' = '539'\n'HOME' = '\/var\/lib\/openshift\/539'\n'OPENSHIFT_SBJR_JDK6' = '\/etc\/alternatives\/java_sdk_1.6.0'\n'OPENSHIFT_SBJR_JDK7' = '\/etc\/alternatives\/java_sdk_1.7.0'\n'OPENSHIFT_SBJR_PATH_ELEMENT' = '\/etc\/alternatives\/java_sdk_1.6.0\/bin'\n<\/code><\/pre>\n<h3>System Properties<\/h3>\n<pre><code>'java.runtime.name' = 'OpenJDK Runtime Environment'\n'sun.boot.library.path' = '\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/amd64'\n'java.vm.version' = '24.45-b08'\n'java.vm.vendor' = 'Oracle Corporation'\n'java.vendor.url' = 'http:\/\/java.oracle.com\/'\n'path.separator' = ':'\n'java.vm.name' = 'OpenJDK 64-Bit Server VM'\n'file.encoding.pkg' = 'sun.io'\n'user.country' = 'US'\n'sun.java.launcher' = 'SUN_STANDARD'\n'sun.os.patch.level' = 'unknown'\n'server.port' = ''\n'java.vm.specification.name' = 'Java Virtual Machine Specification'\n'user.dir' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner'\n'java.runtime.version' = '1.7.0_45-mockbuild_2013_10_16_17_47-b00'\n'java.awt.graphicsenv' = 'sun.awt.X11GraphicsEnvironment'\n'java.endorsed.dirs' = '\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/endorsed'\n'os.arch' = 'amd64'\n'java.io.tmpdir' = '\/tmp'\n'line.separator' = '\n'\n'java.vm.specification.vendor' = 'Oracle Corporation'\n'os.name' = 'Linux'\n'sun.jnu.encoding' = 'ANSI_X3.4-1968'\n'java.library.path' = '\/usr\/java\/packages\/lib\/amd64:\/usr\/lib64:\/lib64:\/lib:\/usr\/lib'\n'java.specification.name' = 'Java Platform API Specification'\n'java.class.version' = '51.0'\n'sun.management.compiler' = 'HotSpot 64-Bit Tiered Compilers'\n'os.version' = '3.11.10-200.fc19.x86_64'\n'user.home' = '\/var\/lib\/openshift\/539'\n'user.timezone' = 'US\/Pacific'\n'java.awt.printerjob' = 'sun.print.PSPrinterJob'\n'file.encoding' = 'ANSI_X3.4-1968'\n'java.specification.version' = '1.7'\n'server.address' = '127.1.245.1'\n'java.class.path' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner\/web-app-jar\/simple-executable-jar-web-server-0.0.1.jar'\n'user.name' = '539'\n'java.vm.specification.version' = '1.7'\n'sun.java.command' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner\/web-app-jar\/simple-executable-jar-web-server-0.0.1.jar'\n'java.home' = '\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre'\n'sun.arch.data.model' = '64'\n'user.language' = 'en'\n'java.specification.vendor' = 'Oracle Corporation'\n'awt.toolkit' = 'sun.awt.X11.XToolkit'\n'java.vm.info' = 'mixed mode'\n'logging.path' = '\/var\/lib\/openshift\/539\/spring-boot-jar-runner\/\/logs\/'\n'java.version' = '1.7.0_45'\n'java.ext.dirs' = '\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/ext:\/usr\/java\/packages\/lib\/ext'\n'sun.boot.class.path' = '\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/resources.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/rt.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/sunrsasign.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/jsse.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/jce.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/charsets.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/netx.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/plugin.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/rhino.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/lib\/jfr.jar:\/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc19.x86_64\/jre\/classes'\n'java.vendor' = 'Oracle Corporation'\n'file.separator' = '\/'\n'java.vendor.url.bug' = 'http:\/\/bugreport.sun.com\/bugreport\/'\n'sun.io.unicode.encoding' = 'UnicodeLittle'\n'sun.cpu.endian' = 'little'\n'sun.cpu.isalist' = ''\nHere is what I know about you :\nYour adress:\n\/127.0.0.1:23554\nYour request headers:\n'X-forwarded-proto' = '[http]'\n'X-request-start' = '[t=1402811035856892]'\n'Host' = '[app1-testapps.openshift.local]'\n'X-forwarded-server' = '[broker-66587a.openshift.local]'\n'Accept-encoding' = '[gzip,deflate,sdch]'\n'X-forwarded-port' = '[80]'\n'Connection' = '[close]'\n'X-forwarded-for' = '[192.168.121.33]'\n'X-client-ip' = '[192.168.121.33]'\n'Accept-language' = '[en-GB,en-US;q=0.8,en;q=0.6,de;q=0.4]'\n'X-forwarded-host' = '[app1-testapps.openshift.local]'\n'User-agent' = '[Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.114 Safari\/537.36]'\n'Accept' = '[text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8]'\n<\/code><\/pre>\n<h3>Adding MariaDB<\/h3>\n<p>From the three experiences I found the OpenShift one the friendliest in terms of adding a new service as well as the information that I got out of it.<br \/>\nIt also immediately showed the connection details to the DB.<br \/>\nOnly a restart is required, not a full push.<\/p>\n<pre><code>MySQL 5.1 database added.  Please make note of these credentials:\n\n    Root User: admin123\nRoot Password: passwd123\nDatabase Name: app1\n\nConnection URL: mysql:\/\/$OPENSHIFT_MARIADB_DB_HOST:$OPENSHIFT_MARIADB_DB_PORT\/\n\nYou can manage your new MySQL database by also embedding phpmyadmin.\nThe phpmyadmin username and password will be the same as the MySQL credentials above.\n<\/code><\/pre>\n<p>Yep, it is MySQL.<\/p>\n<p>A lot more variables changed in comparison to the other two and no system properties:<\/p>\n<pre><code>&gt; 'OPENSHIFT_MYSQL_DB_HOST' = '127.1.245.2'\n&gt; 'OPENSHIFT_MARIADB_DB_PORT' = '3306'\n&gt; 'OPENSHIFT_MYSQL_DB_PORT' = '3306'\n&gt; 'OPENSHIFT_MARIADB_DB_PASSWORD' = 'passwd123'\n&gt; 'OPENSHIFT_MARIADB_DIR' = '\/var\/lib\/openshift\/539\/mariadb\/'\n&gt; 'OPENSHIFT_MARIADB_DB_USERNAME' = 'admin123'\n&gt; 'OPENSHIFT_MARIADB_DB_SOCKET' = '\/var\/lib\/openshift\/539\/mariadb\/\/socket\/mysql.sock'\n&gt; 'OPENSHIFT_MYSQL_DB_URL' = 'mysql:\/\/admin123:passwd123@127.1.245.2:3306\/'\n&gt; 'OPENSHIFT_MARIADB_DB_HOST' = '127.1.245.2'\n&gt; 'OPENSHIFT_MYSQL_DB_USERNAME' = 'admin123'\n&gt; 'OPENSHIFT_MYSQL_DB_LOG_DIR' = '\/var\/lib\/openshift\/539\/mariadb\/\/log\/'\n&gt; 'OPENSHIFT_MARIADB_IDENT' = 'redhat:mariadb:5.5:0.2.4'\n&gt; 'OPENSHIFT_MARIADB_DB_LOG_DIR' = '\/var\/lib\/openshift\/539\/mariadb\/\/log\/'\n&gt; 'OPENSHIFT_MARIADB_DB_URL' = 'mysql:\/\/admin123:passwd123@127.1.245.2:3306\/'\n&gt; 'OPENSHIFT_MYSQL_DB_SOCKET' = '\/var\/lib\/openshift\/539\/mariadb\/\/socket\/mysql.sock'\n&gt; 'OPENSHIFT_MYSQL_DB_PASSWORD' = 'passwd123'\n<\/code><\/pre>\n<p>Similar to Stackato there is a lot of duplication, in both cases I assume the reason is backward compatibility.<\/p>\n<h2>Adding MongoDB and PostgreSQL as well<\/h2>\n<pre><code>MongoDB 2.2 database added.  Please make note of these credentials:\n\nRoot User:     adminuser\nRoot Password: passwd123\nDatabase Name: app1\n\nConnection URL: mongodb:\/\/$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT\/\n\n\n\nPostgreSQL 9.2 database added.  Please make note of these credentials:\n\n    Root User: adminuser\n    Root Password: passwd123\n    Database Name: app1\n\nConnection URL: postgresql:\/\/$OPENSHIFT_POSTGRESQL_DB_HOST:$OPENSHIFT_POSTGRESQL_DB_PORT\n<\/code><\/pre>\n<p>changes are :<\/p>\n<pre><code>&gt; 'LD_LIBRARY_PATH' = ''\n&gt; 'MANPATH' = ''\n&gt; 'OPENSHIFT_MONGODB_DB_HOST' = '127.1.245.3'\n&gt; 'OPENSHIFT_MONGODB_DB_LOG_DIR' = '\/var\/lib\/openshift\/539\/mongodb\/\/log\/'\n&gt; 'OPENSHIFT_MONGODB_DB_PASSWORD' = 'passwd123'\n&gt; 'OPENSHIFT_MONGODB_DB_PORT' = '27017'\n&gt; 'OPENSHIFT_MONGODB_DB_URL' = 'mongodb:\/\/adminuser:passwd123@127.1.245.3:27017\/'\n&gt; 'OPENSHIFT_MONGODB_DB_USERNAME' = 'adminuser'\n&gt; 'OPENSHIFT_MONGODB_DIR' = '\/var\/lib\/openshift\/539\/mongodb\/'\n&gt; 'OPENSHIFT_MONGODB_IDENT' = 'redhat:mongodb:2.2:0.2.5'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_HOST' = '127.1.245.4'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_LOG_DIR' = '\/var\/lib\/openshift\/539\/postgresql\/\/log\/'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_PASSWORD' = 'passwd123'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_PID' = '\/var\/lib\/openshift\/539\/postgresql\/\/pid\/postgres.pid'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_PORT' = '5432'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_SOCKET' = '\/var\/lib\/openshift\/539\/postgresql\/\/socket\/'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_URL' = 'postgresql:\/\/adminuser:passwd123@127.1.245.4:5432'\n&gt; 'OPENSHIFT_POSTGRESQL_DB_USERNAME' = 'adminuser'\n&gt; 'OPENSHIFT_POSTGRESQL_DIR' = '\/var\/lib\/openshift\/539\/postgresql\/'\n&gt; 'OPENSHIFT_POSTGRESQL_IDENT' = 'redhat:postgresql:9.2:0.3.5'\n&gt; 'OPENSHIFT_POSTGRESQL_PATH_ELEMENT' = '\/bin'\n&gt; 'OPENSHIFT_POSTGRESQL_VERSION' = '9.2'\n&gt; 'PGDATABASE' = 'app1'\n&gt; 'PGDATA' = '\/var\/lib\/openshift\/539\/postgresql\/\/data'\n&gt; 'PGHOST' = '\/var\/lib\/openshift\/539\/postgresql\/\/socket\/'\n&gt; 'PGUSER' = 'adminuser'\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Checking out the OpenShift environment changes when adding services <a href=\"https:\/\/mnm.at\/markus\/2014\/06\/15\/openshift-local-vm-environment-notes\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[5],"tags":[17,18,16],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-tech","tag-java","tag-openshift","tag-paas"],"_links":{"self":[{"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":1,"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":115,"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/posts\/114\/revisions\/115"}],"wp:attachment":[{"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mnm.at\/markus\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}