Setting up OpenShift Origin Virtual Machine on Windows 7


Introduction

This article describes the process of setting up a VM running OpenShift development environment inside VirtualBox on Windows 7. The article was inspired by the “OpenShift Origin Virtual Machine Deployment Guide“, it borrows some information from the guide but concentrates on Windows 7 as a host and development machine and addresses various issues that a Windows developer may come across (and not covered by the original guide).

I am going to dwell on the following aspects:

  • Setting up the Virtual Machine
  • Network configuration
  • Accessing the Virtual Machine
  • Accessing deployed application from the Windows host
  • Using RHC tools with multiple servers
  • Port forwarding
  • Accessing deployed databases from host machine

Setting up the Virtual Machine

Download the VM from the OpenShift “mirrors” site (about 1.3 GB):

https://mirror.openshift.com/pub/origin-server/release/2/images/openshift-origin.zip 

Unpack the package with your favorite .zip manager. This can take quite a while. The result will be the creation of four additional files (file sizes may vary):

origin_01_package_content

Create New VM

You are going to create a new Linux machine with Fedora (64 bit)

origin_02_vm_new

Set VM Memory Size

Set the memory size to something reasonably large. 1 GB should be a good start. Later on you can give your machine more memory depending on cartridges used.

origin_03_vm_ram

Select VM “Hard Drive” Image

For this step you will need to select the virtual disk image (you’ve unpacked earlier) which contains the OpenShift Origin virtual machine.

origin_04_vm_vmdk

Network configuration

By default VirtualBox uses Network Address Translation (NAT) to create a virtual network interface for your virtual machines. NAT will not let you connect back into your virtual machine. You need to change the network adapter configuration to use Bridged networking. Then you virtual machine will get an IP address from your DHCP server, and you will be able to use that address to browse or log in.

origin_05_vm_network

Each system may have different names for the network adapter. Find yours in the pulldown menu labeled “Name”. Select it and press the OK button. You’ll return to the main display ready to start the VM.

When the VM has completed booting VirtualBox will display the access information for the VM and prompt you to start a root console.

origin_06_vm_running

Please remember the IP address VM has obtained (i.e. 192.168.1.103) as you will need it in order to access OpenShift Console. More details on IP/URL address configuration and will be given later in this article.

Accessing the Virtual Machine

When VM is running it is accessible from the host machine either using OpenShift console via a web browser or on a command line interface using SSH. The web interface is useful for easily managing applications while the CLI allows developers to write and test applications and components. The web browser will also be used to verify the test applications during development.

User Accounts

There are two user accounts which are used to access the OpenShift Origin VM. Both are displayed on the VM console when it boots as shown in the examples above.

The first one is the OpenShift service account. This is used to access the web console and run the rhc CLI commands as a developer.

  • Username: admin
  • Password: admin

The second account is the developer account. This is a UNIX account which is used to log into the OpenShift VM via SSH. It provides a work space for exploring the CLI and development environment of OpenShift Origin.

  • Username:  openshift
  • Password: openshift

If you try logging in with one or those and it fails, try using the other.

Using a browser to view the OpenShift Console

