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
Thank you for documenting this.
ReplyDeleteHi Danil,
ReplyDeleteI followed the first part and had no issues in running the first script went fine.
After thr reboot when i ran the second part had issues in tomcat versions.
Solved it with appropriate version.
Second issue # 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/*
I created the Directory manually and files were copied while running the scripts
After this script is getting failed at
# Install the cartridge
oo-admin-cartridge -a install -s /usr/libexec/openshift/cartridges/jbossews
Please help me on this.
Awaiting for an reply from your end.
Vijay,
DeleteSorry for the late reply. I normally only check through the weekend.
I suspect the problem is unzip fails, may you try following:
yum -y install unzip
unzip openshift-origin-release-3.zip
rm -rf /usr/libexec/openshift/cartridges/jbossews
# 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
I also update the script to ensure the unzip must be installed.
Thanks.
Sincerely,
Danil
Hi,
ReplyDeleteThanks for the script :), but facing with below error:
The OpenShift deployment configuration has the following errors:
* The implied host domain 'platform.local' does not match the specified host domain of 'broker.platform.local' for DNS
Rerun the installer to correct these errors.
could you please help.
Hello chatainay.gk,
DeleteSorry for the late replay. I suspected the error is because the script is no longer compatible with the new OpenShift v4 spec. I will suggest to use their released version VM is a faster path (http://www.openshift.org/documentation/oo_deployment_guide_vm.html) if you are doing the single instance deployment. After the vm is deployed, run following to install tomcat (however, V4 is shipping with a JBossAS already, so you may not need to install tomcat if you perfer jboss):
#!/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-4.zip
######################################
## 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-4
rm -rf apache-maven-${MAVEN_VER}
rm -rf apache-tomcat-${TOMCAT7_VER}
rm -rf apache-tomcat-${TOMCAT6_VER}
Hello chatainay.gk,
ReplyDeleteSorry for the late replay to your question, strange thing it did not show up at here, following is your question:
chatainay.gk has left a new comment on your post "OpenShift Origin 3.0 with JBossews CentOS Installa...":
Thanks Dani, I already deployed on VM using http://www.openshift.org/documentation/oo_deployment_guide_vm.html and it is working fine. But I wanted to deploy the Origin from scratch on two fresh minimal VM's from scratch.
Also could you please help me with another issue, which is related to DNS. After deploying Openshift on VM, it opens fine at https://broker.openshift.local/console/. Is there anyway I could configure the DNS so that It resolves from my network machines too?
The DNS configuration problem is that your local computer must add the machine as a secondary DNS
For Windows, it is to manually configure the DNS server (please remember the old settings in case things go wrong), following article explains about it
http://support.simpledns.com/kb/a72/configuring-windows-7-to-use-local-dns-server.aspx
The DNS server is your OpenShift broker IP. Your machine must be expose as publicly within your local network
For Linux, you may modify /etc/resolve.conf (for RHEL, CentOS, Fedora) and add the ip of your OpenShift Broker as the first entry.
Thanks.
Sincerely,
Danil