UNPKG

masson

Version:

Module execution engine for cluster deployments.

158 lines (154 loc) 6.43 kB
export default ({options, node, deps}) -> options.fqdn ?= node.fqdn options.ip_address ?= node.ip # Deprecation throw Error 'Option dns_autoforward is deprecated, use dns_auto_forward' if options.dns_autoforward? # Indentites options.manage_users_groups ?= true # Group options.hsqldb ?= {} options.hsqldb.group = name: options.hsqldb.group if typeof options.hsqldb.group is 'string' options.hsqldb.group ?= {} options.hsqldb.group.name ?= 'hsqldb' options.hsqldb.group.system ?= true # User options.hsqldb.user = name: options.hsqldb.user if typeof options.hsqldb.user is 'string' options.hsqldb.user ?= {} options.hsqldb.user.name ?= 'hsqldb' options.hsqldb.user.system ?= true options.hsqldb.user.gid = 'hsqldb' options.hsqldb.user.shell = false options.hsqldb.user.comment ?= 'LDAP User' options.hsqldb.user.home = '/var/lib/hsqldb' # Group options.apache ?= {} options.apache.group = name: options.apache.group if typeof options.apache.group is 'string' options.apache.group ?= {} options.apache.group.name ?= 'apache' options.apache.group.system ?= true # User options.apache.user = name: options.apache.user if typeof options.apache.user is 'string' options.apache.user ?= {} options.apache.user.name ?= 'apache' options.apache.user.system ?= true options.apache.user.gid = 'apache' options.apache.user.shell = false options.apache.user.comment ?= 'apache User' options.apache.user.home = '/usr/share/httpd' # Group options.memcached ?= {} options.memcached.group = name: options.memcached.group if typeof options.memcached.group is 'string' options.memcached.group ?= {} options.memcached.group.name ?= 'memcached' options.memcached.group.system ?= true # User options.memcached.user = name: options.memcached.user if typeof options.memcached.user is 'string' options.memcached.user ?= {} options.memcached.user.name ?= 'memcached' options.memcached.user.system ?= true options.memcached.user.gid = 'memcached' options.memcached.user.shell = false options.memcached.user.comment ?= 'memcached User' options.memcached.user.home = '/run/memcached' # Group options.ods ?= {} options.ods.group = name: options.ods.group if typeof options.ods.group is 'string' options.ods.group ?= {} options.ods.group.name ?= 'ods' options.ods.group.system ?= true # User options.ods.user = name: options.ods.user if typeof options.ods.user is 'string' options.ods.user ?= {} options.ods.user.name ?= 'ods' options.ods.user.system ?= true options.ods.user.gid = 'ods' options.ods.user.shell = false options.ods.user.comment ?= 'ods User' options.ods.user.home = '/var/lib/softhsm' # Group options.tomcat ?= {} options.tomcat.group = name: options.tomcat.group if typeof options.tomcat.group is 'string' options.tomcat.group ?= {} options.tomcat.group.name ?= 'tomcat' options.tomcat.group.system ?= true # User options.tomcat.user = name: options.tomcat.user if typeof options.tomcat.user is 'string' options.tomcat.user ?= {} options.tomcat.user.name ?= 'tomcat' options.tomcat.user.system ?= true options.tomcat.user.gid = 'tomcat' options.tomcat.user.shell = false options.tomcat.user.comment ?= 'tomcat User' options.tomcat.user.home = '/usr/share/tomcat' # Group options.pkiuser ?= {} options.pkiuser.group = name: options.pkiuser.group if typeof options.pkiuser.group is 'string' options.pkiuser.group ?= {} options.pkiuser.group.name ?= 'pkiuser' options.pkiuser.group.system ?= true # User options.pkiuser.user = name: options.pkiuser.user if typeof options.pkiuser.user is 'string' options.pkiuser.user ?= {} options.pkiuser.user.name ?= 'pkiuser' options.pkiuser.user.system ?= true options.pkiuser.user.gid = 'pkiuser' options.pkiuser.user.shell = false options.pkiuser.user.comment ?= 'pkiuser User' options.pkiuser.user.home = '/usr/share/pki' # Group options.dirsrv ?= {} options.dirsrv.group = name: options.dirsrv.group if typeof options.dirsrv.group is 'string' options.dirsrv.group ?= {} options.dirsrv.group.name ?= 'dirsrv' options.dirsrv.group.system ?= true # User options.dirsrv.user = name: options.dirsrv.user if typeof options.dirsrv.user is 'string' options.dirsrv.user ?= {} options.dirsrv.user.name ?= 'dirsrv' options.dirsrv.user.system ?= true options.dirsrv.user.gid = 'dirsrv' options.dirsrv.user.shell = false options.dirsrv.user.comment ?= 'dirsrv User' options.dirsrv.user.home = '/usr/share/dirsrv' # Configuration options.iptables ?= deps.iptables and deps.iptables.options.action is 'start' options.conf_dir ?= '/etc/freeipa/conf' # Prepare configuration for "kdc.conf" throw Error 'Required Manager Password "manager_password"' unless options.manager_password? throw Error '"manager_password" should be 8 characters long' unless options.manager_password.length > 7 throw Error 'Required Admin Password "admin_password"' unless options.admin_password? throw Error '"admin_password" should be 8 characters long' unless options.admin_password.length > 7 # Modules # DNS options.dns_enabled ?= true options.dns ?= {} if options.dns_enabled throw Error 'Missing domain name "domain"' unless options.domain? throw Error 'Missing dns manager email "dns_email_manager"' unless options.dns_email_manager? options.dns_auto_reverse ?= true options.dns_auto_forward ?= false options.dns_forwarder ?= [] options.dns_forwarder = [options.dns_forwarder] unless Array.isArray options.dns_forwarder # NTP options.ntp_enabled ?= true # KERBEROS options.realm_name ?= options.domain.toUpperCase() throw Error 'Missing realm name "realm_name"' unless options.realm_name? # SSL options.ssl_enabled ?= true if options.ssl_enabled if options.external_ca options.ca_subject ?= "CN=Certificate Authority,O=#{option.realm_name}" else throw Error 'SSL/TLS mode requires "ssl_cert_file"' unless options.ssl_cert_file throw Error 'SSL/TLS mode requires "ssl_key_file"' unless options.ssl_key_file options.ssl_key_local ?= true options.ssl_ca_cert_local ?= true # Client Admin Operation options.admin ?= {} options.admin[options.realm_name] ?= realm: options.realm_name kadmin_principal: "admin@#{options.realm_name}" kadmin_password: options.admin_password # Wait options.wait = {}