Added db2.in.
authorZoltán Felleg <zoltan.felleg@userrendszerhaz.hu>
Fri, 1 Dec 2023 19:52:57 +0000 (20:52 +0100)
committerZoltán Felleg <zoltan.felleg@userrendszerhaz.hu>
Fri, 1 Dec 2023 19:52:57 +0000 (20:52 +0100)
23 files changed:
sources/db2.in/c3d/firstboot/data/chpasswd.data [new file with mode: 0644]
sources/db2.in/c3d/firstboot/data/db2server.rsp [new file with mode: 0644]
sources/db2.in/c3d/firstboot/scripts/01_setupnetworking.sh [new file with mode: 0755]
sources/db2.in/c3d/firstboot/scripts/02_settimezone.sh [new file with mode: 0755]
sources/db2.in/c3d/firstboot/scripts/03_addusers.sh [new file with mode: 0755]
sources/db2.in/c3d/firstboot/scripts/10_installdb2.sh [new file with mode: 0755]
sources/db2.in/c3d/firstboot/scripts/20_setupdb2.sh [new file with mode: 0755]
sources/db2.in/c3d/firstboot/scripts/90_setupservices.sh [new file with mode: 0755]
sources/db2.in/c3d/mode.txt [new file with mode: 0644]
sources/db2.in/c3d/owner.txt [new file with mode: 0644]
sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key [new file with mode: 0644]
sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key-cert.pub [new file with mode: 0644]
sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key.pub [new file with mode: 0644]
sources/db2.in/c3d/postinstall/install-data/etc/ssh/sshd_config.d/99-host-cert.conf [new file with mode: 0644]
sources/db2.in/c3d/postinstall/install-data/etc/ssh/sshd_config.d/99-user-CA.conf [new file with mode: 0644]
sources/db2.in/c3d/postinstall/install-data/etc/ssh/trusted-user-ca.keys [new file with mode: 0644]
sources/db2.in/c3d/postinstall/install-data/usr/local/bin/catalog-objects.sh [new file with mode: 0755]
sources/db2.in/c3d/postinstall/install-data/usr/local/bin/list-objects.sh [new file with mode: 0755]
sources/db2.in/c3d/postinstall/scp/copy.list [new file with mode: 0644]
sources/db2.in/c3d/postinstall/scripts/10_setupservices.sh [new file with mode: 0755]
sources/db2.in/c3d/postinstall/ssh/run.list [new file with mode: 0644]
sources/db2.in/config [new file with mode: 0644]
sources/db2.in/envvars [new file with mode: 0644]

