Version information
This version is compatible with:
- Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x
- Puppet >= 6.21.0 < 8.0.0
- ,
Start using this module
Add this module to your Puppetfile:
mod 'arden-groundplex', '0.2.0-r1'
Learn more about managing modules with a PuppetfileDocumentation
groundplex
Table of Contents
- Description
- Setup - The basics of getting started with groundplex
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Description
This module installs and configures the Snaplogic Sidekick module on the current node. It also provides a baseline configuration for SAP connectivity and makes managing the additional service definitions relatively trivial.
Setup
What groundplex affects
Primarily does the following:
- Installs the snaplogic-sidecar
- Downloads and places the slpropgz file from your Snaplogic Organization
- Adds appropriate entries into
/etc/services
to support connections to SAP instances
Setup Requirements
You'll need to have the following components configured:
- snaplogic-sidekick package must be available to the node via your package manager
The following two puppet modules are also dependencies, however, the needed versions are not currently available on puppet forge.
- sap - needed for some type alias definitions
- etc_services - relevant for syntax changes introduced by this version
SAP Java Connector (Deprecated)
This process is no-longer needed as the Java Connector is bundled into the package.
- Download the latest version of the SAP Java Connector from their website
- Extract the archive and host the files
libsapjco3.jnilib
andlibsapjco3.so
on your puppetmaster or a server your nodes can reach easily. - Calculate the checksums of each file and provide both the source URL and the checksum to the groundplex class.
See Also
Also, if using SAP Java Connections consider deploying niping to your node for testing purposes.
Beginning with groundplex
The following puppet code defines a node as a standard execution engine (JCC).
class { 'groundplex':
slpropz_source => 'https://elastic.snaplogic.com/api/1/rest/plex/config/ExampleOrg/shared/Example?expires=1623084093&user_id=someuser%40example.com&_sl_authproxy_key=SomeRandomTokenStuff
server_type => 'JCC',
}
Usage
Puppet configuration including SAP connection definitions.
class { 'groundplex':
slpropz_source => 'https://elastic.snaplogic.com/api/1/rest/plex/config/ExampleOrg/shared/Example?expires=1623084093&user_id=someuser%40example.com&_sl_authproxy_key=SomeRandomTokenStuff'
server_type => 'JCC',
array_msg_servers => [
{
sid => 'DEV',
instance_class => 'cs-abap',
number => '01',
},
{
sid => 'QAS',
instance_class => 'cs-abap',
number => '01',
},
{
sid => 'PRD',
instance_class => 'cs-abap',
number => '01',
},
],
}
Hiera configuration including SAP connection definitions.
groundplex::slpropz_source: 'https://elastic.snaplogic.com/api/1/rest/plex/config/ExampleOrg/shared/Example?expires=1623084093&user_id=someuser%40example.com&_sl_authproxy_key=SomeRandomTokenStuff'
groundplex::server_type: 'JCC'
groundplex::array_msg_servers:
- sid: 'DEV'
instance_class: 'cs-abap'
number: '01'
- sid: 'QAS'
instance_class: 'cs-abap'
number: '01'
- sid: 'PRD'
instance_class: 'cs-abap'
number: '01'
Limitations
Currently only tested on RHEL/CentOS/Rocky 7 and 8.
Development
Make a pull request and we'll figure it out!
Reference
Table of Contents
Classes
groundplex
: Configures a Snaplogic on-premise execution engine.groundplex::config
: Performs zone creation and update operations. Internal classgroundplex::install
: Install the snaplogic-sidekick packagegroundplex::service
: Internal class which ensures the groundplex process is running
Data types
Groundplex::PackageVersion
: Specifies the installation mode of the packageGroundplex::PuppetUrl
: Matches puppet:// pathsGroundplex::SapMessageServer
Groundplex::Sapjco3Config
: Content definitions for SAP Java Connector library files.Groundplex::ServerType
: List of valid items to specify in /etc/security/limits.confGroundplex::SourceUrl
: matches any valid URL type
Classes
groundplex
Configures a Snaplogic on-premise execution engine.
Parameters
The following parameters are available in the groundplex
class:
service_user
Data type: String
Username of the snaplogic service account. Note that this is created by the installation of the agent RPM.
Default value: 'snapuser'
service_group
Data type: String
Group name of the snaplogic service user Note that this is created by the installation of the agent RPM.
Default value: 'snapuser'
server_type
Data type: Groundplex::ServerType
Determines the role this node will perform in the on-premise environment. Currently this is limited to the following:
JCC
- An execution engine node which performs actual pipeline workFeedMaster
- Manages the data feed for Ultra Pipelines
Default value: 'JCC'
slpropz_source
Data type: Stdlib::HTTPSUrl
Full URL including API parameters to the snaplogic configuration file associated with this snaplex. This is retrieved from the Downloads tab of the Snaplex Settings dialog in Manager -> Project Spaces -> shared -> Snaplexes.
package
Data type: String
Name of the snaplogic agent package. Note that this assumes the presence of a custom repo / mirror which also hosts this file.
Default value: 'snaplogic-sidekick'
array_msg_servers
Data type: Array[Groundplex::SapMessageserver]
List of SAP ms server intances which should be added to the /etc/services file on this groundplex host.
Default value: []
sapjco_config
Data type: Optional[Groundplex::Sapjco3Config]
When provided, this overrides the default bundled version of SAPJCo with a different version. See the type definition for detail.
Default value: undef
groundplex::config
Performs zone creation and update operations. Internal class
Parameters
The following parameters are available in the groundplex::config
class:
server_type
Data type: Groundplex::ServerType
Controls whether this node is setup as a execution engine, or a feedmaster.
Default value: $groundplex::server_type
service_user
Data type: String
Account which runs the groundplex engine.
Default value: $groundplex::service_user
service_group
Data type: String
Primary group of the account which runs the groundplex engine.
Default value: $groundplex::service_group
slpropz_source
Data type: Stdlib::HTTPSUrl
Source from which the config file is downloaded initially. Note that this URL has an authentication component and currently can't be automatically refreshed.
Default value: $groundplex::slpropz_source
array_msg_servers
Data type: Array[Groundplex::SapMessageServer]
List of SAP message servers which are allowed to connect to this snaplogic instance. These are primarily used to create entries in /etc/services
Default value: $groundplex::array_msg_servers
groundplex::install
Install the snaplogic-sidekick package
Parameters
The following parameters are available in the groundplex::install
class:
package
Data type: String
Name of the RPM package needed to install the groundplex sidekick
Default value: $groundplex::package
service_user
Data type: String
Account which owns the groundplex files.
Default value: $groundplex::service_user
service_group
Data type: String
Primary group of the account which owns the files.
Default value: $groundplex::service_group
sapjco_config
Data type: Optional[Groundplex::Sapjco3Config]
When provided, this overrides the libsapjco3.so file that is included in Snaplogic by default.
Default value: undef
package_version
Data type: Groundplex::PackageVersion
When specified this value controlles the version of the package deployed to the server. The default value ensures it is installed but will not automatically update it.
Default value: 'present'
groundplex::service
Internal class which ensures the groundplex process is running
Data types
Groundplex::PackageVersion
Specifies the installation mode of the package
Alias of Enum['present', 'latest']
Groundplex::PuppetUrl
Matches puppet:// paths
Alias of Pattern[/(?i:^puppet?:\/\/)/]
Groundplex::SapMessageServer
The Groundplex::SapMessageServer data type.
Alias of
Struct[sid => Sap::SID,
instance_class => Sap::InstClassSapCs,
number => Sap::InstNumber,
Optional[port_override] => Stdlib::Port]
Parameters
The following parameters are available in the Groundplex::SapMessageServer
data type:
sid
Matches an SAP instance number
instance_class
Used to determine the port set to use for the instance alias
number
Two digit instance number (e.g. 01) which is appended to the port prefix determined from the instance class.
port_override
Used in exceptional cases to override the port calculation
Groundplex::Sapjco3Config
Content definitions for SAP Java Connector library files.
Alias of
Struct[source => Groundplex::SourceURL,
sha256 => Pattern[/\h{64}/]]
Parameters
The following parameters are available in the Groundplex::Sapjco3Config
data type:
source
Some form of URL to a copy of the libsapjco3.so library.
sha256
A sha256 hash matching the content of the file referenced by $source.
Groundplex::ServerType
List of valid items to specify in /etc/security/limits.conf
Alias of Enum['JCC', 'FeedMaster']
Groundplex::SourceUrl
matches any valid URL type
Alias of Variant[Stdlib::Httpurl, Stdlib::Httpsurl, Groundplex::PuppetUrl]
Changelog
All notable changes to this project will be documented in this file.
0.2.0 (2024-07-26)
Feature (1 change)
Maintenance (1 change)
0.1.2 (2023-04-25)
Maintenance (2 changes)
- refactor: validation tweaks & fixtures bump (merge request)
- refactor: pdk version bump (merge request)
0.1.1 (2022-03-14)
Bugfix (1 change)
0.1.0 (2021-06-09)
Feature (3 changes)
- feat: sapjco3 libary deployment
- feat: retrieval of slpropz config file
- feat: configure jco etc service entries
Bugfix (2 changes)
Maintenance (3 changes)
Dependencies
- puppetlabs/stdlib (>= 6.6.0 < 9.0.0)
- puppet/firewalld (>= 4.4.0 < 5.0.0)
- arden/limits (>= 0.1.0 < 1.0.0)
- ccin2p3/etc_services (>= 2.0.0 < 3.0.0)
- pdemon/sap (>= 2.0.10 < 4.0.0)