Version information
This version is compatible with:
- Puppet Enterprise 2025.2.x, 2025.1.x, 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, 2019.8.x
- Puppet >= 6.21.0 < 9.0.0
- , ,
Start using this module
Add this module to your Puppetfile:
mod 'tuxmea-forge_server', '0.5.4'
Learn more about managing modules with a PuppetfileDocumentation
forge_server
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with forge_server
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Overview
Manages Puppet Forge Server, a service for hosting a private puppet forge. It aims to support both the forge v1 and v3 api, cache directories and exposing modules from multiple paths. It installs as a ruby gem and requires ruby >=1.9.3
Module Description
This module installs the puppet-forge-server gem and runs the service as a daemon. All configurable parameters can be tweaked from this module.
Setup
What forge_server affects
- Unprivileged forge user to run the daemon
- Gem installation either in system ruby, Puppet ruby or specific SCL
- Manages the puppet-forge-server service
Setup Requirements
If installing in system ruby it must be at least version 1.9.3
Beginning with forge_server
Install the module:
puppet module install unibet-forge_server
Usage
To install puppet-forge-server:
class { '::forge_server': }
To install using Puppet ruby:
class { '::forge_server':
provider => 'puppet_gem',
}
Reference
The only "public" class is forge_server. See rdoc for usage.
Limitations
SCL won't work on non-EL distributions.
Development
Fork it and create a pull request
Reference
Table of Contents
Classes
forge_server
: == Class: forge_server A Puppet module to manage the Puppet Forge Server service === Authors Johan Lyheden johan.lyheden@unibet.com ===forge_server::config
: == Class: forge_server::config Manages configuration filesforge_server::files
: == Class: forge_server::files Directories needed by puppet-forge-serverforge_server::package
: == Class: forge_server::package Installs puppet-forge-serverforge_server::service
: == Class: forge_server::service Manages the puppet-forge-server daemonforge_server::user
: == Class: forge_server::user Manages the forge user
Defined types
forge_server::mkdir
: == Define: forge_server::mkdir Helper define to create parent folders
Classes
forge_server
== Class: forge_server
A Puppet module to manage the Puppet Forge Server service
=== Authors
Johan Lyheden johan.lyheden@unibet.com
=== Copyright
Copyright 2014 North Development AB
Examples
class { '::forge_server':
scl => 'ruby193'
}
Parameters
The following parameters are available in the forge_server
class:
package
scl
scl_install_timeout
scl_install_retries
service_enable
service_ensure
service_refresh
pidfile
port
bind_host
daemonize
module_directory
http_proxy
proxy
cache_basedir
log_dir
debug
forge_server_script
user
user_homedir
provider
package
Data type: String[1]
Optional override of package name
Default value: 'puppet-forge-server'
scl
Data type: Optional
Name of ruby scl environment, leave undef to use system ruby
Default value: undef
scl_install_timeout
Data type: Integer
If using ruby scl, the timeout in seconds to allow the gem installation to run
Default value: 300
scl_install_retries
Data type: Integer
If using ruby scl, the number of retries allowed if gem installation fails
Default value: 1
service_enable
Data type: Boolean
Boolean if service should be enabled on boot
Default value: true
service_ensure
Data type: Enum['running', 'stopped']
Service ensure state
Default value: 'running'
service_refresh
Data type: Boolean
Boolean if config changes and package changes should trigger service restart
Default value: true
pidfile
Data type: Stdlib::UnixPath
Path to pidfile
Default value: '/var/run/puppet-forge-server/forge-server.pid'
port
Data type: Integer
Port to bind to
Default value: 8080
bind_host
Data type: Stdlib::Host
IP or host to bind to
Default value: '127.0.0.1'
daemonize
Data type: Boolean
Boolean if should be daemonized
Default value: true
module_directory
Data type: Variant[Array[Stdlib::Unixpath], Stdlib::Unixpath]
Directory of modules to serve, can be an array of directories
Default value: '/var/lib/puppet-forge-server/modules'
http_proxy
Data type: Optional
Use proxyserver for http(s) connections
Default value: undef
proxy
Data type: Optional
Proxy requests to this upstream forge url
Default value: undef
cache_basedir
Data type: Stdlib::Unixpath
Path where to store proxied / cached modules
Default value: '/var/lib/puppet-forge-server/cache'
log_dir
Data type: Stdlib::Unixpath
Path to log directory
Default value: '/var/log/puppet-forge-server'
debug
Data type: Boolean
Boolean to toggle debug
Default value: false
forge_server_script
Data type: String[1]
Name of the script which runs the forge server, depending on ruby version installed
Default value: 'puppet-forge-server.ruby2.1'
user
Data type: String[1]
Name of the system user for forge-server
Default value: 'forge'
user_homedir
Data type: Stdlib::Unixpath
Path to the system users home dir
Default value: '/home/forge'
provider
Data type: Enum['gem', 'puppet_gem']
Whether to use system ruby or puppet ruby
Default value: 'gem'
forge_server::config
== Class: forge_server::config
Manages configuration files
forge_server::files
== Class: forge_server::files
Directories needed by puppet-forge-server
forge_server::package
== Class: forge_server::package
Installs puppet-forge-server
forge_server::service
== Class: forge_server::service
Manages the puppet-forge-server daemon
forge_server::user
== Class: forge_server::user
Manages the forge user
Defined types
forge_server::mkdir
== Define: forge_server::mkdir
Helper define to create parent folders
Dependencies
- puppetlabs-stdlib (>= 4.10.0 < 10.0.0)
Copyright 2014 North Development AB 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.