diff --git a/sources/db2.in/c3d/firstboot/data/chpasswd.data b/sources/db2.in/c3d/firstboot/data/chpasswd.data
new file mode 100644 (file)
index 0000000..0331525
--- /dev/null
@@ -0,0 +1,2 @@
+db2admin:Passw@rd01
+db2fncd:Passw@rd01
diff --git a/sources/db2.in/c3d/firstboot/data/db2server.rsp b/sources/db2.in/c3d/firstboot/data/db2server.rsp
new file mode 100644 (file)
index 0000000..517044e
--- /dev/null
@@ -0,0 +1,938 @@
+** ============================================================================
+**
+** Sample response file for IBM DB2
+** --------------------------------
+** To select features and settings to install, uncomment the corresponding
+** keywords and specify values for those keywords.  You do not need to select
+** features if you select the TYPICAL or COMPACT installation options.
+**
+** Comments are made by placing either an asterisk (*) or a hash symbol (#) at
+** the start of a line, or by placing ** or ## after the start of a line to
+** comment out the rest of that line.
+** All keywords that are currently uncommented (not preceded by * or #) are
+** mandatory and must be assigned values for the installation to continue.
+** All other keywords are optional. If optional keywords are not specified,
+** the installation will proceed using default values. Lines that start out
+** with two asterisks are documentation and should not be enabled.
+**
+** For more information on creating or configuring an ESE instance with the
+** DB2 pureScale Feature, see "Installing the 
+** IBM DB2 pureScale feature for DB2 Server Edition
+** using a response file" in the DB2 Information Center.
+** For more information on configuration parameters, see "Configuring the DB2 database manager with 
+** configuration parameters" in the DB2 Information Center.
+**
+** For more information on DB2 registry and environment variables, and configuration 
+** parameters, see "DB2 registry and environment variables" in the DB2 Information Center.
+**
+** For more information on how to perform a response file installation, see 
+** "Response file considerations" in the DB2 Information Center.
+**
+** Refer to the DB2 Information Center at:
+** https://www-01.ibm.com/support/knowledgecenter/SSEPGG_11.5.8/com.ibm.db2.luw.kc.doc/welcome.html
+**
+** ============================================================================
+** General Options
+** ---------------
+
+** Only one product can be specified for the following PROD keyword. Specifying
+** multiple products in an installation is not supported.
+PROD                      = DB2_SERVER_EDITION
+
+** The FILE keyword determines the base installation path. If you specify a
+** path that does not yet have this product, this will install a new copy.  If
+** you specify a path that has this product, this will be considered an
+** existing installation intended to install additional functionality. This is
+** a mandatory keyword for root installation. Remove this keyword for non-root
+** installation. If not removed, its value must be $HOME/sqllib where $HOME
+** represents the HOME directory of the non-root user ID that owns the non-root
+** installation.
+FILE                      = /opt/ibm/db2/V11.5
+
+** Modify the value of the following LIC_AGREEMENT keyword to indicate that you
+** have read and agreed to the license agreement file in the db2/license
+** directory.
+LIC_AGREEMENT             = ACCEPT         ** ACCEPT or DECLINE
+
+** If an interactive type is set, db2setup will prompt for CD locations and
+** give feedback as to progress, otherwise nothing will be displayed until the
+** installation is complete.
+*INTERACTIVE              = NONE            ** NONE, YES, MACHINE
+
+** The CONFIG_ONLY keyword is used to specify that the response file is being
+** used for creating or configuring an instance, and nothing is to be
+** installed. This keyword must be set to YES if a response file is used with
+** db2isetup.
+*CONFIG_ONLY              =                 ** YES or NO
+
+** INSTALL_TYPE keyword is used to select the installation type. If you specify
+** a TYPICAL or a COMPACT install type, no COMP keywords are required. In this
+** case the installer will select the appropriate components for you.  All COMP
+** keywords are ignored by the installer unless the INSTALL_TYPE is set  to
+** CUSTOM. If you select the CUSTOM install type, then ensure that you enable 
+** all of the COMP keywords that are required for your database environment.
+** 
+** Note: The install type is not related to the language selection.
+** ----------------------------------------------------------------------------
+INSTALL_TYPE              = CUSTOM         ** TYPICAL, COMPACT, CUSTOM
+
+** The following components are part of all TYPICAL installations. If you
+** perform a typical installation, all of these components will be installed on
+** your computer.
+** ----------------------------------------------------------------------------
+
+** DB2 Advanced Copy Services help protect mission-critical data that requires
+** 24x7 availability. It offers an integrated solution designed to implement
+** high-efficiency backup and restore processes and helps eliminate
+** backup-related performance issues.
+*COMP                     = ACS                                 ** Integrated Flash Copy Support
+
+** Provides federated support required to access DB2 for iSeries and DB2 for
+** z/OS and OS/390 data sources.
+*COMP                     = DB2_DATA_SOURCE_SUPPORT             ** DB2 data source support
+
+** Sample database source provides sample data and metadata that allows you to
+** create a sample database using the First Steps application.
+COMP                     = DB2_SAMPLE_DATABASE                 ** Sample database source
+
+** Enables users and applications with Federated Data Source Access
+*COMP                     = FED_DATA_SOURCE_SUPPORT             ** Federated Data Access Support
+
+** First Steps is a graphical tool that will help familiarize you with DB2
+** features and functions.
+*COMP                     = FIRST_STEPS                         ** First Steps
+
+** Guardium Installation Manager Client component will place the Guardium
+** Installation Manager(GIM) Client under DB2 Install Path.
+*COMP                     = GUARDIUM_INST_MNGR_CLIENT           ** Guardium Installation Manager Client
+
+** The DB2 Instance Setup wizard is a Java-based tool you can use to set up
+** instances on your computer after installing DB2.
+COMP                     = INSTANCE_SETUP_SUPPORT              ** DB2 Instance Setup wizard
+
+** LDAP Exploitation allows DB2 to use an LDAP directory to store database
+** directory and configuration information.
+*COMP                     = LDAP_EXPLOITATION                   ** DB2 LDAP support
+
+** Pacemaker is an open-source, high availability cluster manager software
+** integrated on Linux.
+*COMP                     = PCMK                                ** Pacemaker
+
+** IBM Tivoli System Automation for Multiplatforms provides high availability
+** and disaster recovery capabilities for AIX, Linux, Solaris SPARC, and
+** Windows.
+** If this component is selected, it will either be installed, updated or
+** upgraded by the DB2 installer. Use COMP=TSAMP only if you are running as
+** root user.
+*COMP                     = TSAMP                               ** Tivoli SA MP
+
+
+** The following components are not part of TYPICAL installations, and thus can
+** only be installed through CUSTOM installs.
+** ----------------------------------------------------------------------------
+
+** The base application development tools component contains tools and files
+** (including header files, libraries, and a precompiler) that are needed for
+** developing applications that work with DB2.
+COMP                     = APPLICATION_DEVELOPMENT_TOOLS       ** Base application development tools
+
+** A scalable, highly-available, high performance file system optimized for
+** multi-petabyte storage management.
+** If this component is selected, it will either be installed, updated or
+** upgraded by the DB2 installer.  Use COMP=GPFS only if you are running as
+** root user.
+*COMP                     = GPFS                                ** General Parallel File System (GPFS)
+
+** Application data sources use an application to access the underlying
+** nonrelational data. The raw data can be in a number of standard and
+** nonstandard formats.
+*COMP                     = IINR_APPLICATIONS_WRAPPER           ** Application data sources
+
+** Scientific data sources are developed exclusively for the life sciences
+** industry, such as those containing genomic, proteomic, bioinformatic, and
+** cheminformatic information.
+*COMP                     = IINR_SCIENTIFIC_WRAPPER             ** Scientific Data Sources
+
+** Structured file data sources contain nonrelational data stored in files with
+** a defined, repeatable structure.
+*COMP                     = IINR_STRUCTURED_FILES_WRAPPER       ** Structured file data sources
+
+** Enables users and applications to submit distributed requests for data
+** managed by Informix systems.
+** This feature is only installed and not configured when the PURESCALE feature
+** is selected for installation.
+*COMP                     = INFORMIX_DATA_SOURCE_SUPPORT        ** Informix data source support
+
+** Enables users and applications to submit distributed requests through JDBC
+** for data managed by DBMS.
+COMP                     = JDBC_DATA_SOURCE_SUPPORT            ** JDBC data source support
+
+** Enables users and applications to submit distributed requests for data
+** stored in any data source that supports ODBC and X/Open CLI compliant
+** drivers.
+COMP                     = ODBC_DATA_SOURCE_SUPPORT            ** ODBC data source support
+
+** Enables users and applications to submit distributed requests for data
+** managed by Oracle systems.
+*COMP                     = ORACLE_DATA_SOURCE_SUPPORT          ** Oracle data source support
+
+** The IBM DB2 pureScale Feature provides clustering technology to DB2 products
+** on distributed platforms.
+** Selecting the PURESCALE feature will automatically install every other
+** required component. See the DB2 Information Center for more information on
+** the pre-installation planning and prerequisites needed for a successful IBM
+** DB2 pureScale installation and instance setup. Use COMP=PURESCALE only if
+** you are running as root user.
+*COMP                     = PURESCALE                           ** IBM DB2 pureScale Feature
+
+** Spatial Extender client contains the support required for communicating with
+** a Spatial Extender server.
+*COMP                     = SPATIAL_EXTENDER_CLIENT_SUPPORT     ** Spatial Extender client
+
+** Provides Spatial Extender support for the DB2 server, providing the storing
+** and query of geographical information in DB2 tables.
+*COMP                     = SPATIAL_EXTENDER_SERVER_SUPPORT     ** Spatial Extender server support
+
+** Enables users and applications to submit distributed requests for data
+** managed by Microsoft SQL Server systems.
+*COMP                     = SQL_SERVER_DATA_SOURCE_SUPPORT      ** SQL Server data source support
+
+** Enables users and applications to submit distributed requests for data
+** managed by Sybase systems.
+*COMP                     = SYBASE_DATA_SOURCE_SUPPORT          ** Sybase data source support
+
+** Enables users and applications to submit distributed requests for data
+** managed by Teradata systems.
+*COMP                     = TERADATA_DATA_SOURCE_SUPPORT        ** Teradata data source support
+
+** The DB2 Text Search component, powered by OmniFind, delivers an integrated,
+** high quality and scalable search technology in DB2 databases.
+** This feature is only installed and not configured when the PURESCALE feature
+** is selected for installation.
+*COMP                     = TEXT_SEARCH                         ** DB2 Text Search
+
+** The following languages apply to all translated components. Enable the
+** language(s) you want installed. If you do not enable any language keywords,
+** then the English language (EN) will still be installed by default.
+** ---------------------------------------------------------------------------
+*LANG                     = BR              ** Portuguese - Brazil (pt_BR)
+*LANG                     = CN              ** Simplified Chinese (zh_CN)
+*LANG                     = CZ              ** Czech (cs_CZ)
+*LANG                     = DE              ** German (de_DE)
+*LANG                     = ES              ** Spanish (es_ES)
+*LANG                     = FR              ** French (fr_FR)
+*LANG                     = IT              ** Italian (it_IT)
+*LANG                     = JP              ** Japanese (ja_JP)
+*LANG                     = KR              ** Korean (ko_KR)
+*LANG                     = PL              ** Polish (pl_PL)
+*LANG                     = RU              ** Russian (ru_RU)
+*LANG                     = TW              ** Traditional Chinese (zh_TW)
+
+
+** (Valid for non-root upgrade only) Upgrade Older Release
+** -------------------------------------------------------
+** Specify whether you want to upgrade any previous versions of the product. 
+** Specifying this keyword will remove any previous version and upgrade any
+** settings to the new installation.  Be aware that during upgrade of the
+** current copy, only the product specified in the response file will be
+** installed. Other previously installed products need to be upgraded
+** separately following this upgrade.
+*UPGRADE_PRIOR_VERSIONS   = FALSE           ** TRUE or FALSE
+
+** IBM DB2 pureScale Feature Host Information
+** ------------------------------------------
+** Specify the hosts to which the DB2 product is to be installed. This section
+** must always list the installation initiating host. Do no specify any
+** keywords in this section if you are not installing the IBM DB2 pureScale
+** Feature. Ensure that password-less ssh root access is available on all hosts
+** and between all hosts.
+
+** The HOST keyword is used to specify a host identifier for one set of host
+** keys. This keyword is mandatory if you are installing the IBM DB2 pureScale
+** Feature.
+*HOST                     = host1           ** char(14)  no spaces
+
+** Use the HOSTNAME keyword with the host identifier prefix to identify the
+** name of the host. A host can be a physical machine or LPAR, on which a DB2
+** member or a cluster caching facility will run. If an alias or IP address is
+** provided, the installer will attempt to convert it to a canonical hostname
+** prior to instance creation. The host name must be a unique host name across
+** the network. The following formats are accepted: long name (for example,
+** host1.ibm.com), short name (for example, host1), IP address (IPv4:
+** xxx.xxx.xxx.xxx). This keyword is mandatory if you have specified the HOST
+** keyword.
+*host1.HOSTNAME           =                 ** char(255)  no spaces
+
+** The CLUSTER_INTERCONNECT_NETNAME keyword is used to specify the name of a
+** high speed interconnect name that corresponds to a high speed adapter name.
+** Refer to the DB2 Information Center for valid types of high speed adapters.
+** This keyword is mandatory if you have specified the HOST keyword.
+*host1.CLUSTER_INTERCONNECT_NETNAME =       ** char(255)  no spaces
+
+
+*HOST                     = host2           ** char(14)  no spaces
+*host2.HOSTNAME           =                 ** char(255)  no spaces
+*host2.CLUSTER_INTERCONNECT_NETNAME =       ** char(255)  no spaces
+
+** Instance Creation Settings
+** --------------------------
+** User IDs managed by NIS/NIS+ are not supported. If an existing user ID is
+** used, make sure it is not locked and its password has not expired.
+
+** Prefix name of one instance set. To create or update an instance, one set of
+** instance keywords must be specified. The instance set is comprised of the
+** identifying prefix value for the INSTANCE key followed by the keys that are
+** prefixed by the specified INSTANCE prefix value. If you are creating a DSF
+** instance you can only specify one instance at a time in this response file.
+** Note: DSF is the instance type for a IBM DB2 pureScale instance. If you are
+** not creating a DSF instance, then multiple instances can be specified for
+** creation or update in this response file.
+INSTANCE                  = DB2_INST        ** char(8)  no spaces
+
+** Real name of the instance, and also the user ID of instance owner. It can be
+** different from the value of the INSTANCE keyword. If an existing ID is
+** specified for the instance's NAME keyword, make sure the user ID exists on
+** all the participating hosts with the same UID, GID, corresponding group
+** name, user name and user home directory. Ensure that existing user IDs are
+** not locked and that the password has not expired. IBM DB2 pureScale Feature
+** users must specify a name that is unique across the IBM DB2 pureScale
+** implementation.
+DB2_INST.NAME             = db2admin        ** char(8)  no spaces, no upper case letters
+
+** The UID will be generated if the keyword is not specified - highly
+** recommended.
+*DB2_INST.UID             =                 ** Unsigned integer
+DB2_INST.GROUP_NAME       = db2grp          ** char(30) no spaces
+
+** Use a generated GID if no value provided - highly recommended.
+*DB2_INST.GID             =                 ** Unsigned integer
+*DB2_INST.HOME_DIRECTORY   =                 ** char(64) no spaces. Valid for root installation only
+*DB2_INST.PASSWORD         = Passw@rd01      ** Valid for root installation only
+
+** If PURESCALE is selected or installed, the default instance type will be
+** DSF.
+DB2_INST.TYPE            = ESE             ** DSF ESE WSE STANDALONE CLIENT
+
+** Set the instance to be auto-started after system reboot. The AUTOSTART
+** keyword can only be used by a root installation and only a non-pureScale
+** instance type. This keyword is invalid for non-root installation. This
+** keyword cannot be used for DSF instance type.
+DB2_INST.AUTOSTART        = YES             ** YES or NO
+
+** The START_DURING_INSTALL keyword will start the instance during the
+** installation.  If this keyword is not specified, the behavior follows the
+** AUTOSTART keyword above.
+DB2_INST.START_DURING_INSTALL = YES         ** YES or NO. Default is YES.
+*DB2_INST.SVCENAME        = db2c_db2inst1   ** BLANK or char(14). Reserved for root installation only
+DB2_INST.PORT_NUMBER     = 50000           ** 1024 - 65535, Reserved for root installation only
+
+** The ports in range [FCM_PORT_NUMBER, FCM_PORT_NUMBER+MAX_LOGICAL_NODES] are
+** reserved during the installation. Valid for root installation only. If your
+** instance type is DSF, the ports in range [FCM_PORT_NUMBER,
+** FCM_PORTNUMBER+MAX_LOGICAL_NODES+3] is reserved. The ports have to be
+** continuous and identical on all the participating hosts.
+*DB2_INST.FCM_PORT_NUMBER = 20000           ** 1024 - 65535, the beginning port number.
+*DB2_INST.MAX_LOGICAL_NODES =               ** 1 - 128 for DSF instances or 1 - 199 for ESE instances. It is a maximum number of logical members to be used on one member host. Valid for root installation only.
+
+** The DB2CF_PORT_NUMBER and the DB2CF_MGMT_PORT_NUMBER are to be reserved for
+** the cluster caching facility (CF). As the CF is an instance designation, the
+** port names will be pre-defined based on the name of the instance. Example:
+** Where the instance name is db2sdin1, the names required for the CF ports
+** will be DB2CF_db2inst1 and DB2CF_db2inst1_MGMT. Ensure that all the port
+** names are the same on all the participating hosts. The two CF ports must be
+** available on all the participating hosts. If you want the installer to
+** generate these values, leave them commented out.
+*DB2_INST.DB2CF_PORT_NUMBER = 56001         ** 1024 - 65535.
+*DB2_INST.DB2CF_MGMT_PORT_NUMBER = 56000    ** 1024 - 65535.
+
+** The PREFERRED_PRIMARY_CF is used to specify the preferred primary cluster
+** caching facility needed to create a new IBM DB2 pureScale instance. This
+** keyword is mandatory if you are creating a new IBM DB2 pureScale instance.
+** The value provided must match the value of any HOST keyword specified in
+** this response file. If you are extending an instance, this keyword should be
+** commented out.
+*DB2_INST.PREFERRED_PRIMARY_CF =            ** a host identifier, char(14)
+
+** The PREFERRED_SECONDARY_CF is used to specify the preferred secondary
+** cluster caching facility for the IBM DB2 pureScale instance. The value
+** provided must match the value of any HOST keyword specified in this response
+** file. This host identifier should be specified in any HOST section.
+*DB2_INST.PREFERRED_SECONDARY_CF =          ** a host identifier, char(14)
+
+** The MEMBER keyword is required if you are creating a new IBM DB2 pureScale
+** instance. The value provided must match the value of any HOST keyword
+** specified in this response file. Specify more MEMBER keywords so that each
+** new host is defined in this response file as either a DB2 member or a
+** cluster caching facility (CF host, see above).
+*DB2_INST.MEMBER          =                 ** a host identifier, char(14)
+*DB2_INST.CLIENT_IMPORT_PROFILE =           ** a full path or a file in the same directory as the response file
+
+** Do not set FEDERATED if you are creating or configuring a DSF instance.
+*DB2_INST.FEDERATED       =                 ** YES or NO
+
+** Do not set INFORMIX_CLIENT_HOME if you are creating or configuring a DSF
+** instance.
+*DB2_INST.INFORMIX_CLIENT_HOME = BLANK      ** BLANK, char(1023)
+
+** Do not set INFORMIX_SERVER_HOME if you are creating or configuring a DSF
+** instance.
+*DB2_INST.INFORMIX_SERVER_HOME = BLANK      ** BLANK, char(1023)
+*DB2_INST.ORACLE_HOME     =                 ** any valid path , char(64) no spaces
+*DB2_INST.SYBASE_HOME     =                 ** any valid path, char(1023)
+*DB2_INST.SYBASE_OCS      =                 ** valid SYBASE_OCS directory name, char(1023)
+*DB2_INST.SQLSERVER_ODBC_LIB_PATH =         ** the full path name where libodbc file is in, char(1023)
+*DB2_INST.SQLSERVER_ODBC_INI_PATH =         ** the full path name of .odbc.ini file including the file name, char(1023)
+*DB2_INST.TERADATA_CLI_PATH =               ** the full path name to libcliv2.so library
+*DB2_INST.TERADATA_ERRMSG_PATH =            ** the full path name to errmsg.txt error message file
+*DB2_INST.AUTHENTICATION  = SERVER          ** CLIENT, SERVER, or SERVER_ENCRYPT
+
+** An existing user ID should be specified for DB2SSHID_USERNAME keyword, make
+** sure the user ID exists on all the participating hosts with the same UID,
+** GID, corresponding group name, user name and user home directory. Ensure
+** that existing user IDs are not locked and that the password has not expired.
+** IBM DB2 pureScale Feature users must specify a name that is unique across
+** the IBM DB2 pureScale implementation.
+*DB2_INST.DB2SSHID_USERNAME =               ** char(8)  no spaces, no upper case letters
+
+** Tivoli SA MP Tiebreaker Settings (IBM DB2 pureScale Feature only)
+** -----------------------------------------------------------------
+** The DB2_CLUSTER_SERVICES_TIEBREAKER_DEVICE_PATH keyword is used to specify
+** the device path for Tivoli SA MP Tiebreaker setup. The keyword is mandatory
+** when setting up the first IBM DB2 pureScale instance.
+
+** All the hosts specified in HOST section must have direct access to this
+** disk.
+*DB2_CLUSTER_SERVICES_TIEBREAKER_DEVICE_PATH =  ** a valid device path, for example, /dev/sda
+
+** Shared File System Settings (IBM DB2 pureScale Feature only)
+** ------------------------------------------------------------
+** Only one of the following two keywords is needed when setting up the first
+** IBM DB2 pureScale instance on the host; If both INSTANCE_SHARED_DEVICE_PATH
+** and INSTANCE_SHARED_DIR are specified, INSTANCE_SHARED_DIR will be ignored.
+** If the task is to extend an instance to a new host, both of these keywords
+** will be ignored.
+
+** Specify INSTANCE_SHARED_DEVICE_PATH to create a DB2 cluster file system. All
+** the hosts specified in the HOST sections should have direct access to the
+** shared device path specified.
+*INSTANCE_SHARED_DEVICE_PATH =              ** a valid device path, for example, /dev/sda
+
+** Specify the INSTANCE_SHARED_MOUNT to define the mounting point of the new
+** DB2 cluster file system. It is optional and valid only if
+** INSTANCE_SHARED_DEVICE_PATH is specified.
+*INSTANCE_SHARED_MOUNT    =                 ** a valid mount point of the new DB2 cluster file system.
+
+** Specify the INSTANCE_SHARED_DIR to use a user-managed shared file system for
+** instance creation.
+*INSTANCE_SHARED_DIR      =                 ** a valid mount point of shared file system.
+
+** Fenced User Creation Settings
+** -----------------------------
+** Valid for root installation only. User IDs managed by NIS/NIS+ are not
+** supported. If an existing ID is used, make sure it is not locked and its
+** password has not expired.
+
+** Make sure the user name specified for FENCED_USERNAME is not locked and its
+** password has not expired.
+DB2_INST.FENCED_USERNAME  = db2fncd        ** char(8)  no spaces, no upper case letters
+
+** If no value is provided for FENCED_UID keyword, the DB2 installer will
+** generate one for you. This is highly recommended.
+*DB2_INST.FENCED_UID      =                 ** Unsigned integer
+DB2_INST.FENCED_GROUP_NAME = db2fgrp       ** char(30)  no spaces
+
+** If no value is provided for FENCED_GID keyword, the DB2 installer will
+** generate one for you. This is highly recommended.
+*DB2_INST.FENCED_GID      =                 ** Unsigned integer
+*DB2_INST.FENCED_HOME_DIRECTORY =           ** char(64) no spaces
+
+** This FENCED_PASSWORD is required if the fenced user ID is a new user
+*DB2_INST.FENCED_PASSWORD =                 ** char(8)
+
+** Text Search Configuration
+** -------------------------
+
+** Do not set CONFIGURE_TEXT_SEARCH if you are creating or configuring a DSF
+** instance.
+*DB2_INST.CONFIGURE_TEXT_SEARCH = NO        ** YES or NO
+
+** Do not set TEXT_SEARCH_HTTP_SERVICE_NAME if you are creating or configuring
+** a DSF instance.
+*DB2_INST.TEXT_SEARCH_HTTP_SERVICE_NAME = db2j_db2inst1 ** BLANK or char(14). Valid for root installation only
+
+** Do not set TEXT_SEARCH_HTTP_PORT_NUMBER if you are creating or configuring a
+** DSF instance.
+*DB2_INST.TEXT_SEARCH_HTTP_PORT_NUMBER = 55000 ** Any unused port number from 1024 - 65535
+
+** Instance DBM CFG Settings
+** -------------------------
+*DB2_INST.CF_DIAGLEVEL    = 2               ** a number in range [0 - 4]
+*DB2_INST.CF_DIAGPATH     =                 ** BLANK or char(215)
+*DB2_INST.CF_MEM_SZ       = AUTOMATIC       ** AUTOMATIC or a number in range [32768 - 4 294 967 295]
+*DB2_INST.CF_NUM_CONNS    = AUTOMATIC       ** AUTOMATIC or a number in range [4-256]
+*DB2_INST.CF_NUM_WORKERS  = AUTOMATIC       ** AUTOMATIC or a number in range [1 - 31]
+*DB2_INST.RSTRT_LIGHT_MEM = AUTOMATIC       ** 1-10 for AUTOMATIC or a number in range [1 - 50]
+*DB2_INST.AGENTPRI        =                 ** SYSTEM, -1 or 41-128
+*DB2_INST.ASLHEAPSZ       =                 ** 1 - 524288
+*DB2_INST.AUDIT_BUF_SZ    =                 ** 0 - 65000
+*DB2_INST.CATALOG_NOAUTH  =                 ** 0, 1, YES or NO
+*DB2_INST.CLUSTER_MGR     =                 ** TSA, VENDOR:<fully qualified vendor library>
+*DB2_INST.COMM_BANDWIDTH  =                 ** -1 or 0.1 - 100000.0
+*DB2_INST.CONN_ELAPSE     =                 ** 0 - 100
+*DB2_INST.CPUSPEED        =                 ** -1 or 1e-10 - 1
+DB2_INST.DFTDBPATH       = /data                ** any valid path
+*DB2_INST.DFT_ACCOUNT_STR =                 ** BLANK or char(25)
+*DB2_INST.DFT_MON_BUFPOOL =                 ** ON or OFF
+*DB2_INST.DFT_MON_LOCK    =                 ** ON or OFF
+*DB2_INST.DFT_MON_SORT    =                 ** ON or OFF
+*DB2_INST.DFT_MON_STMT    =                 ** ON or OFF
+*DB2_INST.DFT_MON_TABLE   =                 ** ON or OFF
+*DB2_INST.DFT_MON_UOW     =                 ** ON or OFF
+*DB2_INST.DFT_MON_TIMESTAMP =               ** ON or OFF
+*DB2_INST.DIAGLEVEL       =                 ** 0 - 4
+*DB2_INST.DIAGPATH        =                 ** BLANK or char(215)
+*DB2_INST.DIAGSIZE        =                 ** A value specified in MB and limited by the available disk space in DIAGPATH. Minimum 2 MB must be specified.
+*DB2_INST.FENCED_POOL     = -1 or AUTOMATIC ** -1(MAX_COORDAGENTS), AUTOMATIC or a number in range [0, 64000]
+*DB2_INST.INSTANCE_MEMORY = AUTOMATIC       ** AUTOMATIC or a number in range [0, 1000000] for 32-bit and [0, 68719476736] for 64-bit
+*DB2_INST.HEALTH_MON      =                 ** default is ON; ON or OFF
+*DB2_INST.MAX_CONNECTIONS = -1 or AUTOMATIC ** -1, AUTOMATIC or [1, 64000]
+*DB2_INST.FED_NOAUTH      = NO              ** YES or NO, default is NO
+*DB2_INST.DIR_CACHE       =                 ** YES or NO
+*DB2_INST.DISCOVER        =                 ** DISABLE, KNOWN or SEARCH
+*DB2_INST.DISCOVER_COMM   =                 ** BLANK or TCPIP
+*DB2_INST.DISCOVER_INST   =                 ** ENABLE or DISABLE
+*DB2_INST.FCM_NUM_ANCHORS =                 ** -1 or 128 - FCM_NUM_RQB
+*DB2_INST.FCM_NUM_BUFFERS =                 ** 128 - 65300
+*DB2_INST.FCM_NUM_CONNECT =                 ** -1 or 128 - FCM_NUM_RQB
+*DB2_INST.FCM_NUM_RQB     =                 ** 128 - 120000
+*DB2_INST.INDEXREC        =                 ** ACCESS or RESTART
+*DB2_INST.INTRA_PARALLEL  = NO              ** SYSTEM, YES or NO
+*DB2_INST.JAVA_HEAP_SZ    =                 ** 0 - 4096
+*DB2_INST.JDK_PATH        =                 ** BLANK or char(255)
+*DB2_INST.SSL_SVR_KEYDB   =                 ** BLANK or char(1023)
+*DB2_INST.SSL_SVR_STASH   =                 ** BLANK or char(1023)
+*DB2_INST.SSL_SVR_LABEL   =                 ** BLANK or char(1023)
+*DB2_INST.SSL_SVCENAME    =                 ** BLANK or char(14)
+*DB2_INST.SSL_CIPHERSPECS =                 ** BLANK or char(255)
+*DB2_INST.SSL_VERSIONS    =                 ** BLANK or char(255)
+*DB2_INST.SSL_CLNT_KEYDB  =                 ** BLANK or char(1023)
+*DB2_INST.SSL_CLNT_STASH  =                 ** BLANK or char(1023)
+*DB2_INST.ALTERNATE_AUTH_ENC =              ** NOT_SPECIFIED, AES_ONLY, AES_CMP
+*DB2_INST.KEEPDARI        =                 ** YES or NO
+*DB2_INST.MAXAGENTS       =                 ** 1 - 64000
+*DB2_INST.MAXCAGENTS      =                 ** -1 or 1 - MAX_COORDAGENTS
+*DB2_INST.MAXDARI         =                 ** -1 or 1 - MAX_COORDAGENTS
+*DB2_INST.MAXTOTFILOP     =                 ** 100 - 32768
+*DB2_INST.MAX_CONNRETRIES =                 ** 0 - 100
+*DB2_INST.MAX_COORDAGENTS = 200 or AUTOMATIC ** 200, AUTOMATIC, -1 or 0 - 64000, -1 translates into a value of 200
+*DB2_INST.MAX_TIME_DIFF   = 300             ** 1-1440. The unit of measurement is second
+*DB2_INST.MAX_QUERYDEGREE =                 ** ANY, -1 or 1 - 32767
+*DB2_INST.MON_HEAP_SZ     = AUTOMATIC       ** AUTOMATIC or 0 - 60000
+DB2_INST.NUMDB           = 64                ** 1 - 256
+*DB2_INST.NUM_INITAGENTS  = 0               ** 0 - 64000
+*DB2_INST.NUM_INITDARIS   =                 ** 0 - MAXDARI
+*DB2_INST.NUM_INITFENCED  = 0               ** 0 - 64000
+*DB2_INST.NUM_POOLAGENTS  = 100 or AUTOMATIC ** -1, AUTOMATIC or 0 - 64000
+*DB2_INST.QUERY_HEAP_SZ   =                 ** 2 - 524288
+*DB2_INST.RESTBUFSZ       =                 ** 16 - 524288
+*DB2_INST.RESYNC_INTERVAL =                 ** 1 - 60000
+*DB2_INST.ROUTE_OBJ_NAME  =                 ** BLANK or char(255)
+*DB2_INST.RQRIOBLK        =                 ** 4096 - 65535
+*DB2_INST.SHEAPTHRES      =                 ** 250 - 2097152
+*DB2_INST.SPM_LOG_FILE_SZ =                 ** 4 - 1000
+*DB2_INST.SPM_LOG_PATH    =                 ** BLANK or char(226)
+*DB2_INST.SPM_MAX_RESYNC  =                 ** 10 - 256
+*DB2_INST.SPM_NAME        =                 ** BLANK or char(8)
+*DB2_INST.START_STOP_TIME =                 ** 1 - 1440
+*DB2_INST.SYSADM_GROUP    =                 ** BLANK or char(30)
+*DB2_INST.SYSCTRL_GROUP   =                 ** BLANK or char(30)
+*DB2_INST.SYSMAINT_GROUP  =                 ** BLANK or char(30)
+*DB2_INST.TP_MON_NAME     =                 ** BLANK or char(19)
+*DB2_INST.TRUST_ALLCLNTS  =                 ** YES, NO or DRDAONLY
+*DB2_INST.TRUST_CLNTAUTH  =                 ** CLIENT or SERVER
+*DB2_INST.UDF_MEM_SZ      =                 ** 128 - 60000
+*DB2_INST.FCM_NUM_CHANNELS =                ** 128, 524288
+*DB2_INST.FEDERATED_ASYNC = 0               ** ANY or 0 - 32767
+
+** Instance Profile Registry Settings
+** ----------------------------------
+*DB2_INST.DB2ACCOUNT      =                 ** BLANK or char(199)
+*DB2_INST.DB2ATLD_PORTS   =                 ** BLANK or 1-65535:1-65535  n1<=n2
+*DB2_INST.DB2BIDI         =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2BQTIME       =                 ** BLANK or 1 - MAX
+*DB2_INST.DB2BQTRY        =                 ** BLANK or 0 - MAX
+*DB2_INST.DB2CHKPTR       =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2CLIINIPATH   =                 ** BLANK or char(260)
+*DB2_INST.DB2CODEPAGE     =                 ** BLANK or 0 - MAX
+*DB2_INST.DB2CONNECT_IN_APP_PROCESS =       ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2COUNTRY      =                 ** BLANK or 1 - 999
+*DB2_INST.DB2DBDFT        =                 ** BLANK or char(8)
+*DB2_INST.DB2DEFPREP      =                 ** BLANK, ALL, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2ENVLIST      =                 ** BLANK or char()
+*DB2_INST.DB2INCLUDE      =                 ** BLANK or char()
+*DB2_INST.DB2IQTIME       =                 ** BLANK or 1 - MAX
+*DB2_INST.DB2LIBPATH      =                 ** BLANK or char()
+*DB2_INST.DB2LOADREC      =                 ** BLANK or char(260)
+*DB2_INST.DB2LOCK_TO_RB   =                 ** BLANK or STATEMENT
+*DB2_INST.DB2NOEXITLIST   =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2OLDEVMON     =                 ** BLANK or char()
+*DB2_INST.DB2OPTIONS      =                 ** BLANK or -/+[a,c,e[c,s],n,o,p,s,t,v,w,x] and/or -[f,l,r,z]filename
+*DB2_INST.DB2_OPTSTATS_LOG =                ** OFF or ON with parameters {NUM | SIZE | NAME | DIR}
+*DB2_INST.DB2PRIORITIES   =                 ** BLANK or char()
+*DB2_INST.DB2RQTIME       =                 ** BLANK or 1 - MAX
+*DB2_INST.DB2_SET_MAX_CONTAINER_SIZE =      ** -1 (no limit) or any integer greater than 64MB
+*DB2_INST.DB2SORT         =                 ** BLANK or char(260)
+*DB2_INST.DB2_SYSTEM_MONITOR_SETTINGS =     ** Controls parameters OLD_CPU_USAGE and DISABLE_CPU_USAGE with ON or OFF values
+*DB2_INST.DB2_AVOID_PREFETCH =              ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2_CORRELATED_PREDICATES =       ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2_FORCE_NLS_CACHE =             ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2_HASH_JOIN   =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2_INDEX_FREE  =                 ** BLANK or 0 - 60
+*DB2_INST.DB2_LIKE_VARCHAR =                ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T, F or 0.0 - 5.0 (exclusive)
+*DB2_INST.DB2_LOADSORT_STACKSZ =            ** BLANK or 1 - MAX
+*DB2_INST.DB2_NO_PKG_LOCK =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2_NUM_FAILOVER_NODES =          ** BLANK or 0 - 999
+*DB2_INST.DB2_PARALLEL_IO =                 ** BLANK, * or 0-4095,0-4095,...
+*DB2_INST.DB2_PRED_FACTORIZE =              ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2_SORT_AFTER_TQ =               ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2_STRIPED_CONTAINERS =          ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_INST.DB2INSTOWNER    =                 ** BLANK or char(30)
+*DB2_INST.DB2DBMSADDR     =                 ** BLANK or char(10)
+*DB2_INST.DB2_DISABLE_FLUSH_LOG =           ** BLANK or ON, OFF
+*DB2_INST.DB2LOCALE       =                 ** BLANK or YES, NO
+*DB2_INST.DB2NODE         =                 ** BLANK or YES NO
+*DB2_INST.DB2_USE_PAGE_CONTAINER_TAG =      ** BLANK or ON
+*DB2_INST.DB2TCPCONNMGRS  =                 ** BLANK or 1 - 8
+*DB2_INST.DB2_PARTITIONEDLOAD_DEFAULT =     ** BLANK or YES, NO
+*DB2_INST.DB2_INLIST_TO_NLJN =              ** BLANK or YES, NO
+*DB2_INST.DB2_SELECTIVITY =                 ** BLANK or YES, NO
+*DB2_INST.DB2_REDUCED_OPTIMIZATION =        ** BLANK, DISABLE, YES, NO, 0 - MAX
+*DB2_INST.DB2_BINSORT     =                 ** BLANK or YES, NO
+*DB2_INST.DB2BPVARS       =                 ** BLANK or char()
+*DB2_INST.DB2_ENABLE_BUFPD =                ** BLANK or ON, OFF
+*DB2_INST.DB2_EVMON_EVENT_LIST_SIZE = 0     ** A value specified in KB, MB or GB and limited by the available memory from the monitor heap
+*DB2_INST.DB2_EXTENDED_OPTIMIZATION =       ** BLANK or ON, OFF
+*DB2_INST.DB2FODC         = Concatenation of all FODC parameters: CORELIMIT, DUMPCORE, DUMDIR, MEMSCAN and SERVICELEVEL ** CORELIMIT, DUMPCORE, DUMPDIR and MEMSCAN parameters are set different for Unix and Windows
+*DB2_INST.DB2MAXFSCRSEARCH =                ** BLANK or -1, 1 - 33554
+*DB2_INST.DB2MEMDISCLAIM  =                 ** BLANK or YES, NO
+*DB2_INST.DB2_VENDOR_INI  =                 ** BLANK or char()
+*DB2_INST.DB2_XBSA_LIBRARY =                ** BLANK or char()
+*DB2_INST.DB2LDAP_SEARCH_SCOPE =            ** BLANK LOCAL DOMAIN GLOBAL
+*DB2_INST.DB2MEMMAXFREE   =                 ** BLANK or char()
+*DB2_INST.DB2NTMEMSIZE    =                 ** BLANK or char()
+*DB2_INST.DB2_OVERRIDE_BPF =                ** BLANK or 1 - MAX
+*DB2_INST.DB2_DJ_COMM     =                 ** BLANK or char()
+*DB2_INST.DB2ADMINSERVER  =                 ** BLANK or char(64)
+*DB2_INST.DB2_PINNED_BP   = NO              ** YES or NO
+*DB2_INST.DB2REMOTEPREG   =                 ** BLANK or char(64)
+*DB2_INST.DB2_ANTIJOIN    =                 ** BLANK or YES, NO, EXTEND
+*DB2_INST.DB2_COLLECT_TS_REC_INFO =         ** BLANK or YES, NO
+*DB2_INST.DB2PROCESSORS   =                 ** BLANK or 1 - MAX
+*DB2_INST.DB2ASSUMEUPDATE =                 ** BLANK or ON, OFF
+*DB2_INST.DB2_SKIPDELETED =                 ** BLANK or ON, OFF
+*DB2_INST.DB2_SQLROUTINE_PREPOPTS =         ** BLANK or char()
+*DB2_INST.DB2_INDEX_TYPE2 =                 ** BLANK or ON, OFF
+*DB2_INST.DB2_APM_PERFORMANCE =             ** BLANK or ON, OFF
+*DB2_INST.DB2_FMP_COMM_HEAPSZ =             ** BLANK or 1 - MAX
+*DB2_INST.DB2_EVALUNCOMMITTED =             ** BLANK or YES, NO
+*DB2_INST.DB2_NO_FORK_CHECK =               ** BLANK or ON, OFF
+*DB2_INST.DB2_KEEPTABLELOCK =               ** BLANK or ON, OFF
+*DB2_INST.DB2GRAPHICUNICODESERVER =         ** BLANK or ON, OFF
+*DB2_INST.DB2_MINIMIZE_LISTPREFETCH =       ** BLANK or YES, NO
+*DB2_INST.DB2_TRUSTED_BINDIN =              ** BLANK or ON, OFF, CHECK
+*DB2_INST.DB2_CLPPROMPT   =                 ** BLANK or char(99)
+*DB2_INST.DB2_FORCE_APP_ON_MAX_LOG =        ** BLANK or TRUE, FALSE
+*DB2_INST.DB2_CLP_EDITOR  =                 ** BLANK or char()
+*DB2_INST.DB2_CLP_HISTSIZE =                ** BLANK or 1 - 500
+*DB2_INST.DB2_LOAD_COPY_NO_OVERRIDE =       ** BLANK or LOCAL, DOMAIN, GLOBAL
+*DB2_INST.DB2_MAX_NON_TABLE_LOCKS =         ** BLANK or 1 - MAX
+*DB2_INST.DB2_USE_ALTERNATE_PAGE_CLEANING =  ** BLANK or ON, OFF
+*DB2_INST.DB2_SCATTERED_IO =                ** BLANK or ON, OFF
+*DB2_INST.DB2_NO_MPFA_FOR_NEW_DB =          ** BLANK or YES, NO
+*DB2_INST.DB2_OBJECT_TABLE_ENTRIES =        ** BLANK or 0 - 50000
+*DB2_INST.DB2_VIEW_REOPT_VALUES =           ** BLANK or YES, NO
+*DB2_INST.DB2_SELUDI_COMM_BUFFER =          ** BLANK or ON, OFF
+*DB2_INST.DB2_ENABLE_AUTOCONFIG_DEFAULT =   ** BLANK, YES, NO
+*DB2_INST.DB2_OPT_MAX_TEMP_SIZE =           ** BLANK or 0 - MAX
+*DB2_INST.DB2RCMD_LEGACY_MODE =             ** YES, ON, TRUE, 1 or NO, OFF, FALSE, 0
+*DB2_INST.DB2_LARGE_PAGE_MEM =              ** *, DB
+*DB2_INST.DB2_MAX_LOB_BLOCK_SIZE = 0        ** 0 - 21487483647
+*DB2_INST.DB2RSHCMD       = rsh             ** Values are a full path name to rsh, or ssh
+*DB2_INST.DB2AUTH         =                 ** BLANK or char()
+*DB2_INST.DB2CONNECT_DISCONNECT_ON_INTERRUPT = NO ** YES, TRUE, 1 or NO, FALSE, 0
+*DB2_INST.DB2CONNECT_ENABLE_EURO_CODEPAGE =  ** BLANK or char()
+*DB2_INST.DB2FCMCOMM      = TCPIP4          ** TCPIP4 or TCPIP6
+*DB2_INST.DB2FFDC         =                 ** BLANK, ON, CORE:OFF
+*DB2_INST.DB2LOADFLAGS    =                 ** BLANK or char()
+*DB2_INST.DB2RSHTIMEOUT   = 30              ** 1 - 120
+*DB2_INST.DB2TCP_CLIENT_CONTIMEOUT = 0      ** 0 - 32767
+*DB2_INST.DB2TCP_CLIENT_RCVTIMEOUT = 0      ** 0 - 32767
+*DB2_INST.DB2TRC_DEF_BUFFSIZE =             ** BLANK or char()
+*DB2_INST.DB2YIELD        =                 ** BLANK or char()
+*DB2_INST.DB2_ASYNC_IO_MAXFILOP = MAXFILOP  ** MAXFILOP - MAX
+*DB2_INST.DB2_BAR_AUTONOMIC_DISABLE =       ** BLANK or char()
+*DB2_INST.DB2_CONNRETRIES_INTERVAL =        ** BLANK or char()
+*DB2_INST.DB2_DXX_PATHS_ALLOWED_READ =      ** BLANK or char()
+*DB2_INST.DB2_DXX_PATHS_ALLOWED_WRITE =     ** BLANK or char()
+*DB2_INST.DB2_HADR_BUF_SIZE = 2*LOGBUFSZ    ** BLANK or 0 - MAX
+*DB2_INST.DB2_LOGGING_DETAIL =              ** BLANK or char()
+*DB2_INST.DB2_MAP_XML_AS_CLOB_FOR_DLC = NO  ** YES, NO
+*DB2_INST.DB2_MAX_CLIENT_CONNRETRIES =      ** BLANK or char()
+*DB2_INST.DB2_MAX_INACT_STMTS =             ** 0 - 4294967296
+*DB2_INST.DB2_MDC_ROLLOUT = IMMEDIATE       ** DEFER, IMMEDIATE or OFF
+*DB2_INST.DB2_MINIMUM_CLIENT_LEVEL =        ** BLANK or char()
+*DB2_INST.DB2_NUM_CKPW_DAEMONS = 3          ** 0 - 100
+*DB2_INST.DB2_RESOURCE_POLICY =             ** valid path to configuration file
+*DB2_INST.DB2_SKIPINSERTED = OFF            ** ON, OFF
+*DB2_INST.DB2_SMS_TRUNC_TMPTABLE_THRESH =   ** -1, 0-n where n is the number of extents per container that are to be maintained
+*DB2_INST.DB2_SNAPSHOT_NOAUTH =             ** BLANK or char()
+*DB2_INST.DB2_TAPEMGR_TAPE_EXPIRATION =     ** BLANK or char()
+*DB2_INST.DB2_UPDDBCFG_SINGLE_DBPARTITION =  ** YES, 1, TRUE or NO, 0, FALSE
+*DB2_INST.DB2_USE_DB2JCCT2_JROUTINE =       ** ON, YES, 1, TRUE or OFF, NO, 0, FALSE
+*DB2_INST.DB2_UTIL_MSGPATH = instanceName/tmp directory ** BLANK or char()
+*DB2_INST.DB2_WORKLOAD    = Not set         ** BLANK, SAP
+
+** 2nd (non-pureScale) Instance Creation Settings
+** ----------------------------------------------
+** Multiple (non-pureScale) DB2 instances can be created in the same
+** installation. This section shows how to specify the 2nd instance in the rsp
+** file. Note: Only a subset of the instance keywords are listed below. You can
+** specify other instance related keywords similar as the 1st instance. All
+** keywords in this section are commented out. By default, only one instance
+** will be created during the install.
+
+** Prefix name of this instance set. Its value is used by all keywords for the
+** same instance.
+*INSTANCE                 = DB2_INS2        ** char(8) no spaces
+*DB2_INS2.NAME            = db2inst2        ** char(8)  no spaces, no upper case letters
+
+** Use a generated UID if no value provided - highly recommended.
+*DB2_INS2.UID             =                 ** Unsigned integer
+*DB2_INS2.GROUP_NAME      = db2iadm1        ** char(30) no spaces
+
+** Use a generated GID if no value provided - highly recommended.
+*DB2_INS2.GID             =                 ** Unsigned integer
+*DB2_INS2.HOME_DIRECTORY  =                 ** char(64) no spaces. Valid for root install only
+*DB2_INS2.PASSWORD        = Replace with your password ** Valid for root install only
+
+** Administration Server Creation Settings
+** ---------------------------------------
+** Valid for root installation only. User IDs managed by NIS/NIS+ are not
+** supported. If an existing ID is used, make sure it is not locked and its
+** password has not expired.
+*DAS_USERNAME             =                 ** char(8)  no spaces, no upper case letters
+*DAS_UID                  =                 ** use db2 generated UID if no values provided(highly recommended) OR a valid unsign int
+*DAS_GROUP_NAME           =                 ** char(30)  no spaces
+*DAS_GID                  =                 ** use db2 generated GID if no values provided(highly recommended) OR a valid unsign int
+*DAS_HOME_DIRECTORY       =                 ** char(64) no spaces
+*DAS_PASSWORD             =                 ** char(8)
+*DAS_SMTP_SERVER          =                 ** char(64) no spaces
+
+** Global Profile Registry Settings
+** --------------------------------
+*DB2ACCOUNT               =                 ** BLANK or char(199)
+*DB2ATLD_PORTS            =                 ** BLANK or 1-65535:1-65535  n1<=n2
+*DB2BIDI                  =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2BQTIME                =                 ** BLANK or 1 - MAX
+*DB2BQTRY                 =                 ** BLANK or 0 - MAX
+*DB2CHGPWD_EEE            =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2CHKPTR                =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2CLIINIPATH            =                 ** BLANK or char(260)
+*DB2CODEPAGE              =                 ** BLANK or 0 - MAX
+*DB2COMM                  =                 ** BLANK or TCPIP
+*DB2COUNTRY               =                 ** BLANK or 1 - 999
+*DB2DBDFT                 =                 ** BLANK or char(8)
+*DB2DEFPREP               =                 ** BLANK, ALL, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2ENVLIST               =                 ** BLANK or char()
+*DB2IQTIME                =                 ** BLANK or 1 - MAX
+*DB2LDAPCACHE             =                 ** YES or NO
+*DB2LDAPHOST              =                 ** BLANK or char()
+*DB2LDAP_BASEDN           =                 ** BLANK or char()
+*DB2LDAP_CLIENT_PROVIDER  =                 ** BLANK, MICROSOFT or IBM
+*DB2LIBPATH               =                 ** BLANK or char()
+*DB2LOADREC               =                 ** BLANK or char(1023)
+*DB2LOCK_TO_RB            =                 ** BLANK or STATEMENT
+*DB2NOEXITLIST            =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2OLDEVMON              =                 ** BLANK or char()
+*DB2OPTIONS               =                 ** BLANK or -/+[a,c,e[c,s],n,o,p,s,t,v,w,x] and/or -[f,l,r,z]filename
+*DB2_OPTSTATS_LOG         =                 ** OFF or ON with parameters {NUM | SIZE | NAME | DIR}
+*DB2PRIORITIES            =                 ** BLANK or char()
+*DB2RQTIME                =                 ** BLANK or 1 - MAX
+*DB2_SET_MAX_CONTAINER_SIZE =               ** -1 (no limit) or any integer greater than 64MB
+*DB2SORT                  =                 ** BLANK or char(1023)
+*DB2SYSTEM                =                 ** char(64)
+*DB2_SYSTEM_MONITOR_SETTINGS =              ** Controls parameters OLD_CPU_USAGE and DISABLE_CPU_USAGE with ON or OFF values
+*DB2_ENABLE_LDAP          =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_FORCE_NLS_CACHE      =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2_NUM_FAILOVER_NODES   =                 ** BLANK or 0 - 999
+*DB2_SORT_AFTER_TQ        =                 ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F
+*DB2INSTOWNER             =                 ** BLANK or char(30)
+*DB2DBMSADDR              =                 ** BLANK or char(10)
+*DB2_DISABLE_FLUSH_LOG    =                 ** BLANK or ON, OFF
+*DB2_LIC_STAT_SIZE        =                 ** BLANK or 0 - 32767
+*DB2LOCALE                =                 ** BLANK or YES, NO
+*DB2NODE                  =                 ** BLANK or YES NO
+*DB2_USE_PAGE_CONTAINER_TAG =               ** BLANK or ON
+*DB2TCPCONNMGRS           =                 ** BLANK or 1 - 8
+*DB2_PARTITIONEDLOAD_DEFAULT =              ** BLANK or YES, NO
+*DB2_INLIST_TO_NLJN       =                 ** BLANK or YES, NO
+*DB2_SELECTIVITY          =                 ** BLANK or YES, NO
+*DB2_REDUCED_OPTIMIZATION =                 ** BLANK, DISABLE, YES, NO, 0 - MAX
+*DB2_BINSORT              =                 ** BLANK or YES, NO
+*DB2BPVARS                =                 ** BLANK or char()
+*DB2_ENABLE_BUFPD         =                 ** BLANK or ON, OFF
+*DB2_EVMON_EVENT_LIST_SIZE = 0              ** A value specified in KB, MB or GB but limited by the available memory from the monitor heap
+*DB2_EXTENDED_OPTIMIZATION =                ** BLANK or ON, OFF
+*DB2FODC                  = Concatenation of all FODC parameters: CORELIMIT, DUMPCORE, DUMDIR and MEMSCAN; and their values ** CORELIMIT, DUMPCORE, DUMPDIR and MEMSCAN parameters are set different for Unix and Windows
+*DB2MAXFSCRSEARCH         =                 ** BLANK or -1, 1 - 33554
+*DB2MEMDISCLAIM           =                 ** BLANK or YES, NO
+*DB2_VENDOR_INI           =                 ** BLANK or char()
+*DB2_XBSA_LIBRARY         =                 ** BLANK or char()
+*DB2LDAP_SEARCH_SCOPE     =                 ** BLANK LOCAL DOMAIN GLOBAL
+*DB2MEMMAXFREE            =                 ** BLANK or char()
+*DB2NTMEMSIZE             =                 ** BLANK or char()
+*DB2_OVERRIDE_BPF         =                 ** BLANK or 1 - MAX
+*DB2_DJ_COMM              =                 ** BLANK or char()
+*DB2ADMINSERVER           =                 ** BLANK or char(64)
+*DB2_PINNED_BP            = NO              ** YES or NO
+*DB2REMOTEPREG            =                 ** BLANK or char(64)
+*DB2_ANTIJOIN             =                 ** BLANK or YES, NO, EXTEND
+*DB2_COLLECT_TS_REC_INFO  =                 ** BLANK or YES, NO
+*DB2PROCESSORS            =                 ** BLANK or 1 - MAX
+*DB2ASSUMEUPDATE          =                 ** BLANK or ON, OFF
+*DB2_SKIPDELETED          =                 ** BLANK or ON, OFF
+*DB2_SQLROUTINE_PREPOPTS  =                 ** BLANK or char()
+*DB2_INDEX_TYPE2          =                 ** BLANK or ON, OFF
+*DB2_APM_PERFORMANCE      =                 ** BLANK or ON, OFF
+*DB2_FMP_COMM_HEAPSZ      =                 ** BLANK or 1 - MAX
+*DB2_EVALUNCOMMITTED      =                 ** BLANK or YES, NO
+*DB2_NO_FORK_CHECK        =                 ** BLANK or ON, OFF
+*DB2_KEEPTABLELOCK        =                 ** BLANK or ON, OFF
+*DB2GRAPHICUNICODESERVER  =                 ** BLANK or ON, OFF
+*DB2_MINIMIZE_LISTPREFETCH =                ** BLANK or YES, NO
+*DB2_TRUSTED_BINDIN       =                 ** BLANK or ON, OFF, CHECK
+*DB2_CLPPROMPT            =                 ** BLANK or char(99)
+*DB2_FORCE_APP_ON_MAX_LOG =                 ** BLANK or TRUE, FALSE
+*DB2_CLP_EDITOR           =                 ** BLANK or char()
+*DB2_CLP_HISTSIZE         =                 ** BLANK or 1 - 500
+*DB2_LOAD_COPY_NO_OVERRIDE =                ** BLANK or LOCAL, DOMAIN, GLOBAL
+*DB2_MAX_NON_TABLE_LOCKS  =                 ** BLANK or 1 - MAX
+*DB2_USE_ALTERNATE_PAGE_CLEANING =          ** BLANK or ON, OFF
+*DB2_SCATTERED_IO         =                 ** BLANK or ON, OFF
+*DB2_NO_MPFA_FOR_NEW_DB   =                 ** BLANK or YES, NO
+*DB2_OBJECT_TABLE_ENTRIES =                 ** BLANK or 0 - 50000
+*DB2_VIEW_REOPT_VALUES    =                 ** BLANK or YES, NO
+*DB2_SELUDI_COMM_BUFFER   =                 ** BLANK or ON, OFF
+*DB2_ENABLE_AUTOCONFIG_DEFAULT =            ** BLANK, YES, NO
+*DB2_OPT_MAX_TEMP_SIZE    =                 ** BLANK or 0 - MAX
+*DB2RCMD_LEGACY_MODE      =                 ** YES, ON, TRUE, 1 or NO, OFF, FALSE, 0
+*DB2_LARGE_PAGE_MEM       =                 ** *, DB
+*DB2_MAX_LOB_BLOCK_SIZE   = 0               ** 0 - 21487483647
+*DB2RSHCMD                = rsh             ** Values are a full path name to rsh, or ssh
+*DB2AUTH                  =                 ** BLANK or char()
+*DB2CONNECT_DISCONNECT_ON_INTERRUPT = NO    ** YES, TRUE, 1 or NO, FALSE, 0
+*DB2CONNECT_ENABLE_EURO_CODEPAGE =          ** BLANK or char()
+*DB2FCMCOMM               = TCPIP4          ** TCPIP4 or TCPIP6
+*DB2FFDC                  =                 ** BLANK, ON, CORE:OFF
+*DB2LOADFLAGS             =                 ** BLANK or char()
+*DB2RSHTIMEOUT            = 30              ** or 1 - 120
+*DB2TCP_CLIENT_CONTIMEOUT = 0               ** 0 - 32767
+*DB2TCP_CLIENT_RCVTIMEOUT = 0               ** 0 - 32767
+*DB2TRC_DEF_BUFFSIZE      =                 ** BLANK or char()
+*DB2YIELD                 =                 ** BLANK or char()
+*DB2_ASYNC_IO_MAXFILOP    = MAXFILOP        ** MAXFILOP - MAX
+*DB2_BAR_AUTONOMIC_DISABLE =                ** BLANK or char()
+*DB2_CONNRETRIES_INTERVAL =                 ** BLANK or char()
+*DB2_DXX_PATHS_ALLOWED_READ =               ** BLANK or char()
+*DB2_DXX_PATHS_ALLOWED_WRITE =              ** BLANK or char()
+*DB2_HADR_BUF_SIZE        = 2*LOGBUFSZ      ** BLANK or 0 - MAX
+*DB2_LOGGING_DETAIL       =                 ** BLANK or char()
+*DB2_MAP_XML_AS_CLOB_FOR_DLC = NO           ** YES, NO
+*DB2_MAX_CLIENT_CONNRETRIES =               ** BLANK or char()
+*DB2_MAX_INACT_STMTS      =                 ** 0 - 4294967296
+*DB2_MDC_ROLLOUT          = IMMEDIATE       ** DEFER, IMMEDIATE or OFF
+*DB2_MINIMUM_CLIENT_LEVEL =                 ** BLANK or char()
+*DB2_NUM_CKPW_DAEMONS     = 3               ** 0 - 100
+*DB2_RESOURCE_POLICY      =                 ** valid path to configuration file
+*DB2_SKIPINSERTED         = OFF             ** ON, OFF
+*DB2_SMS_TRUNC_TMPTABLE_THRESH =            ** -1, 0-n where n is the number of extents per container that are to be maintained
+*DB2_SNAPSHOT_NOAUTH      =                 ** BLANK or char()
+*DB2_TAPEMGR_TAPE_EXPIRATION =              ** BLANK or char()
+*DB2_DJ_COMM              = OFF             ** ON or OFF
+*DB2_UPDDBCFG_SINGLE_DBPARTITION =          ** YES, 1, TRUE or NO, 0, FALSE
+*DB2_USE_DB2JCCT2_JROUTINE =                ** ON, YES, 1, TRUE or OFF, NO, 0, FALSE
+*DB2_UTIL_MSGPATH         = instanceName/tmp directory ** BLANK or char()
+*DB2_WORKLOAD             = Not set         ** BLANK, SAP
+
+** Database Settings
+** -----------------
+*DATABASE                 =                 ** databas1: char(8) no spaces - this is the prefix for this DB set
+*databas1.DATABASE_NAME   =                 ** favorateDB: char(8) no spaces - this is the real database
+*databas1.INSTANCE        =                 ** db2inst1: char(8)  no spaces - one value of INSTANCE keyword
+*databas1.ALIAS           =                 ** alias of databas1: char(8) no spaces and can not start with SYS, DBM or IBM
+*databas1.LOCATION        =                 ** local, remote, LOCAL or REMOTE; For client only product use remote or REMOTE
+*databas1.SYSTEM_NAME     =                 ** some remote host char(64) no spaces: for LOCATION=remote only
+*databas1.AUTHENTICATION  =                 ** CLIENT, SERVER, SERVER_ENCRYPT: optional
+*databas1.PATH            =                 ** the directory for the database: optional
+*databas1.SVCENAME        =                 ** service1: for remote LOCATION only
+*databas1.USERNAME        =                 ** db2user: char(8)  no spaces
+*databas1.PASSWORD        =                 ** db2pwd: char(8)  no spaces
+
+** Contact List Settings
+** ---------------------
+** Valid for root installation only
+*DAS_CONTACT_LIST         =                 ** LOCAL or REMOTE
+*DAS_CONTACT_LIST_HOSTNAME =                ** hostname for REMOTE CONTACT_LIST
+*DAS_CONTACT_LIST_USERNAME =                ** contactL: char(8)  no spaces
+*DAS_CONTACT_LIST_DOMAIN  =                 ** contactLdomain: char(14)
+*DAS_CONTACT_LIST_PASSWORD =                ** contactLpasswd: char(14)
+
+** Contact Information For Each Instance
+** -------------------------------------
+** Valid for root installation only
+*CONTACT                  = contact1        ** contact1, char(80)
+*contact1.NEW_CONTACT     = YES             ** YES or NO
+*contact1.CONTACT_NAME    =                 ** userName
+*contact1.EMAIL           =                 ** sysadmin@yourcompany.com - email address where the notification should be sent
+*contact1.PAGER           =                 ** YES or NO
+*contact1.INSTANCE        =                 ** DB2_INST - instance that this contact belongs to, this should be one of the values of keyword INSTANCE.
+
+** Information Center Settings
+** ---------------------------
+** The default location for accessing the DB2 documentation is the IBM website.
+** Only edit this section if you wish to access DB2 documentation from a
+** different location, such as your local computer or an intranet server.
+
+** The following DB2_DOCHOST keyword is used to specify where the Information
+** Center server is installed. For example, "localhost" for the local computer.
+*DB2_DOCHOST              =                 ** Any valid hostname
+
+** The following DB2_DOCPORT keyword is used to specify the port number of the
+** Information Center server.
+*DB2_DOCPORT              =                 ** 1024-65535
+
+** (Valid for root installation only) Tivoli SA MP
+** -----------------------------------------------
+** This keyword has been deprecated. The IBM Tivoli System Automation for
+** Multiplatforms Base Component (Tivoli SA MP) will be automatically installed
+** for you if you specified TYPICAL as the installation type.  If an older
+** version of the Tivoli SA MP is already installed it will be updated to the
+** version on the DB2 installation media, if that update is supported. The
+** Tivoli SA MP will only be installed or updated if you have the proper
+** license.
+*INSTALL_TSAMP            = NO              ** YES or NO. This keyword is deprecated. Valid for root installation only.
+
+** (Valid for root installation only) Pacemaker
+** --------------------------------------------
+** The Pacemaker (PCMK) will be automatically installed for you if you
+** specified TYPICAL as the installation type. If an older version of the
+** Pacemaker is already installed it will be updated to the version on the Db2
+** installation media, if that update is supported.
+*INSTALL_PCMK             = NO              ** YES or NO. Valid for root installation only.
+
+** (Valid for root installation only) Global Secure ToolKit
+** --------------------------------------------------------
+** The Global Secure ToolKit will be automatically installed for you. If you
+** don't want to install it, set the value to NO.
+*INSTALL_ENCRYPTION       = YES             ** YES or NO.Valid for root installation only.
+
diff --git a/sources/db2.in/c3d/firstboot/scripts/01_setupnetworking.sh b/sources/db2.in/c3d/firstboot/scripts/01_setupnetworking.sh
new file mode 100755 (executable)
index 0000000..f615d4d
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+
+export PAGER=
+
+
+sleep 1
+systemctl --quiet is-active NetworkManager.service
+NM_RC=$?
+CYCLES_WAITED=0
+while [ $NM_RC -ne 0 ]
+do
+    if [ $CYCLES_WAITED -ge 10 ]
+    then
+        exit 1
+    fi
+    if [ $CYCLES_WAITED -eq 0 ]
+    then
+        echo -n "Waiting for NetworkManager"
+    fi
+    echo -n .
+    sleep 1
+    CYCLES_WAITED=$(( $CYCLES_WAITED + 1 ))
+    systemctl --quiet is-active NetworkManager.service
+    NM_RC=$?
+done
+[ $CYCLES_WAITED -gt 0 ] && echo
+
+# wait for the two network connections to come up
+CONNECTION_DEVICES_UP=$(nmcli --terse connection show \
+                            | grep --invert-match ':$' | wc -l)
+CYCLES_WAITED=0
+while [ $CONNECTION_DEVICES_UP -lt 2 ]
+do
+    if [ $CYCLES_WAITED -ge 10 ]
+    then
+        nmcli connection show
+        exit 1
+    fi
+    if [ $CYCLES_WAITED -eq 0 ]
+    then
+        echo -n "Waiting for the network connection"
+    fi
+    echo -n .
+    sleep 1
+    CYCLES_WAITED=$(( $CYCLES_WAITED + 1 ))
+    CONNECTION_DEVICES_UP=$(nmcli --terse connection show \
+                                | grep --invert-match ':$' | wc -l)
+done
+[ $CYCLES_WAITED -gt 0 ] && echo
+
+CONNECTIONS=$(nmcli --terse connection show | wc -l)
+if [ $CONNECTIONS -ne 2 ]
+then
+    echo "Number of connections: $CONNECTIONS instead of 2" >&2
+    exit 1
+fi
+
+CONNECTION_LINE=$(nmcli --terse connection show | grep ':eth0$')
+CONNECTION_UUID=$(echo $CONNECTION_LINE | cut -f 2 -d ':')
+CONNECTION_DEVICE=$(echo $CONNECTION_LINE | cut -f 4 -d ':')
+
+nmcli connection delete uuid "$CONNECTION_UUID"
+
+nmcli connection add \
+    connection.autoconnect yes \
+    connection.id internal \
+    connection.interface-name $CONNECTION_DEVICE \
+    connection.type 802-3-ethernet \
+    ipv4.addresses "10.228.109.166/16" \
+    ipv4.dns "10.228.109.159, 10.228.92.159" \
+    ipv4.dns-search "in.useribm.hu" \
+    ipv4.gateway "10.228.109.254" \
+    ipv4.method "manual" \
+    ipv6.addresses "2001:1aa1:000a:7dae:000c:18ff:fe03:6da6/64" \
+    ipv6.dns "2001:1aa1:000a:7dae:000c:18ff:fe03:6d9f, 2001:1aa1:000a:7dae:000c:18ff:fe03:5c9f" \
+    ipv6.dns-search "in.useribm.hu" \
+    ipv6.gateway "2001:1aa1:000a:7dae:000c:18ff:fe03:6dfe" \
+    ipv6.method "manual" \
+    save yes
+
+nmcli connection show
+
+hostnamectl hostname db2.in.useribm.hu
+hostnamectl
diff --git a/sources/db2.in/c3d/firstboot/scripts/02_settimezone.sh b/sources/db2.in/c3d/firstboot/scripts/02_settimezone.sh
new file mode 100755 (executable)
index 0000000..0ec1bcc
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+
+sleep 1
+systemctl --quiet is-active dbus.service
+DBUS_RC=$?
+WAITED=0
+while [ $DBUS_RC -ne 0 ]
+do
+    echo -n .
+    sleep 1
+    WAITED=1
+    systemctl --quiet is-active dbus.service
+    DBUS_RC=$?
+done
+[ $WAITED -ne 0 ] && echo
+timedatectl set-timezone Europe/Budapest
diff --git a/sources/db2.in/c3d/firstboot/scripts/03_addusers.sh b/sources/db2.in/c3d/firstboot/scripts/03_addusers.sh
new file mode 100755 (executable)
index 0000000..56ef62c
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+
+REAL_PATH=$(realpath $(dirname $0))
+DATA_PATH=$(realpath $REAL_PATH/../data)
+
+
+groupadd --gid 11982 db2grp
+useradd --uid 11982 --gid 11982 db2admin
+
+groupadd --gid 13347 db2fgrp
+useradd --uid 13347 --gid 13347 db2fncd
+
+while read UP
+do
+    echo $UP | chpasswd
+done <$DATA_PATH/chpasswd.data
diff --git a/sources/db2.in/c3d/firstboot/scripts/10_installdb2.sh b/sources/db2.in/c3d/firstboot/scripts/10_installdb2.sh
new file mode 100755 (executable)
index 0000000..b657a7a
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+
+REAL_PATH=$(realpath $(dirname $0))
+DATA_PATH=$(realpath $REAL_PATH/../data)
+
+
+/data/v11.5.8/db2setup -r $DATA_PATH/db2server.rsp
diff --git a/sources/db2.in/c3d/firstboot/scripts/20_setupdb2.sh b/sources/db2.in/c3d/firstboot/scripts/20_setupdb2.sh
new file mode 100755 (executable)
index 0000000..10f754b
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+
+REAL_PATH=$(realpath $(dirname $0))
+DATA_PATH=$(realpath $REAL_PATH/../data)
+
+
+su --login db2admin --command "db2iauto -on db2admin"
+/usr/local/bin/catalog-objects.sh
diff --git a/sources/db2.in/c3d/firstboot/scripts/90_setupservices.sh b/sources/db2.in/c3d/firstboot/scripts/90_setupservices.sh
new file mode 100755 (executable)
index 0000000..5cb3ae8
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+
+#systemctl enable named.service
+#systemctl start named.service
+systemctl enable NetworkManager-wait-online.service
+systemctl start NetworkManager-wait-online.service
+
+systemctl enable logrotate.timer
+systemctl start logrotate.timer
diff --git a/sources/db2.in/c3d/mode.txt b/sources/db2.in/c3d/mode.txt
new file mode 100644 (file)
index 0000000..507117b
--- /dev/null
@@ -0,0 +1,7 @@
+# mode file (relative to /c3d)
+755 firstboot/scripts/*.sh
+600 postinstall/install-data/etc/ssh/ssh_host_*_key
+644 postinstall/install-data/etc/ssh/ssh_host_*_key.pub
+600 postinstall/install-data/etc/ssh/sshd_config.d/*.conf
+755 postinstall/install-data/usr/local/bin/*.sh
+755 postinstall/scripts/*.sh
diff --git a/sources/db2.in/c3d/owner.txt b/sources/db2.in/c3d/owner.txt
new file mode 100644 (file)
index 0000000..49158bf
--- /dev/null
@@ -0,0 +1 @@
+# owner file (relative to /c3d)
diff --git a/sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key b/sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key
new file mode 100644 (file)
index 0000000..383969b
--- /dev/null
@@ -0,0 +1,7 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
+QyNTUxOQAAACCNiaqhmsNw+NTH5SPFVUDvuylpboFBfr6od7h7BA7aMAAAAIjNi5GkzYuR
+pAAAAAtzc2gtZWQyNTUxOQAAACCNiaqhmsNw+NTH5SPFVUDvuylpboFBfr6od7h7BA7aMA
+AAAED2vrG+qg+vTD+/u79ygXT6qLkXwG4H0Wev6Iw/mynNMI2JqqGaw3D41MflI8VVQO+7
+KWlugUF+vqh3uHsEDtowAAAAAAECAwQF
+-----END OPENSSH PRIVATE KEY-----
diff --git a/sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key-cert.pub b/sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key-cert.pub
new file mode 100644 (file)
index 0000000..bf38c2e
--- /dev/null
@@ -0,0 +1 @@
+ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIHFMOowUWwIjly9imfdte+ykKn3VCT/yaMPU+BCCHVHUAAAAII2JqqGaw3D41MflI8VVQO+7KWlugUF+vqh3uHsEDtowAAAAAAAAAAAAAAACAAAAEWRiMi5pbi51c2VyaWJtLmh1AAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIEXYIIzrUSx8/BQ6/ttkSr5oEyB5F5Yg4bp1DOkqDON9AAAAUwAAAAtzc2gtZWQyNTUxOQAAAEAp5N/fBde6RZbJx+KiOQpAPNFUTH4AkYhp0ID+lW1DZpN0hmPQHaH5hVym2NCYoW8oYwSXwIqa2Iao+RBJf/4F ssh_host_ed25519_key.pub
diff --git a/sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key.pub b/sources/db2.in/c3d/postinstall/install-data/etc/ssh/ssh_host_ed25519_key.pub
new file mode 100644 (file)
index 0000000..a4a1251
--- /dev/null
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII2JqqGaw3D41MflI8VVQO+7KWlugUF+vqh3uHsEDtow 
diff --git a/sources/db2.in/c3d/postinstall/install-data/etc/ssh/sshd_config.d/99-host-cert.conf b/sources/db2.in/c3d/postinstall/install-data/etc/ssh/sshd_config.d/99-host-cert.conf
new file mode 100644 (file)
index 0000000..173b545
--- /dev/null
@@ -0,0 +1 @@
+HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub
diff --git a/sources/db2.in/c3d/postinstall/install-data/etc/ssh/sshd_config.d/99-user-CA.conf b/sources/db2.in/c3d/postinstall/install-data/etc/ssh/sshd_config.d/99-user-CA.conf
new file mode 100644 (file)
index 0000000..115882b
--- /dev/null
@@ -0,0 +1 @@
+TrustedUserCAKeys /etc/ssh/trusted-user-ca.keys
diff --git a/sources/db2.in/c3d/postinstall/install-data/etc/ssh/trusted-user-ca.keys b/sources/db2.in/c3d/postinstall/install-data/etc/ssh/trusted-user-ca.keys
new file mode 100644 (file)
index 0000000..84d19e3
--- /dev/null
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICcf/XXU8dNVtbveGmwbdnRJfYIItzxKmgRkzlp0k6r5 user-CA
diff --git a/sources/db2.in/c3d/postinstall/install-data/usr/local/bin/catalog-objects.sh b/sources/db2.in/c3d/postinstall/install-data/usr/local/bin/catalog-objects.sh
new file mode 100755 (executable)
index 0000000..5266e79
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+
+POSTINSTALL_DATA_PATH=/c3d/postinstall/data
+POSTINSTALL_SCP_PATH=/c3d/postinstall/scp
+RESTORE_PATH=$(mktemp --directory)
+TMP_PATH=$(dirname $RESTORE_PATH)
+
+
+if [ ! -f $POSTINSTALL_SCP_PATH/db2.tar ]
+then
+    echo "No object list file found, exiting" >&2
+    rm --force --recursive $RESTORE_PATH
+    exit 1
+fi
+
+tar --extract \
+    --directory=$RESTORE_PATH \
+    --file $POSTINSTALL_SCP_PATH/db2.tar
+
+
+NODE_DIRECTORY=$RESTORE_PATH/backup/node.directory
+cat $NODE_DIRECTORY
+NODES_EXIST=$(grep --count 'Number of entries in the directory' $NODE_DIRECTORY)
+if [ $NODES_EXIST -eq 1 ]
+then
+    NODE_COUNT=$(grep 'Number of entries in the directory' $NODE_DIRECTORY \
+                     | cut -f 2 -d '=' | tr -d ' ')
+    CURRENT_NODE=1
+    while [ $CURRENT_NODE -le $NODE_COUNT ]
+    do
+        NODE_NAME=$(grep --after-context=7 "Node $CURRENT_NODE entry:" $NODE_DIRECTORY \
+                        | grep 'Node name' | cut -f 2 -d '=' | tr -d ' ')
+        COMMENT=$(grep --after-context=7 "Node $CURRENT_NODE entry:" $NODE_DIRECTORY \
+                        | grep 'Comment' | cut -f 2 -d '=' | sed 's/^ //')
+        PROTOCOL=$(grep --after-context=7 "Node $CURRENT_NODE entry:" $NODE_DIRECTORY \
+                       | grep 'Protocol' | cut -f 2 -d '=' | tr -d ' ')
+        HOSTNAME=$(grep --after-context=7 "Node $CURRENT_NODE entry:" $NODE_DIRECTORY \
+                       | grep 'Hostname' | cut -f 2 -d '=' | tr -d ' ')
+        SERVICE_NAME=$(grep --after-context=7 "Node $CURRENT_NODE entry:" $NODE_DIRECTORY \
+                           | grep 'Service name' | cut -f 2 -d '=' | tr -d ' ')
+        COMMAND="db2 catalog $PROTOCOL node $NODE_NAME"
+        COMMAND="$COMMAND remote $HOSTNAME server $SERVICE_NAME"
+        if [ -n "$COMMENT" ]
+        then
+            COMMAND="$COMMAND with \'\"$COMMENT\"\'"
+        fi
+        su --login db2admin --command "$COMMAND"
+        CURRENT_NODE=$(( $CURRENT_NODE + 1 ))
+    done
+else
+    echo "No nodes exist"
+fi
+
+DATABASE_DIRECTORY=$RESTORE_PATH/backup/database.directory
+cat $DATABASE_DIRECTORY
+DATABASES_EXIST=$(grep --count 'Number of entries in the directory' $DATABASE_DIRECTORY)
+if [ $DATABASES_EXIST -eq 1 ]
+then
+    DATABASE_COUNT=$(grep 'Number of entries in the directory' $DATABASE_DIRECTORY \
+                         | cut -f 2 -d '=' | tr -d ' ')
+    CURRENT_DATABASE=1
+    while [ $CURRENT_DATABASE -le $DATABASE_COUNT ]
+    do
+        DATABASE_ALIAS=$(grep --after-context=10 \
+                             "Database $CURRENT_DATABASE entry:" \
+                             $DATABASE_DIRECTORY \
+                             | grep 'Database alias' \
+                             | cut -f 2 -d '=' | tr -d ' ')
+        DATABASE_NAME=$(grep --after-context=10 \
+                            "Database $CURRENT_DATABASE entry:" \
+                            $DATABASE_DIRECTORY \
+                            | grep 'Database name' \
+                            | cut -f 2 -d '=' | tr -d ' ')
+        LOCAL_DB_DIRECTORY=$(grep --after-context=10 \
+                                 "Database $CURRENT_DATABASE entry:" \
+                                 $DATABASE_DIRECTORY \
+                                 | grep 'Local database directory' \
+                                 | cut -f 2 -d '=' | tr -d ' ')
+        NODE_NAME=$(grep --after-context=10 \
+                        "Database $CURRENT_DATABASE entry:" \
+                        $DATABASE_DIRECTORY \
+                        | grep 'Node name' \
+                        | cut -f 2 -d '=' | tr -d ' ')
+        COMMENT=$(grep --after-context=10 \
+                      "Database $CURRENT_DATABASE entry:" \
+                      $DATABASE_DIRECTORY \
+                      | grep 'Comment' \
+                      | cut -f 2 -d '=' | sed 's/^ //')
+        ENTRY_TYPE=$(grep --after-context=10 \
+                         "Database $CURRENT_DATABASE entry:" \
+                         $DATABASE_DIRECTORY \
+                         | grep 'Directory entry type' \
+                         | cut -f 2 -d '=' | tr -d ' ')
+        COMMAND="db2 catalog database $DATABASE_NAME as $DATABASE_ALIAS"
+        case "$ENTRY_TYPE" in
+            "Indirect")
+                COMMAND="$COMMAND on $LOCAL_DB_DIRECTORY"
+                ;;
+            "Remote")
+                COMMAND="$COMMAND at node $NODE_NAME"
+                ;;
+            *)
+                echo "Invalid entry type: $ENTRY_TYPE" >&2
+                exit 1
+                ;;
+        esac
+        if [ -n "$COMMENT" ]
+        then
+            COMMAND="$COMMAND with \'\"$COMMENT\"\'"
+        fi
+        su --login db2admin --command "$COMMAND"
+        CURRENT_DATABASE=$(( $CURRENT_DATABASE + 1 ))
+    done
+else
+    echo "No databases exist"
+fi
+
+rm --force --recursive $RESTORE_PATH
diff --git a/sources/db2.in/c3d/postinstall/install-data/usr/local/bin/list-objects.sh b/sources/db2.in/c3d/postinstall/install-data/usr/local/bin/list-objects.sh
new file mode 100755 (executable)
index 0000000..80474d5
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+set -x
+
+
+BACKUP_BASE=$(mktemp --directory)
+BACKUP_PATH=$BACKUP_BASE/backup
+TMP_PATH=$(dirname $BACKUP_BASE)
+
+
+mkdir $BACKUP_PATH
+su --login db2admin --command "db2 list database directory" >$BACKUP_PATH/database.directory
+su --login db2admin --command "db2 list node directory" >$BACKUP_PATH/node.directory
+
+echo "Creating backup archive"
+tar --create \
+    --directory=$BACKUP_BASE \
+    --file $TMP_PATH/db2.tar \
+    backup
+
+rm --force --recursive $BACKUP_BASE
diff --git a/sources/db2.in/c3d/postinstall/scp/copy.list b/sources/db2.in/c3d/postinstall/scp/copy.list
new file mode 100644 (file)
index 0000000..6c35814
--- /dev/null
@@ -0,0 +1,2 @@
+# source_host source_path
+db2.in.useribm.hu /tmp/db2.tar
diff --git a/sources/db2.in/c3d/postinstall/scripts/10_setupservices.sh b/sources/db2.in/c3d/postinstall/scripts/10_setupservices.sh
new file mode 100755 (executable)
index 0000000..15d7944
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+
+systemctl disable NetworkManager-wait-online.service
+
+systemctl disable logrotate.timer
diff --git a/sources/db2.in/c3d/postinstall/ssh/run.list b/sources/db2.in/c3d/postinstall/ssh/run.list
new file mode 100644 (file)
index 0000000..40221a4
--- /dev/null
@@ -0,0 +1,2 @@
+# target_host target_user target_executable
+db2.in.useribm.hu root /usr/local/bin/list-objects.sh
diff --git a/sources/db2.in/config b/sources/db2.in/config
new file mode 100644 (file)
index 0000000..02bd249
--- /dev/null
@@ -0,0 +1,26 @@
+lxc.include = /usr/share/lxc/config/common.conf
+
+lxc.arch = x86_64
+lxc.uts.name = db2.in.useribm.hu
+lxc.rootfs.path = __CONTAINER_PATH__/rootfs
+lxc.rootfs.options = idmap=container
+lxc.mount.auto = proc:rw sys:ro
+lxc.mount.entry = __CONTAINER_FILESYSTEMS_PATH__ data none bind,create=dir 0 0
+
+lxc.net.0.type = veth
+lxc.net.0.flags = up
+lxc.net.0.link = brci-dev
+lxc.net.0.hwaddr = 02:0c:18:03:6d:a6
+
+lxc.autodev = 1
+
+lxc.cgroup2.devices.allow = a
+
+lxc.idmap = u 0 100000 100000
+lxc.idmap = g 0 100000 100000
+
+lxc.signal.halt = SIGRTMIN+4
+
+lxc.start.auto = 1
+lxc.start.order = __CONTAINER_START_ORDER__
+lxc.start.delay = 5
diff --git a/sources/db2.in/envvars b/sources/db2.in/envvars
new file mode 100644 (file)
index 0000000..a1157dd
--- /dev/null
@@ -0,0 +1,21 @@
+DISTRIBUTION=Fedora
+DISTRIBUTION_VERSION=39
+SPEC_PACKAGES="bash-completion \
+               binutils \
+               cpp \
+               file \
+               gcc \
+               gcc-c++ \
+               kernel-devel \
+               ksh \
+               libaio \
+               libgomp \
+               libxcrypt-compat \
+               make \
+               numactl-libs \
+               openssh-clients \
+               openssh-server \
+               patch \
+               rpm \
+               sg3_utils \
+               which"