Sunday, September 28, 2014

Setting up Hanlon Development Environment (Update)

This is an update to my previous post Setting up Hanlon Development Environment. This update reflects the latest script changes incorporated

Pre-requisites

Operating System: Support any standard Linux distribution (Ubuntu LTS 14.04)
Database: MongoDB
Web Server: Trinidad
Dev Tools: JRuby development enviroment with necessary gems
Others: git, make, openjdk7, etc.,

Setting up

Update your linux to get all the latest distributions

apt-get install updates

1. Install pre-requisites

apt-get install -y git make mongodb openjdk-7-jre-headless g++ curl

 

2. Install ruby environment with your preferred Ruby environment manager like rvm or rbenv (I prefer using rvm) and setup jruby as your default environment

\curl -sSL https://get.rvm.io | bash -s stable --ruby=jruby
source /usr/local/rvm/scripts/rvm
rvm use jruby –default

 

3. Setup Hanlon working directory (My preferred location ~/wspace/hanlon) and clone hanon git repository

cd
mkdir wspace
git clone
https://github.com/csc/Hanlon.git hanlon

 

4. Install / update ruby gems

cd hanlon
bundle install
gem install bundler trinidad

Hanlon now comes with scripted support both for trinidad and puma. (I prefer running trinidad)

 

5. Run hanlon initialization script

./hanlon_init.rb

This script creates config file and necessary directory structure to run hanlon.

 

6. Edit hanlon client and server configuration files

Now hanlon client and server configuration files are segregated to reflect right configuration parameter. Files created by hanlon_init (samples included below) are suitable for most of the practical purpose. Do edit them (just in case) before starting the server

~/wspace/hanlon/cli/config/hanlon_client.config

# This file is the main configuration for ProjectHanlon
#
# -- this was system generated --
#
#
--- !ruby/object:ProjectHanlon::Config::Client
noun: config
admin_port: 8025
api_port: 8026
api_version: v1
base_path: /hanlon/api
hanlon_log_level: Logger::ERROR
hanlon_server: 192.168.190.11
http_timeout: 60

~/wspace/hanlon/cli/config/hanlon_server.config

#
# This file is the main configuration for ProjectHanlon
#
# -- this was system generated --
#
#
--- !ruby/object:ProjectHanlon::Config::Server
noun: config
admin_port: 8025
api_port: 8026
api_version: v1
base_path: /hanlon/api
daemon_min_cycle_time: 30
force_mk_uuid: ''
hanlon_log_level: Logger::ERROR
hanlon_server: 192.168.190.11
hnl_mk_boot_debug_level: Logger::ERROR
hnl_mk_boot_kernel_args: ''
image_path: /home/user/wspace/hanlon/image
ipmi_password: ''
ipmi_username: ''
ipmi_utility: ''
mk_checkin_interval: 60
mk_checkin_skew: 5
mk_gem_mirror:
http://localhost:2158/gem-mirror
mk_gemlist_uri: /gems/gem.list
mk_kmod_install_list_uri: /kmod-install-list
mk_log_level: Logger::ERROR
mk_tce_install_list_uri: /tce-install-list
mk_tce_mirror:
http://localhost:2157/tinycorelinux
node_expire_timeout: 300
persist_dbname: project_hanlon
persist_host: 127.0.0.1
persist_mode: :mongo
persist_password: ''
persist_port: 27017
persist_timeout: 10
persist_username: ''
register_timeout: 120
sui_allow_access: 'true'
sui_mount_path: /docs

 

7. Run trinidad server

cd web
./run-trinidad.sh