#!/bin/bash
#
# Author: Jochen Schaefer <jochen.schaefer@suse.com>
#	  Frieder Schmidt <frieder.schmidt@microfocus.com>
#	  Martin Weiss	  <martin.weiss@suse.com>
# 
# copyright (c) Novell Deutschland GmbH, 2001-2016. All rights reserved.
# GNU Public License
#
# CUSTOMER.txt			  			25 Jan 2013
# last update (support for DSfW)                        24 Sep 2019
# last update (new xml structure)                       22 Jul 2020
# last update (extensions for OES2023)			15 Mar 2023


########################################################################
########################################################################
##
## The purpose of this file is to define the configuration information
## that is consistent across *all* servers in *all* environments of the
## customer.
##
## !! IMPORTANT !!
## Do NOT use any special characters, such as (but not limited to) "&",
## "<", or ">" in any variable value since these characters could have
## special meanings in the programming languages used and/or in the
## resulting xml files.
## This could result in unforseable behavior including abortian of the
## installation routine.
##
########################################################################


## Type String
## Description: Customer name; informational only
##
## note: & must be escaped for sed to work as desired
CUSTOMER_NAME="CIF"


## service type  configuration information

## Type Custom
## Description: Colon separated list of xml profiles that define which
##              components need to be configured for a server of a given
##              service type.
##
##              This definition happens in two steps:
##              1. mandatory: select the appropriate xxxxxx_BASE
##              2. optional:  select the additional xml profiles
##                            for OES services

## Base definitions
SLES11_BASE="sles/bootloader.xml:sles/ca_mgm_sles12.xml:sles/general.xml:sles/kdump_sles11.xml:sles/net.xml:sles/system_sles11.xml:sles/scripts-zcm.xml"
SLES12_BASE="sles/bootloader.xml:sles/ca_mgm_sles12.xml:sles/general.xml:sles/kdump.xml:sles/net.xml:sles/system_sles12.xml:sles/scripts-zcm.xml"
SLES15_BASE="sles/bootloader.xml:sles/general.xml:sles/kdump.xml:sles/net.xml:sles/system_sles15.xml:sles/scripts-zcm.xml"

## Service types
OES2018_BRANCH="${SLES12_BASE}:oes/oes_base.xml:oes/nss.xml:oes/afp.xml:oes/cifs.xml:oes/dhcp.xml:oes/dns.xml:oes/iprint.xml"
OES2018_EDIR_IMAN="${SLES12_BASE}:oes/oes_base.xml:oes/imanager.xml"
OES2018_NCS="${SLES12_BASE}:oes/oes_base.xml:oes/nss.xml:oes/afp.xml:oes/cifs.xml:oes/dhcp.xml:oes/dns.xml:oes/iprint.xml"
OES2023_BRANCH="${SLES15_BASE}:oes/oes_base.xml:oes/nss.xml:oes/cifs.xml:oes/dhcp.xml:oes/dns.xml:oes/iprint.xml"
OES2023_EDIR_IMAN="${SLES15_BASE}:oes/oes_base.xml:oes/imanager.xml"
OES2023_EDIR_UMC="${SLES15_BASE}:oes/oes_base.xml:oes/umc.xml"
OES2023_NCS="${SLES15_BASE}:oes/oes_base.xml:oes/nss.xml:oes/cifs.xml:oes/dhcp.xml:oes/dns.xml:oes/iprint.xml"

## DSfW service types
OES2018_DSFW_FRD_ADC="${SLES12_BASE}:oes/oes_base_frd_adc.xml:oes/dns.xml"
OES2018_DSFW_FRD_FDC="${SLES12_BASE}:oes/oes_base_frd_fdc.xml:oes/dns.xml"
OES2023_DSFW_FRD_ADC="${SLES15_BASE}:oes/oes_base_frd_adc.xml:oes/dns.xml"
OES2023_DSFW_FRD_FDC="${SLES15_BASE}:oes/oes_base_frd_fdc.xml:oes/dns.xml"


## infrastructure information

## Type IP
## Description: IP Address of Default Gateway
#GATEWAY=""

## Type IP
## Description: Colon separated list of IP addresses of DNS servers
#NAME_SERVER_LIST=""

## Type Custom
## Description: Colon separated list of DNS suffixes in the order in which
##		they will appear in resolv.conf
## 		The first value will be used for general domain name usage
##		such as in the email address in CA management
#SUFFIX_SEARCH_LIST=""

