One can download the CentOS Minimal Image at
http://wiki.centos.org/Download
One of link is
http://mirror.trouble-free.net/centos/6.5/isos/x86_64/
Install the VM Image by using VirtualBox
https://www.virtualbox.org/
It is recommended to use
4GB Memory
40GB Dynamic Disk Space
Following needed to be set
Bridge Adapter
After the installation complete, run following bash script
(Host at github https://github.com/danilko/openshift-origin-3-jbossews-cartridge-installation)
#!/bin/bash BROKER_OPENSHIFT_HOSTNAME=`hostname` APP_OPENSHIFT_HOSTNAME=`echo ${BROKER_OPENSHIFT_HOSTNAME} | cut -d '.' -f2-` # Make eth0 adapater enable during system start up sed -i 's^ONBOOT=no^ONBOOT=yes^g' /etc/sysconfig/network-scripts/ifcfg-eth0 # Restart network service service network restart # Make current hostname to be resolvable echo -e "\n127.0.0.1 broker.platform.local" >> /etc/hosts yum -y install java-1.7.0-openjdk-devel wget unzip cd /tmp wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6*.rpm; cat > /etc/yum.repos.d/openshift-origin-deps.repo <<"EOF" [openshift-origin-deps] name=OpenShift Origin Dependencies - EL6 baseurl=http://mirror.openshift.com/pub/origin-server/release/3/rhel-6/dependencies/$basearch/ gpgcheck=0 EOF yum install -y ruby193-ruby unzip curl bind httpd-tools puppet augeas # Install default config file cat > ~/.openshift/oo-install-cfg.yml <<"EOF" --- Version: 0.0.1 Description: This is the configuration file for the OpenShift Installer. Deployment: DNS: component_domain: broker.platform.local register_components: Y app_domain: platform.local Hosts: - ip_addr: 127.0.0.1 named_ip_addr: 127.0.0.1 user: root host: broker.platform.local state: new ip_interface: eth0 roles: - msgserver - dbserver - broker - node ssh_host: localhost Vendor: OpenShift Origin Community Subscription: type: yum jenkins_repo_base: http://pkg.jenkins-ci.org/redhat repos_base: https://mirror.openshift.com/pub/origin-server/release/3/rhel-6 Name: OpenShift Installer Configuration EOF sh <(curl -s https://install.openshift.com/) -w origin_deploy # Update the DNS of current host nsupdate -k /var/named/Kplatform.local*.key server ${BROKER_OPENSHIFT_HOSTNAME} update delete ${BROKER_OPENSHIFT_HOSTNAME} A update add 180 A 127.0.0.1 send quit ###################################### ## SSL Cert Generation ###################################### mkdir -p /tmp/pki cd /tmp/pki cat > platform.crt.config <<"EOF" RANDFILE = $ENV::HOME/.rnd [ req ] default_bits = 1024 default_keyfile = keyfile.pem distinguished_name = req_distinguished_name attributes = req_attributes prompt = no output_password = changeme [ req_distinguished_name ] C = US ST = CA L = SAN JOSE O = PLATFORM OU = PLATFORM CN = *.platform.local emailAddress = changeme [ req_attributes ] challengePassword = changeme EOF # Generate a new key that lasts 365 days openssl req -batch -x509 -nodes -days 365 -newkey rsa:2048 -keyout platform.key -out platform.crt -config platform.crt.config # Backup old certificate and key \cp -rf /etc/pki/tls/certs/localhost.crt /etc/pki/tls/certs/localhost.crt.bak \cp -rf /etc/pki/tls/private/localhost.key /etc/pki/tls/private/localhost.key.bak # Copy certificate and key \cp -rf platform.crt /etc/pki/tls/certs/localhost.crt \cp -rf platform.key /etc/pki/tls/private/localhost.key # Setup so the serveralias also contain *platform.local sed -i 's^ServerAlias localhost^ServerAlias localhost *.platform.local^g' /etc/httpd/conf.d/000001_openshift_origin_node.conf sed -i 's^ServerAlias localhost^ServerAlias localhost *.platform.local^g' /etc/httpd/conf.d/000002_openshift_origin_broker_proxy.conf # Get certificate through opnenssl # Do not need since the cert is auto generated #echo -n | openssl s_client -connect broker.platform.local:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > platform.crt # Import to java keystore to prevent ssl problem keytool -import -trustcacerts -keystore /usr/lib/jvm/java-1.7.0-openjdk-1.7.*.x86_64/jre/lib/security/cacerts -storepass changeit -noprompt -alias platform_cert -file /tmp/pki/platform.crt cd /tmp rm -rf /tmp/pki # Restart httpd service httpd restart # Ensure cgconfig and cgred is on to make sure gear config /sbin/chkconfig cgconfig on /sbin/chkconfig cgred on reboot now
After the reboot, run the following bash script
#!/bin/bash cd /tmp TOMCAT7_VER=7.0.50 TOMCAT6_VER=6.0.37 MAVEN_VER=3.1.1 # Download binary wget http://supergsego.com/apache/tomcat/tomcat-7/v${TOMCAT7_VER}/bin/apache-tomcat-${TOMCAT7_VER}.tar.gz wget http://apache.mirrors.hoobly.com/tomcat/tomcat-6/v${TOMCAT6_VER}/bin/apache-tomcat-${TOMCAT6_VER}.tar.gz wget http://apache.petsads.us/maven/maven-3/3.1.1/binaries/apache-maven-${MAVEN_VER}-bin.tar.gz wget https://github.com/openshift/origin-server/archive/openshift-origin-release-3.zip # Untar/Unzip binaries tar -xvf apache-tomcat-${TOMCAT7_VER}.tar.gz tar -xvf apache-tomcat-${TOMCAT6_VER}.tar.gz tar -xvf apache-maven-${MAVEN_VER}-bin.tar.gz unzip openshift-origin-release-3.zip ###################################### ## Install Maven ###################################### \cp -rf apache-maven-${MAVEN_VER} /etc/alternatives/maven # Setup maven path system wide echo -e 'export M2_HOME=/etc/alternatives/maven\nexport PATH=${M2_HOME}/bin:${PATH}' > /etc/profile.d/maven.sh source /etc/profile.d/maven.sh mvn -v ###################################### ## Install JBossews ###################################### # Copy jbossews/tomcat to correct location \cp -rf apache-tomcat-${TOMCAT6_VER} /etc/alternatives/jbossews-1.0 \cp -rf apache-tomcat-${TOMCAT7_VER} /etc/alternatives/jbossews-2.0 # Copy openshift cartridges \cp -rf origin-server-openshift-origin-release-3/cartridges/openshift-origin-cartridge-jbossews /usr/libexec/openshift/cartridges/jbossews chmod a+x /usr/libexec/openshift/cartridges/jbossews/bin/* # Install the cartridge oo-admin-cartridge -a install -s /usr/libexec/openshift/cartridges/jbossews # Clear broker cache oo-admin-broker-cache -c # Clean up folder rm -rf origin-server-openshift-origin-release-3 rm -rf apache-maven-${MAVEN_VER} rm -rf apache-tomcat-${TOMCAT7_VER} rm -rf apache-tomcat-${TOMCAT6_VER} ###################################### ## Change Default User Gear Size all to medium ###################################### # Resource limit file RESOURCE_LIMIT_CONFIG_FILE=/etc/openshift/resource_limits.conf sed -i 's^node_profile=small^node_profile=medium^g' ${RESOURCE_LIMIT_CONFIG_FILE} sed -i 's^quota_blocks=1048576^quota_blocks=2097152^g' ${RESOURCE_LIMIT_CONFIG_FILE} sed -i 's^quota_files=80000^quota_files=999999^g' ${RESOURCE_LIMIT_CONFIG_FILE} sed -i 's^memory_limit_in_bytes=536870912 # 512MB^memory_limit_in_bytes=1073741824 # 1024MB^g' ${RESOURCE_LIMIT_CONFIG_FILE} sed -i 's^memory_memsw_limit_in_bytes=641728512 # 512M + 100M (100M swap)^memory_memsw_limit_in_bytes=1178599424 # 1024M + 100M (100M swap)^g' ${RESOURCE_LIMIT_CONFIG_FILE} # Set the file connection limit RESOURCE_LIMIT_CONFIG_FILE=/etc/security/limits.conf sed -i 's^#End of file^^g' ${RESOURCE_LIMIT_CONFIG_FILE} echo -e "\n* soft nofile 32000\n* hard nofile 32000" >> ${RESOURCE_LIMIT_CONFIG_FILE} echo -e "\n#End of file" >> ${RESOURCE_LIMIT_CONFIG_FILE} # Reboot node services service mcollective restart oo-cgroup-enable --with-all-containers oo-pam-enable --with-all-containers oo-admin-ctl-tc restart sed -i 's^"small"^"medium"^g' /etc/openshift/broker.conf # Change demo user gear size oo-admin-ctl-user --removegearsize small -l demo oo-admin-ctl-user --addgearsize medium -l demo # Clear broker cache oo-admin-broker-cache -c ###################################### ## Setup rhc tool ###################################### # Setup rhc tool gem install rhc echo yes | rhc setup --server=broker.platform.local -l demo -p changeme -k –no-create-tokenBy the end, one should have a working OpenShift configuration with JBossews Cartridges enable
Thanks.
Sincerely,
Danil