Project

General

Profile

Download (2.75 KB) Statistics
| Branch: | Tag: | Revision:
#!/usr/bin/env ruby
require 'rubygems'
require 'highline/import'
require 'yaml'
require 'kafo'

# where to find answer file
CONFIG_FILE = "config/foreman-installer.yaml"

# helpers
def module_enabled?(name)
mod = @result.module(name)
return false if mod.nil?
mod.enabled?
end

def get_param(mod, name)
@result.param(mod, name).value
end

# functions specific to foreman installer
Kafo::KafoConfigure.app_option '--reset-foreman-db', :flag, 'Drop foreman database first? You will lose all data!', :default => false

Kafo::KafoConfigure.hooking.register_pre(:reset_db) do |kafo|
if kafo.config.app[:reset_foreman_db] && !kafo.config.app[:noop]
`which foreman-rake > /dev/null 2>&1`
if $?.success?
Kafo::KafoConfigure.logger.info 'Dropping database!'
output = `foreman-rake db:drop 2>&1`
Kafo::KafoConfigure.logger.debug output.to_s
unless $?.success?
Kafo::KafoConfigure.logger.warn "Unable to drop DB, ignoring since it's not fatal, output was: '#{output}''"
end
else
Kafo::KafoConfigure.logger.warn 'Foreman not installed yet, can not drop database!'
end
end
end

# Run the install
@result = Kafo::KafoConfigure.run
exit 0 if @result.nil? # --help invocation

# Setup colors
colors = HighLine::ColorScheme.new do |cs|
cs[:info] = [:bold, :cyan, :on_black]
cs[:bad] = [:bold, :red, :on_black]
cs[:good] = [:bold, :green, :on_black]
end

nocolors = HighLine::ColorScheme.new do |cs|
colors.keys.each { |k| cs[k.to_sym] = [] }
end

HighLine.color_scheme = Kafo::KafoConfigure.config.app[:colors] ? colors : nocolors

# Puppet status codes say 0 for unchanged, 2 for changed succesfully
if [0,2].include? @result.exit_code
say " <%= color('Success!', :good) %>"

# Foreman UI?
if module_enabled? 'foreman'
say " * <%= color('Foreman', :info) %> is running at <%= color('#{get_param('foreman','foreman_url')}', :info) %>"
say " Default credentials are '<%= color('admin:changeme', :info) %>'" if get_param('foreman','authentication') == true
end

# Proxy?
if module_enabled? 'foreman_proxy'
say " * <%= color('Foreman Proxy', :info) %> is running at <%= color('#{get_param('foreman_proxy','registered_proxy_url')}', :info) %>"
end

# Puppetmaster?
if ( module_enabled?('puppet') && ( get_param('puppet','server') != false ) )
say " * <%= color('Puppetmaster', :info) %> is running at <%= color('port #{get_param('puppet','server_port')}', :info) %>"
end
exit_code = 0
else
say " <%= color('Something went wrong!', :bad) %> Check the log for ERROR-level output"
exit_code = @result.exit_code
end

# This is always useful, success or fail
log = @result.config.app[:log_dir] + '/' + @result.config.app[:log_name]
say " The full log is at <%= color('#{log}', :info) %>"

exit exit_code
    (1-1/1)