• Sumo

OpenShift merupakan free cloud computing platform dari Red Hat (PaaS – Platform as a Service). OpenShift bisa digunakan untuk nge-build, testing applications tanpa harus menginstall server atau aplikasi server pendukungnya, karena semuanya sudah di take-over oleh OpenShift. Developer hanya fokus pada pengembangan aplikasi yang akan dibangun (design dan coding dari applikasi).

Untuk bisa menggunakan OpenShift, harus register terlebih dahulu, buka website: https://openshift.redhat.com/app/account/new atau bisa menggunakan account dari redhat.com.
Setelah selesai register, untuk login ke OpenShift console bisa menggunakan link: https://openshift.redhat.com/app/login.

Setelah memiliki account di OpenShift, yang harus dilakukan pertama kalinya adalah:

Install tools untuk client (install rhc di *nix atau windows (windows menggunakan cygwin))

Jika ingin menggunakan GUI, maka login ke https://openshift.redhat.com/app/login untuk masuk ke OpenShift console, tampilan OpenShift management console terlihat seperti gambar dibawah

OpenShift Management Console

Langkah dibawah akan menjelaskan cara menggunakan client tools rhc di Linux. Untuk bisa menggunakan rhc harus terlebih dahulu menginstall package rubygems di distro Linux yang digunakan. Proses installasi dari rhc untuk distro berbasis RPM (Fedora/Red Hat)

  • Download repo file dari openshift

[anif@anif ~]$ wget -c https://openshift.redhat.com/app/repo/openshift.repo

[anif@anif ~]$ sudo mv openshift.repo /etc/yum.repos.d/

  • Install package rhc menggunakan yum

[anif@anif ~]$ sudo yum install rhc
[anif@anif ~]$ rhc –help

Usage: rhc (<resource> | –help) [<command>] [<args>]
Command line tool for performing operations related to your rhcloud account.

List of resources
domain             Manage the namespace for the registered rhcloud user.
app                Manage applications within the rhcloud account.
sshkey             Manage multiple keys for the registered rhcloud user.
port-forward       Forward remote ports to the workstation

See ‘rhc <resource> –help’ for more applicable commands and argumments on a specific resource.

 

Create Domain Name

Untuk meng-create domain name menggunakan rhc command

[anif@anif ~]$ rhc domain create -n username_anda -l email_anda@xxx.xxx
Password:
Generating OpenShift ssh key to /home/username_anda/.ssh/libra_id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):  –> input passphrase yang diinginkan
Enter same passphrase again: –> input passphrase yang diinginkan
Your identification has been saved in /home/username_anda/.ssh/libra_id_rsa.
Your public key has been saved in /home/username_anda/.ssh/libra_id_rsa.pub.
The key fingerprint is:
97:cf:6b:0a:30:f4:1a:re:15:81:x3:f6:ef:a3:e4:47 username_anda@host.domain_anda.xx
The key’s randomart image is:
+–[ RSA 2048]—-+
|   . .o.         |
|  o o  .         |
| . . .o          |
|    .o .   .     |
|    o.+ S o      |
|   o oEo . o     |
|    +o  .   o    |
|   o  +  .  ..   |
|    oo .  .o.    |
+—————–+
Checking ~/.ssh/config
Could not find /home/username_anda/.ssh/config.  This is ok, continuing
Adding rhcloud.com to ~/.ssh/config
Creation successful

You may now create an application.

Setelah proses create domain selesai, periksa domain yang telah dibuat menggunakan command:

[anif@anif ~]$ rhc domain status -l email_anda@xxx.xxx
Password:
Analyzing system
..Enter passphrase:
…Could not open a connection to your authentication agent.
F.
=================================================
||  Your system did not pass all of the tests  ||
=================================================
1) Either ssh-agent is not running or you do not have any keys loaded.

Seperti di informasikan dari hasil rhc domain status diatas, client yang digunakan untuk koneksi ke openshift tidak lulus semua testing item, dimana detail item yang gagal di informasikan di akhir baris “Either ssh-agent is not running or you do not have any keys loaded.”.
Untuk memperbaiki error yang muncul, dari terminal running command:

[anif@anif ~]$ eval $(ssh-agent)
Agent pid 3811
[anif@anif ~]$ ssh-add .ssh/libra_id_rsa
Enter passphrase for .ssh/libra_id_rsa: –> input passphrase yang di isi waktu create domain
Identity added: .ssh/libra_id_rsa (.ssh/libra_id_rsa)
[anif@anif ~]$ rhc domain status -l email_anda@xxx.xxx
Password:
Analyzing system
..Enter passphrase:
…..
=========================================================
||  Congratulations, your system has passed all tests  ||
=========================================================

