Menu

Hortonworks Smartsense Server Configuration

Show Source Code
module.exports = (service) ->
  service = migration.call @, service, 'ryba/smartsense/server', ['ryba', 'smartsense', 'server'], require('nikita/lib/misc').merge require('.').use,
    java: key: ['java']
    iptables: key: ['iptables']
    ssl: key: ['ssl']
  @config.ryba ?= {}
  @config.ryba.smartsense ?= {}
  options = @config.ryba.smartsense.server = service.options

Identities

Show Source Code
  # Group
  options.group ?= {}
  options.group = name: options.group if typeof options.group is 'string'
  options.group.name ?= 'smartsense'
  options.group.system ?= true
  # User & Group
  options.user ?= {}
  options.user = name: options.user if typeof options.user is 'string'
  options.user.name ?= 'smartsense'
  options.user.gid ?= options.group.name
  options.user.system ?= true
  options.user.comment ?= 'Hortonworks SmartSense User'
  options.user.home ?= '/var/lib/smartsense'
  options.user.groups ?= 'hadoop'

Environment

Show Source Code
  options.conf_dir ?= '/etc/hst/conf'
  options.tmp_dir ?= '/tmp'
  options.pid_dir ?= '/var/run/hst'
  options.log_dir ?= '/var/log/hst'
  options.ssl_pass ?= 'DEV'

Source

Note: Can not specify default source, as the rpm need to be downloaded by administrator from https://support.hortonworks.com site

Show Source Code
  options.source ?= null

SSL

Show Source Code
  options.ssl = merge {}, service.use.ssl?.options, options.ssl
  options.ssl.enabled = !!service.use.ssl
  if options.ssl.enabled
    throw Error "Required Option: ssl.cert" if  not options.ssl.cert
    throw Error "Required Option: ssl.key" if not options.ssl.key
    throw Error "Required Option: ssl.cacert" if not options.ssl.cacert

Configuration

Show Source Code
  # Misc
  options.fqdn ?= service.node.fqdn
  options.hostname = service.node.hostname
  options.iptables ?= service.use.iptables and service.use.iptables.options.action is 'start'
  options.clean_logs ?= false
  options.ini ?= {}
  options.ini['server'] ?= {}
  options.ini['server']['port'] ?= 9000
  options.ini['server']['ssl_enabled'] ?= true # for now does not work with ssl_enabled option
  options.ini['server']['tmp.dir'] ?= '/var/lib/smartsense/hst-server/tmp'
  options.ini['server']['storage.dir'] ?= '/var/lib/smartsense/hst-server/data'
  options.ini['server']['run.as.user'] ?= options.user.name
  options.ini['client'] ?= {}
  options.ini['client']['password_less_ssh.enabled'] ?= false
  options.ini['cluster'] ?= {}
  options.ini['cluster']['name'] ?= 'ryba-cluster'
  options.ini['cluster']['secured'] ?= if @config.ryba.security is 'kerberos' then true else false
  options.ini['customer'] ?= {}
  options.ini['customer']['account.name'] ?= 'ryba'
  options.ini['customer']['notification.email'] ?= 'ryba@ryba.io'
  options.ini['customer']['options.id'] ?= 'A-00000000-C-00000000'
  options.ini['java'] ?= {}
  options.ini['java']['home'] ?= service.use.java.java_home
  options.ini['security'] ?= {}
  options.ini['security']['options.keys_dir'] ?= "#{options.user.home}/hst-server/keys"
  options.ini['security']['options.one_way_ssl.port'] ?= 9440
  options.ini['security']['options.two_way_ssl.port'] ?= 9441
  options.ini['security']['options.keys_dir'] ?= "#{options.user.home}/hst-server/keys"
  options.ini['security']['anonymization.shared.key'] ?= "#{options.user.home}/hst-common/anonymization/keys/shared_anonymization.key"
  options.ini['security']['anonymization.private.key'] ?= "#{options.user.home}/hst-common/anonymization/keys/private_anonymization.key"
  options.ini['security']['encryption.public.key'] ?= "#{options.user.home}/hst-common/encryption/keys/public.key"
  options.ini['security']['encryption.file.size.method'] ?= 'NO_SIZE'
  options.ini['security']['encryption.file.size.buffer'] ?= 1536

Wait

Show Source Code
  options.wait_local =
    host: service.node.fqdn
    port: options.ini['server']['port']
  options.wait_local_ssl_one_way =
    host: service.node.fqdn
    port: options.ini['security']['options.one_way_ssl.port']
  options.wait_local_ssl_two_way =
    host: service.node.fqdn
    port: options.ini['security']['options.two_way_ssl.port']

Dependencies

Show Source Code
migration = require 'masson/lib/migration'
{merge} = require '@nikitajs/core/lib/misc'