When the VM is running you can use the OpenShift console to create and manage applications in the VM. Navigate your browser to the IP address the VM machine has automatically received during boot (i.e. http://192.168.1.103). Enter the username and password (admin/admin) when prompted.

origin_07_web_console

Using SSH to log into the VM

Most of the OpenShift workflow for application development is done from the command line. The OpenShift VM has account created and populated with the tools needed to create, manage and develop apps for demonstration purposes.

Developers may reach the command line on the VM using SSH from the host.  The easiest way of using SSH on Windows machines is by Git for Windows bash.

origin_08_ssh

At this point you are going to use IP address of the Virtual Machine for SSH access. When prompted for the password use ‘openshift’ one.

Accessing deployed application from the Windows host

For demonstration purposes I have created a basic ‘Node.js 0.10’ application named ‘Test01‘ having namespace ‘dvuyka‘ like shown below

origin_09_nodejs_app

When application is created you will see an entry within ‘My Applications’ area with a URL having the following format:

http://<APPLICATION>-<NAMESPACE>.openshift.local

However by default on Windows hosts you won’t be able accessing your application with the browser because of DNS resolving. The easiest and quickest way solving this issue would be changing the hosts file and providing required addresses explicitly. This will allow saving time on DNS server configuration especially when working offline or with isolated environment.

Setting up hosts

For more information on modifying ‘hosts’ file on Windows please refer to the following article:

How do I modify my hots file?

You will need at least 3 entries to be explicitly declared, 2 for OpenShift environment and 1 for your application:

192.168.1.103 openshift.local
192.168.1.103 broker.openshift.local
192.168.1.103 test01-dvuyka.openshift.local

Typically you will need mapping every application endpoint to be accessible. There is no need rebooting Windows after making change to ‘hosts’ file.

Now you should be able accessing OpenShift Console via https://openshift.local address

origin_10_local_address

Clicking the application URL will now allow you accessing deployed application from within your Windows host browser:

origin_11_application

Using SSH to log into VM

At this point it should be possible using broker.openshift.local address with SSH connections:

origin_12_broker_ssh

Configuring static IP address for VM (optional)

The only problem with ‘hosts’ file approach mentioned above is DHCP configuration. After reboot the OpenShift Origin Virtual Machine make obtain different IP address from DHCP server and all host mappings won’t be working. In order to solve this issue developers may want providing a static for VM to ensure IP address is always the same.

I will be using ‘nano’ editor for the sake of simplicity

sudo yum install nano
nano /etc/sysconfig/network-scripts/ifcfg-eth0

You will need to change the BOOTPROTO value from dhcp to static and providing explicit values for IPADDR, NETMASK, NETWORK and GATEWAY depending on your network/router configurations

origin_13_static_ip

As soon as you have finished editing the file press “Ctrl+O, Enter” to save the file and “Ctrl+X” to exit. Server needs to be rebooted after that.

sudo reboot

Now as per configuration above my VM will always be starting with 192.168.1.103 address.

Using RHC tools with multiple servers

It is possible switching between different servers with RHC tools. Having multiple server configurations allow working with both local and remote environments. In order to create new configuration for your OpenShift Origin VM you will need executing the following commands with Windows command prompt:

SET OPENSHIFT_CONFIG=origin
rhc setup --server openshift.local

This will RHC tools creating additional configuration called “origin” pointing to your “openshift.local” VM

In order to use “origin” server configuration the “OPENSHIFT_CONFIG” environment variable should be defined before invoking RHC tools next time:

SET OPENSHIFT_CONFIG=origin
rhc <command>

Configuring RHC tools with OpenShift Origin VM will allow using Port Forwarding and accessing your applications and databases from within Windows host.

Port Forwarding

With OpenShift port forwarding, developers are now able to connect to their remote services while using local client tools without having to worry about the details of configuring complicated firewall rules.

For more details on port forwarding feature please refer to the following article:

Getting Started with Port Forwarding on OpenShift

Accessing deployed application from Windows host

With Windows (or Visual Studio) command prompt you can setup port forwarding to your VM

SET OPENSHIFT_CONFIG=origin
rhc port-forward -a test01

origin_14_port_forward

While command prompt is running the deployed application can be accessed via local loopback address: http://127.0.0.1:8080

origin_15_port_forward_host

Accessing deployed database from Windows host (MongoDB)

When port forwarding is started RHC tools automatically detect all ports to be wired. That applies to database cartridges as well. Examples below will be based on ‘MongoDB’ cartridge.

Add database cartridge

In the OpenShift web console navigate to your ‘Test01’ application and add ‘MongoDB NoSQL Database 2.2’ cartridge

origin_16_mongo_add

origin_17_mongo_settings

Don’t forget to write down credentials somewhere as OpenShift Console does not expose them after cartridge is created.

You can get more details on OpenShift support for MongoDB here:

MongoDB on OpenShift

Start port forwarding

Once database cartridge is added you can start port forwarding with Windows or Visual Studio command prompt

SET OPENSHIFT_CONFIG=origin
rhc port-forward -a test01

You should see multiple ports now:

origin_17_port_forward_mongo

Connect to database

In order to connect to Mongo database I will be using Robomongo for Windows.

origin_18_robomongo_1

For the authentication section please use credentials you got after having created MongoDB cartridge

origin_19_robomongo_2

It is now possible working with your MongoDB database directly from Windows host

origin_20_robomongo_3

Using Git publishing with VM

There are no specific steps required to enable Git support for OpenShift Origin VM once the Windows environment is configured.

origin_21_git

Please refer to the following articles if you want getting more information about Git in the scope of OpenShift

Deploying and building your applications
Accessing your code for your OpenShift Application via Windows Explorer using TortoiseGit
Authentication and SSH Keys

Summary

The steps above allow a developer to download and run a self-contained OpenShift service for development or demonstration purposes. The service runs in a VirtualBox virtual machine and is accessible to the user on the host machine running Windows 7 and is accessible to the developer by means of VirtualBox graphical console, by SSH or with a local web browser to access the OpenShift console and/or any applications that are created within the OpenShift service.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s