## Type IP|DNS
## Description: Colon separated list of IP addresses or DNS names of
##		NTP servers
#NTP_SERVER_LIST=""


## OES information

## Type String
## Description: fully distinguished name of the OES Installation user
##		in LDAP syntax
#OES_INSTALL_USER=""

## Type String
## Description: fully distinguished name of the LUM admingroup
##		in LDAP syntax
#LUM_ADMIN_GROUP=""

## Type String
## Description: eDirectory context where the Unix Configuration object
##		is located in LDAP syntax
#UCO_CONTEXT=""

## Type IP|DNS
## Description: Colon separated list of IP addresses or DNS NAMES of LDAP
##		servers for OES.
##		These LDAP servers are configured for eDirectory in random
## 		order with the local LDAP server as first server.
##		For certain OES services (afp, cifs, iprint, lum, netstorage)
##		the local LDAP server is used if it is in the list. Otherwise
##		a random server is picked from this list and configured for
## 		theses services.
##		The remaining servers are configured as alternate LDAP servers
##		for LUM
#LDAP_SERVER_LIST=""

## Type IP
## Description: IP Address of an existing eDirectory server holding a writable
##		replica of the context where the new server will be installed
#REPLICA_SERVER=""


## DHCP information

## Type String
## Description: eDirectory context where the DHCP Group object is located in 
##		LDAP syntax
#DHCP_GROUP_CONTEXT=""

## Type String
## Description: space separated list of interfaces the DHCP server should listen
## 		to i. e. "eth0 eth1"
#DHCP_INTERFACES=""

## Type String
## Description: eDirectory context where the DHCP Locator object is located in
##		LDAP syntax
#DHCP_LOCATOR_CONTEXT=""

## Type String
## Description: name of the OU where the Novell DHCP Server object will be located
##		subordinate to the NCP Server context
##			e.g. "ou=DHCP" will place the object in
##		 	ou=DHCP,ou=servers,ou=services,ou=location,ou...
##
##		if the DHCP Server object shall be placed higher in the tree
##		structure than the NCP Server object the number of levels can be
##		specified using  a ";" as separator
##			e.g. ou="DHCP;1" will place the DHCP Server object in
##			an OU named DHCP in parallel to the server context, i. e.
##			ou=DHCP,ou=services,ou=location,...
#DHCP_SERVER_CTX="ou=dhcp;1"


## DNS information

## Type String
## Description: eDirectory context where the Novell DNS Services Group object is
##              located in LDAP syntax
#DNS_GROUP_CONTEXT=""

## Type String
## Description: eDirectory context where the Novell DNS Services Locator object is
##              located in LDAP syntax
#DNS_LOCATOR_CONTEXT=""

## Type String
## Description: eDirectory context where the Novell DNS Services Root Server Info
##              is located in LDAP syntax
#DNS_ROOTSERVERINFO_CONTEXT=""

## Type String
## Description: name of the OU where the Novell DNS Server object will be located
##		subordinate to the NCP Server context
##			e.g. "ou=DNS" will place the object in
##		 	ou=DNS,ou=servers,ou=services,ou=location,ou...
##
##		if the DNS Server object shall be placed higher in the tree
##		structure than the NCP Server object the number of levels can be
##		specified using  a ";" as separator
##			e.g. ou="DNS;1" will place the DHCP Server object in
##			an OU named DNS in parallel to the server context, i. e.
##			ou=DNS,ou=services,ou=location,...
##
##		!!! future enhancement not usable at the moment !!!
##
##		     !!! Requires changes in YaST/OES code !!!
#DNS_SERVER_CTX=""


## DSfW information

## Type String
## Description: name of the partitioned eDirectory container that the DSfW domain
##              is being mapped to in LDAP syntax
##              This is effective only when the xad_convert_existing_container tag
##              is set to 'yes'
#DSFW_CONTEXT="o=..."

## Type List    (no|yes)
## Description: determines whether or not the DSfW domain controller will be
##              configured as DNS server
##
##              Note: the current DSfW provisioning wizard depends on the DSfW DCs
##                    to be configured as DNS servers - do not change this option!
##              default: yes; no in the future
#DSFW_CONFIG_DC_DNS="yes"

## Type List    (no|yes)
## Description: determines whether or not the DSfW domain controller will be
##              configured as WINS server
##              default: no
#DSFW_CONFIG_DC_WINS="no"

