OpenNebula Front Install
Install Nebula front end on the specified hosts. http://docs.opennebula.org/5.2/deployment/opennebula_installation/frontend_installation.html
module.exports = header: 'OpenNebula Front Install', handler: (options) ->
Install
@call header: 'Packages', ->
@service
header: 'opennebula-ruby'
name: 'opennebula-ruby'
@service
header: 'opennebula-gate'
name: 'opennebula-gate'
@service
header: 'opennebula-flow'
name: 'opennebula-flow'
@service
header: 'opennebula server'
name: 'opennebula-server'
srv_name: 'opennebula'
startup: true
@service
header: 'opennebula sunstone'
name: 'opennebula-sunstone'
startup: true
Ruby Runtime installation
@service
header: 'g++'
name: 'gcc-c++'
@service
header: 'gcc'
name: 'gcc'
@service
header: 'curl-devel'
name: 'curl-devel'
@service
header: 'mysql-devell'
name: 'mysql-devel'
@service
header: 'openssl-devel'
name: 'openssl-devel'
@service
header: 'ruby-devel'
name: 'ruby-devel'
@service
header: 'make'
name: 'make'
@service
header: 'rubygems'
name: 'rubygems'
@call header: 'Gems install', ->
@tools.rubygems.install
if: options.cache_dir
source: path.resolve options.cache_dir, 'vendor', 'cache', "*.gem"
@tools.rubygems.install
unless: options.cache_dir
gems:
'rack': '< 2.0.0'
'sinatra': '< 2.0.0'
'thin': null
'memcache-client': null
'zendesk_api': '< 1.14.0'
'builder': null
Mysql
TODO http://docs.opennebula.org/5.2/deployment/opennebula_installation/mysql_setup.html#mysql-setup
Set password
@call header: 'Password', ->
@file
content: "oneadmin:#{options.password}"
target: "/var/lib/one/.one/one_auth"
eof: true
Add nodes key to known_hosts
@call header: 'Add node host to known_hosts', ->
@system.execute
if: options.nebula_node_hosts && options.nebula_node_hosts.length > 0
cmd: "su oneadmin -c 'ssh-keyscan #{options.nebula_node_hosts.join(' ')} > /var/lib/one/.ssh/known_hosts'"
@system.execute
cmd: "su oneadmin -c 'ssh-keyscan $HOSTNAME >> /var/lib/one/.ssh/known_hosts'"
@system.chmod
target: "/var/lib/one/.ssh/known_hosts"
mode: "0600"
@system.chown
target: "/var/lib/one/.ssh/known_hosts"
uid: "oneadmin"
gid: "oneadmin"
Start services
@call header: 'Starting OpenNebula Front-End', ->
@service.start
name: 'opennebula'
@service.start
name: 'opennebula-sunstone'
Add Nodes
@call header: 'Add node host to opennebula', ->
for node_host in options.nebula_node_hosts
@system.execute
cmd: "su oneadmin -c 'onehost create #{node_host} -i kvm -v kvm'"
code_skipped: 255
Dependencies
path = require 'path'
fs = require 'ssh2-fs'