Setelah prosess domain dan system verification testing OK, yang perlu dicreate adalah applikasi yang akan digunakan di openshift. Sebagai contoh disini akan menggunakan applikasi PHP 5.3.

[anif@anif ~]$ rhc app create -a testing -t php-5.3
Password:
Creating application: testing in domain_anda
Now your new domain name is being propagated worldwide (this might take a minute)…
retry # 4 – Waiting for DNS: testing-domain_anda.rhcloud.com
Warning: Permanently added ‘testing-domain_anda.rhcloud.com,23.22.23.80’ (RSA) to the list of known hosts.
Confirming application ‘testing’ is available:  Success!

testing published:  http://testing-domain_anda.rhcloud.com/
git url:  ssh://d6321a174823123e8ca49c0a90a0f1d6@testing-domain_anda.rhcloud.com/~/git/testing.git/
Successfully created application: testing

Command diatas akan membuat local directory “testing” di local computer yang digunakan (di directory aktif yang digunakan ketika menjalankan command rhc app create, sebagai contoh pada command diatas di ~ (home directory).
Sekarang kita akan coba untuk membuat script php sederhana

[anif@anif ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  testing  Videos

[anif@anif ~]$ cd testing/

[anif@anif testing]$ ls -la
total 32
drwxr-xr-x.  7 anif anif 4096 May 27 22:20 .
drwx——. 29 anif anif 4096 Jun 17 11:19 ..
-rw-rw-r–.  1 anif anif    0 May 27 22:20 deplist.txt
drwxrwxr-x.  8 anif anif 4096 May 27 22:57 .git
drwxrwxr-x.  2 anif anif 4096 May 27 22:20 libs
drwxrwxr-x.  2 anif anif 4096 May 27 22:20 misc
drwxrwxr-x.  5 anif anif 4096 May 27 22:20 .openshift
drwxrwxr-x.  2 anif anif 4096 May 27 22:56 php
-rw-rw-r–.  1 anif anif 2264 May 27 22:20 README

[anif@anif php]$ ls php/
health_check.php  index.php

[anif@anif php]$ rm php/index.php

[anif@anif php]$ vi php/index.php

buat script sederhana untuk index.php, sebagai contoh:

<!DOCTYPE html>
<html lang=”en”>
  <head>
    <meta charset=”utf-8″>
    <title>Simple php script in openshift</title>
  </head>
  <body>
    <p>Today&rsquo;s is (according to openshift server time zone):
      <?php

      echo date(‘l, F jS Y.’);

      ?>
    </p>
  </body>
</html>

simpan script php diatas, selanjutnya push script index.php ke openshift server menggunakan git. Pastikan directory active berada di “nama_aplikasi_yang_dicreate”, sebagai contoh “testing”

[anif@anif ~]$ cd ~/testing/
[anif@anif testing]$ pwd
/home/anif/testing

commit perubahan yang dibuat ke repository menggunakan command

[anif@anif testing]$ git commit -a -m “testing”
[master 7acda4f] testing
Committer: username_anda <username_anda@host.domain_anda.xxx>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

git config –global user.name “Your Name”
git config –global user.email “you@example.com”

If the identity used for this commit is wrong, you can fix it with:

git commit –amend –author=’Your Name <you@example.com>’

1 files changed, 14 insertions(+), 155 deletions(-)
rewrite php/index.php (99%)

langkah terakhir adalah push perubahan tersebut ke openshift server menggunakan command

[anif@anif testing]$ git push
Counting objects: 12, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 985 bytes, done.
Total 9 (delta 3), reused 0 (delta 0)
remote: Stopping application…
remote: Waiting for stop to finish
remote: Done
remote: ~/git/testing.git ~/git/testing.git
remote: ~/git/testing.git
remote: Running .openshift/action_hooks/pre_build
remote: Running .openshift/action_hooks/build
remote: Running .openshift/action_hooks/deploy
remote: Starting application…
remote: Done
remote: Running .openshift/action_hooks/post_deploy
To ssh://d6321a174823123e8ca49c0a90a0f1d6@testing-domain_anda.rhcloud.com/~/git/testing.git/
deefcc1..9a6qebc  master -> master

Untuk melihat hasil dari php script yang dibuat, buka browser (IE, Firefox, Google Chrome, etc) kemudian ketik alamat: http://testing-domain_anda.rhcloud.com/

Untuk mengenal lebih jauh openshift yang diprovide oleh Red Hat bisa mengunjungi openshift guideline di:

Reference: http://docs.redhat.com/docs/en-US/OpenShift/2.0/html/User_Guide/index.html