## Type String
## Description: NetBIOS name of the DSfW domain
#DSFW_DOMAIN_NETBIOS=""

## Type IP
## Description: IP Address of an existing DNS server for the DNS domain used by
##              the DSfW domain
#DSFW_EXISTING_DNS_IP=""

## Type String
## Description: forest root domain (FRD) name of the DSfW forest
#DSFW_ROOT_DOMAIN=""

## Type String
## Description: fully distinguished name of the FRD Administrator user
##              in NDAP syntax
#DSFW_ROOT_DOMAIN_ADMIN="cn=Administrator.cn=Users.dc=..."

## Type IP
## Description: IP Address of the PDC for the DSfW forest root domain
#DSFW_ROOT_PDC_IP=""


## LDAP information

## Type String
## Description: fully distinguished name of the eDir search base for
##              afp, cifs, iprint, and netstorage in LDAP syntax
##
##		This LDAP base will be used for all OES services
##		unless specified differently in the variables below
SEARCH_BASE="o=Your_O"

## Type String
## Description: fully distinguished name of the eDir search base for
##              afp in LDAP syntax
AFP_SEARCH_BASE="$SEARCH_BASE"

## Type String
## Description: fully distinguished name of the eDir search base for
##              cifs in LDAP syntax
CIFS_SEARCH_BASE="$SEARCH_BASE"

## Type String
## Description: fully distinguished name of the eDir search base for
IPRINT_SEARCH_BASE="$SEARCH_BASE"

## Type String
## Description: fully distinguished name of the eDir search base for
##              netstorage in LDAP syntax
NETSTORAGE_SEARCH_BASE="$SEARCH_BASE"


## NSS information

## Type Integer
## Description: Start value for Novell Idendity Translator (NIT)
##		Only required with OES2015 and newer
##		default: 100000
AD_NIT_UID_START="100000"

## Type Integer
## Description: End value for Novell Idendity Translator (NIT)
##		Only required with OES2015 and newer
##		default: 200000
AD_NIT_UID_END="200000"


## NSS-AD information

## Type String
## Description: name of the AD container where the computer objects
##              for the OES2015 servers joined to the domain will
##		be placed
##		default: CN=Computers
AD_COMPUTER_CONTAINER="CN=Computers"

## Type String
## Description: determines wether or not NIT IDs will be generated on
##              the fly
##		default: yes = generate mode
AD_CREATE_NIT_UIDS="yes"

## Type String
## Description: name of the domain the OES2015 server will join
AD_DOMAIN_NAME="mydomain.TLD"

## Type String
## Description: name of the AD group that will receive SUPERVISOR
##		rights to the root of all NSS volumes
##		default: Domain Admins
AD_DOMAIN_ADMIN_GROUP="Domain Admins"

## Type List	(no|yes)
## Description: determines whether or not pre-created computer objects
##              will be used to represent the server in AD
##		default: no
AD_USE_PRECREATED_COMPUTEROBJ="no"

## Type String
## Description: name of an AD user with sufficient rights to join the
##              domain
##		default: Administrator
AD_USER_NAME="Administrator"


## SLP information

## Type list	(novell,open)
## Description: determines the type of SLP infrastructure in use
SLP_TYPE="open"

## Type Custom
## Description: Colon separated list of IP addresses of SLP Directory Agent
##              host servers
#SLPDA_SERVER_LIST=""

## Type Custom
## Description: Colon separated list of SLP Scope names
#SLP_SCOPE_LIST=""


## UMC information

## Type IP|DNS
## Description: IP address or DNS name for the UMC database server
##		default: %%HOST_NAME%%.%%DOMAIN_NAME%%
UMC_DB_HOST_NAME="%%HOST_NAME%%.%%DOMAIN_NAME%%"

## Type decimal
## Description: Port for the UMC database server
##		default: 5432
UMC_DB_PORT="5432"

## Type IP|DNS
## Description: Username for the UMC database server
##		default: none
UMC_DB_USER_NAME=""


## SLES information

## Type String
## Description: name of the YaST CA; mandatory
##		default: YaST_Default_CA
CA_NAME="YaST_Default_CA"

## Type String
## Description: CN of the YaST CA; mandatory
## 		default: YaST_Default_CA ($my_hostname)
CA_CN="YaST_Default_CA (%%HOST_NAME%%)"

## Type String
## Description: country of the YaST CA; mandatory
##		default: DE
CA_COUNTRY="DE"

