Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 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
- Puppet >= 7.0.0 < 9.0.0
- , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'treydock-globus', '10.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-globus
Overview
This module manages Globus Connect Server.
Supported Versions of Globus
Currently this module supports Globus 5.4, at least 5.4.61
Globus Version | Globus Puppet module versions |
---|---|
4.x | 3.x |
4.x & 5.3 | 4.x |
4.x & 5.4 | 5.x-9.x |
5.4 | 10.x |
Usage
Globus v5.4
The steps performed by this module are to install Globus and run the globus endpoint setup
and globus node setup
commands.
The following is the minimum parameters that must be passed to setup Globus v5.4.
class { 'globus':
display_name => 'REPLACE My Site Globus',
owner => 'REPLACE-user@example.com',
organization => 'REPLACE-My Site',
}
Globus CLI
To install the Globus CLI to /opt/globus-cli
and create symlink for executable at /usr/bin/globus
:
include globus::cli
Globus Timer
To install the Globus Timer CLI to /opt/globus-timer
and create symlink for executable at /usr/bin/globus-timer
:
include globus::timer
Globus SDK
To install the Globus SDK to /opt/globus-sdk
:
include globus::sdk
Facts
The globus_info
fact exposes the information stored in /var/lib/globus-connect-server/info.json
. Example:
# facter -p globus_info
{
endpoint_id => "1c6b6e6a-3791-4213-b3e6-00000001",
domain_name => "00000001.8443.data.globus.org",
manager_version => "5.4.11",
DATA_TYPE => "info#1.0.0",
client_id => "1c6b6e6a-3791-4213-b3e6-00000001",
api_version => "1.3.0"
}
Reference
http://treydock.github.io/puppet-module-globus/
Compatibility
Tested using
- RedHat/CentOS 7
- RedHat/Rocky 8 & 9
- Debian 11
- Ubuntu 20.04 & 22.04
Reference
Table of Contents
Classes
Public Classes
globus
: Manage Globusglobus::cli
: Manage Globus CLIglobus::sdk
: Manage Globus SDKglobus::timer
: Manage Globus Timer
Private Classes
globus::config
: Manage globus configsglobus::install
: manage Globus installglobus::python
: Manage Globus Python dependencyglobus::repo::deb
: Manage globus repoglobus::repo::el
: Manage globus repoglobus::service
: Manage Globus serviceglobus::user
: Manage globus user and group
Functions
Classes
globus
Manage Globus
Examples
Install and setup a Globus v5.4 endpoint
class { 'globus':
display_name => 'REPLACE My Site Globus',
owner => 'REPLACE-user@example.com',
}
Parameters
The following parameters are available in the globus
class:
release_url
gcs_repo_baseurl
gcs_repo_testing_baseurl
enable_testing_repos
extra_gridftp_settings
manage_service
run_setup_commands
manage_firewall
manage_epel
manage_user
group_gid
user_uid
package_name
display_name
project_id
project_admin
owner
organization
deployment_key
keywords
department
contact_email
contact_info
info_link
description
public
incoming_port_range
outgoing_port_range
ip_address
export_node
import_node
release_url
Data type: Variant[Stdlib::Httpsurl, Stdlib::Httpurl]
Release URL of Globus release RPM
Default value: 'https://downloads.globus.org/toolkit/globus-connect-server/globus-connect-server-repo-latest.noarch.rpm'
gcs_repo_baseurl
Data type: Variant[Stdlib::Httpsurl, Stdlib::Httpurl]
Globus Connect Server repo baseurl
Default value: "https://downloads.globus.org/globus-connect-server/stable/rpm/el/${facts['os']['release']['major']}/\$basearch/"
gcs_repo_testing_baseurl
Data type: Variant[Stdlib::Httpsurl, Stdlib::Httpurl]
Globus testing repo baseurl
Default value: "https://downloads.globus.org/globus-connect-server/testing/rpm/el/${facts['os']['release']['major']}/\$basearch/"
enable_testing_repos
Data type: Boolean
Boolean that sets if testing repos should be added
Default value: false
extra_gridftp_settings
Data type: Array
Additional settings for GridFTP
Default value: []
manage_service
Data type: Boolean
Boolean to set if globus-gridftp-server service is managed
Default value: true
run_setup_commands
Data type: Boolean
Boolean to set if the commands to setup Globus are run (v4 and v5)
Default value: true
manage_firewall
Data type: Boolean
Boolean to set if firewall rules are managed by this module
Default value: true
manage_epel
Data type: Boolean
Boolean to set if EPEL is managed by this repo
Default value: true
manage_user
Data type: Boolean
Boolean to set if the gcsweb user and group are managed by this module
Default value: true
group_gid
Data type: Optional[Integer]
The gcsweb group GID
Default value: undef
user_uid
Data type: Optional[Integer]
The gcsweb user UID
Default value: undef
package_name
Data type: String
Globus package name
Default value: 'globus-connect-server54'
display_name
Data type: String[1]
Display name to use when running 'globus-connect-server endpoint setup'
project_id
Data type: Optional[String[1]]
--project-id use when running 'globus-connect-server endpoint setup'
Default value: undef
project_admin
Data type: Optional[String[1]]
--project-admin use when running 'globus-connect-server endpoint setup'
Default value: undef
owner
Data type: String[1]
--owner use when running 'globus-connect-server endpoint setup'
organization
Data type: String[1]
--organization use when running 'globus-connect-server endpoint setup'
deployment_key
Data type: Stdlib::Absolutepath
--deployment-key use when running 'globus-connect-server endpoint setup' The parent directory of this path must be writable by gcsweb user
Default value: '/var/lib/globus-connect-server/gcs-manager/deployment-key.json'
keywords
Data type: Optional[Array]
--keywords use when running 'globus-connect-server endpoint setup'
Default value: undef
department
Data type: Optional[String]
--department use when running 'globus-connect-server endpoint setup'
Default value: undef
contact_email
Data type: Optional[String]
--contact-email use when running 'globus-connect-server endpoint setup'
Default value: undef
contact_info
Data type: Optional[String]
--contact-info use when running 'globus-connect-server endpoint setup'
Default value: undef
info_link
Data type: Optional[String]
--info-link use when running 'globus-connect-server endpoint setup'
Default value: undef
description
Data type: Optional[String]
--description use when running 'globus-connect-server endpoint setup'
Default value: undef
public
Data type: Boolean
When false pass --private flag to 'globus-connect-server endpoint setup'
Default value: true
incoming_port_range
Data type: Array[Stdlib::Port, 2, 2]
--incoming-port-range use when running 'globus-connect-server node setup'
Default value: [50000, 51000]
outgoing_port_range
Data type: Optional[Array[Stdlib::Port, 2, 2]]
--outgoing-port-range use when running 'globus-connect-server node setup'
Default value: undef
ip_address
Data type: Optional[Stdlib::IP::Address]
--ip-address use when running 'globus-connect-server node setup'
Default value: undef
export_node
Data type: Optional[Stdlib::Absolutepath]
--export-node use when running 'globus-connect-server node setup'
Default value: undef
import_node
Data type: Optional[Stdlib::Absolutepath]
--import-node use when running 'globus-connect-server node setup'
Default value: undef
globus::cli
Manage Globus CLI
Examples
include ::globus::cli
Parameters
The following parameters are available in the globus::cli
class:
ensure
Data type: String[1]
The ensure parameter for PIP installed CLI
Default value: 'present'
install_path
Data type: Stdlib::Absolutepath
Path to install Globus CLI virtualenv
Default value: '/opt/globus-cli'
manage_python
Data type: Boolean
Boolean to set if Python is managed by this class
Default value: true
globus::sdk
Manage Globus SDK
Examples
include globus::sdk
Parameters
The following parameters are available in the globus::sdk
class:
ensure
Data type: String[1]
The ensure parameter for PIP installed SDK
Default value: 'present'
install_path
Data type: Stdlib::Absolutepath
Path to install Globus CLI virtualenv
Default value: '/opt/globus-sdk'
manage_python
Data type: Boolean
Boolean to set if Python is managed by this class
Default value: true
globus::timer
Manage Globus Timer
Examples
include ::globus::timer
Parameters
The following parameters are available in the globus::timer
class:
ensure
Data type: String[1]
The ensure parameter for PIP installed globus-timer-cli
Default value: 'present'
install_path
Data type: Stdlib::Absolutepath
Path to install Globus Timer CLI virtualenv
Default value: '/opt/globus-timer'
manage_python
Data type: Boolean
Boolean to set if Python is managed by this class
Default value: true
Functions
globus::endpoint_setup_args
Type: Ruby 4.x API
The globus::endpoint_setup_args function.
globus::endpoint_setup_args(Hash $values)
The globus::endpoint_setup_args function.
Returns: Any
values
Data type: Hash
globus::node_setup_args
Type: Ruby 4.x API
The globus::node_setup_args function.
globus::node_setup_args(Hash $values)
The globus::node_setup_args function.
Returns: Any
values
Data type: Hash
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v10.0.0 (2023-11-29)
Changed
- Updates to support Globus Connect Server 5.4.61+ #41 (treydock)
- Major updates, see description #40 (treydock)
v9.0.0 (2023-03-17)
Changed
v8.0.0 (2022-08-10)
Changed
Added
Fixed
v7.0.0 (2022-04-05)
Changed
- Replace CentOS 8 with Rocky 8 #31 (treydock)
- Move globus-timer-cli into dedicated class to avoid conflicts with globus-cli #30 (treydock)
v6.0.1 (2022-04-04)
Fixed
v6.0.0 (2021-09-07)
Changed
Added
- Support globus::cli and globus::sdk on ubuntu 20.04 #28 (treydock)
- Update module dependency ranges #27 (treydock)
- Support installing globus-timer-cli #24 (treydock)
Fixed
v5.2.0 (2020-12-29)
Added
v5.1.0 (2020-12-29)
Added
v5.0.0 (2020-12-14)
Changed
- Rename repo baseurl parameters #18 (treydock)
- BREAKING Switch default to Globus v5.4, numerous parameter changes #17 (treydock)
Added
Fixed
v4.2.0 (2020-11-18)
Added
v4.1.0 (2019-11-14)
Added
v4.0.0 (2019-10-30)
Changed
Added
v3.0.1 (2019-07-09)
Fixed
v3.0.0 (2019-05-15)
Changed
Added
- Use PDK #8 (treydock)
- Use puppet strings #7 (treydock)
- Support Puppet 5 and 6 and update module dependency versions #5 (treydock)
2.1.0 (2019-05-14)
Added
- Use beaker4 and update some module development files #4 (treydock)
- add setting of MyProxy CaSubjectDN #3 (gtallan)
- Allow epel management to be disabled #2 (treydock)
2.0.1 (2017-10-28)
2.0.0 (2017-10-26)
1.0.0 (2017-10-26)
0.0.1 (2017-10-26)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 5.0.0 <10.0.0)
- puppetlabs/apt (>= 7.5.0 <10.0.0)
- puppetlabs/inifile (>= 1.0.0 <7.0.0)
- puppetlabs/firewall (>= 3.6.0 <7.0.0)
- puppet/epel (>= 3.0.0 <5.0.0)
- puppet/python (>= 6.3.0 <8.0.0)
Copyright (C) 2017 Trey Dockendorf treydock@gmail.com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.