Menghosting Aplikasi di server cloud Openshift

Openshift adalah sebuah layanan hosting aplikasi yang disediakan oleh Red Hat. Di sini, kita bisa meletakkan aplikasi-aplikasi kita di sebuah server dan dapat diakses dari mana pun. Singkat kata, Openshift adalah sebuah server cloud. Layanan disediakan sebagai Platform as a Service (PaaS), yeah whatever its mean, apa pun itu artinya, saya nggak ngerti 😀 yang saya tahu hanyalah Openshift saat ini tersedia GRATIS, entah sampai kapan, mudah-mudahan seterusnya 😀

 

Openshift saat ini mendukung Node.js, Ruby, Python, PHP, Perl, dan Java. Jika masih dirasa kurang, kita bisa menambah sendiri melalui fitur DIY (Do-It-Yourself). Tulisan ini adalah dokumentasi saya ketika menginstall Tomcat 7 di Openshift.

 

INSTALASI TOMCAT 7 DI OPENSHIFT

Saya mengikuti referensi dari blog Openshift dalam menginstall Tomcat di Openshift. Namun sedikit berbeda dari tutorial tersebut, saya menggunakan Tomcat 7.0.30. Berikut langkah-langkahnya:

1. Membuat Account Openshift

Ikuti saja link https://openshift.redhat.com/app/account/new dan isikan semua field yang dibutuhkan. Jangan lupa masukkan kode promo TOMCAT untuk mendapatkan akses gratos (mudah-mudahan masih berlaku saat Anda membaca tulisan ini :P). Kemudian, akan ada link aktivasi akun yang dikirim ke email Anda.

 2. Install RHC Client

Instal client RHC sesuai platform Anda, tersedia untuk Windows, Linux, dan Mac OS. Saya menggunakan Ubuntu 12.04. Untuk instalasi RHC Client di Ubuntu, saya lakukan:

sudo apt-get install ruby-full rubygems git-core

setelah Ruby terinstall, kita gunakan GEM (Ruby Installer) untuk menginstall RHC.

sudo gem install rhc

Setelah RHC terinstall kita sudah dapat membuat aplikasi.

3. Membuat Aplikasi di Openshift

rhc app create -a tomcat -t diy-0.1

jika ini adalah perintah RHC pertama Anda, maka akan ada beberapa konfigurasi yang perlu dilakukan, termasuk ketika menentukan namespace. Silahkan pilih namespace Anda sendiri.

Kita hanya perlu menginstall tomcat saja, karena Java sudah tersedia di server Openshift.

4. Disable Ruby Test

Supaya nyaman menggunakan Tomcat, kita akan men-disable Ruby Test.

cd tomcat/.openshift/action_hooks

Di direktori lokal ini terdapat beberapa skrip yang dijalankan otomatis ketika menjalankan aplikasi. Yang akan kita lakukan adalah  menghapus skrip ini karena di dalamnya ada perintah Ruby Test. Pertama-tama kita matikan dulu aplikasi tomcat.

$ rhc app stop -a tomcat

Lalu, hapus file start dan stop dan buat file kosong bernama start dan stop.

$ rm start

$ rm stop

$ touch start

$ touch stop

Sama saja dengan perintah $ echo /dev/null > start && echo /dev/null > stop

Kemudian kita commit penghapusan ini ke git.

$ git commit -a -m “Replaced start and stop scripts”

$ git push

5. Login SSH

Untuk mendapatkan login SSH ke server Openshift, lihat informasinya dengan perintah

$ rhc domain show

login SSH akan ditunjukkan di info URL git, bentuknya spt ini:

Login SSH dapat dilakukan dengan perintah

$ ssh 8d9cb8f32a15462da469fff7d80b48bf@NAMESPACE_ANDA.rhcloud.com

6. Download Tomcat 7

Pindah direktori ke space aplikasi yang sudah dibuat di Openshift:

$ cd tomcat/data

Unduhlah Tomcat versi terbaru

$ wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.29/bin/apache-tomcat-7.0.30.tar.gz

$ tar zxf apache-tomcat-7.0.30.tar.gz

$ rm apache-tomcat-7.0.30.tar.gz

$ cd apache-tomcat-7.0.30/conf

$ env |grep INTERNAL_IP

 

 

 

Which should return something similar to this:

 

OPENSHIFT_INTERNAL_IP=127.6.99.1

 

We need to modify the server.xml file to respect this ip address as well as change the default ports that some of the services run on.

 

 

 

Old Connector:

 

<Connector port=”8080″ protocol=”HTTP/1.1″

 

connectionTimeout=”20000″

 

redirectPort=”8443″ />

 

 

 

New Connector:

 

<Connector port=”8080″ protocol=”HTTP/1.1″

 

connectionTimeout=”20000″

 

address=”127.6.99.1”

 

redirectPort=”15443″ />

 

 

 

Notice that we added an address tag to this connector.

 

 

 

We now need to change the following line for the Catalina Engine:

 

<Engine name=”Catalina” defaultHost=”localhost”>

 

to

 

<Engine name=”Catalina” defaultHost=”127.6.99.1″>

 

 

 

We also need to modify the host name section to point to our OpenShift host.

 

 

 

<Host name=”localhost” appBase=”webapps”

 

unpackWARs=”true” autoDeploy=”true”>

 

to

 

<Host name=”tomcat-yourdomain.rhcloud.com” appBase=”webapps”

 

unpackWARs=”true” autoDeploy=”true”>

 

 

 

The ports that are configured for others services will not work by default because OpenShift does not allow users to bind to any port below 15000 other than 8080. Because of this, we need to change the following configuration items:

 

 

 

<Server port=”8005″ shutdown=”SHUTDOWN”>

 

to

 

<Server port=”15005″ shutdown=”SHUTDOWN” address=”127.6.99.1”>

 

 

 

<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ />

 

to

<Connector port=”15009″ protocol=”AJP/1.3″ redirectPort=”8443″ address=”127.6.99.1”/>

 

Menambah user manager di file tomcat-user.xml

<role rolename=”manager-gui”/>

<user username=”tomcat” password=”openshift” roles=”manager-gui”/>

7. Menjalankan Tomcat

$ cd ../bin

$ sh startup.sh && tail -f ../logs/*

Buka alamat Openshift Anda di browser. Voila!