## Type String
## Description: state where the YaST CA is located; optional
CA_STATE=""

## Type String
## Description: locality of the YaST CA; optional
CA_LOCALITY=""

## Type String
## Description: organization of the YaST CA; optional
CA_O=""

## Type String
## Description: organizational unit of the YaST CA; optional
CA_OU=""

## Type String
## Description: password of the YaST CA; mandatory
##		default: "novell" (without quotes)
##
##		IMPORTANT NOTE
##		when using eDirectory based AutoYast this password is
##		visible to anybody that can access the web service on
##		the AutoYaST server
##
##		Therefor it is strongly recommend that you change the
##		CA password after installation
CA_PWD="novell"

## Type String
## Description: e-mail address of the YaST CA; mandatory
##		default: postmaster@primary_domain
##		The first value of SUFFIX_SEARCH_LIST is used as primary
##		domain. 
CA_EMAIL="postmaster@%%DOMAIN_NAME%%"


## Type List	(UTC|localtime)
## Description:	Hardware clock setting
HWCLOCK="localtime"

## Type String
## Description:	YaST-internal identifier of the attached keyboard
KEYMAP="german"

## Type String
## Description:	Language
LANGUAGE="en_US"

## Type String
## Description:	encrypted root password
##		must be enclosed in '' due to bash expansion of $
#ROOT_PWD=''

# Password: novell
ROOT_PWD='$6$eTocV/T/0xF6$xIRCW5zo7tQJ8zxMqBPEmt59X5m97bS0YwpGj6BBh12G6JJIsF59H3jJLBsgHPSJUbU5bYIUnyqNkrCOhIO78.'

## Type String
## Description:	Time Zone
TIME_ZONE="Europe/Berlin"


########################################################################
##
## The following settings provide information about the system used to
## distribute software updates to the new systems
##
########################################################################

## Type List	(smt,zcm)
## Description: Type of system used for software updates
#UPDATE_SYSTEM=""

## Type String
## Description: salt master that should be used for salt minion to register to
##
#SALT_MASTER=""

## Type URL
## Description: Protocol (ftp|http|nfs|smb|...) and DNS name or IP address of
##		the SLES11 baset SMT server
#SMT_SERVER="http://"

## Type URL
## Description: URL to the SMT client configuration script on SLES11|OES2015
#SMT_CLIENT_URL="$SMT_SERVER/repo/tools/clientSetup4SMT.sh"

## Type URL
## Description: Protocol (ftp|http|nfs|smb|...) and DNS name or IP address of
##		the based SLES12 SMT server
#SMT12_SERVER="http://"

## Type URL
## Description: URL to the SMT client configuration script on SLES12|OES2018 
#SMT12_CLIENT_URL="$SMT12_SERVER/repo/tools/clientSetup4SMT.sh"

## Type String
## Description: salt master that should be used for salt minion to register to
##
#SALT_MASTER="http://"

## Type String
## Description: Suse Manager Server (Hostname or IP address)
#SUMA_SERVER="http://"

## Type URL/Path
## Description:	URL-Path to Suse Manager Bootstrap script
#SUMA_BOOTSTRAP_FILE="/pub/bootstrap/bootstrap.sh"

## Type URL
## Description: Full URL to the Suse Manager Bootstrap script
#SUMA_BOOTSTRAP_URL="${SUMA_SERVER}${SUMA_BOOTSTRAP_FILE}"

## Type URL
## Description: Protocol (ftp|http|https|nfs|smb|...) and DNS name or IP address
##		of the ZCM server
#ZCM_SERVER="https://"

## Type String
## Description:	Name of the binary to install the ZCM agent
#ZCM_AGENT_BIN="PreAgentPkg_AgentLinuxComplete.bin"

## Type URL
## Description: URL to the ZCM agent installation binary
##		Note AY_SERVER - including the protocol - is determined 
##		by pre-fetch.sh and zcm-install.sh
#ZCM_AGENT_URL="$ZCM_SERVER/zenworks-downloads/setup/x86_64/$ZCM_AGENT_BIN"

## Type List	($AY_SERVER,$SMT_SERVER,$ZCM_SERVER)
## Description:	Server providing ISOs via HTTP
ISO_SERVER="$AY_SERVER"

## Type List    ($AY_SERVER,$SMT_SERVER,$ZCM_SERVER)
## Description: Server hosting the YUM repos of the frozen patch levels
##              that will be added during installation
YUM_SERVER="$ZCM_SERVER"
