Forge Home

helix

Manages Perforce Helix components: client, server, proxy and broker

18,613 downloads

8,196 latest version

4.3 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 0.2.2 (latest)
  • 0.2.1
  • 0.2.0
  • 0.1.1
  • 0.1.0
released May 9th 2016
This version is compatible with:
  • Puppet Enterprise >= 3.0.0 < 2017.0.0
  • Puppet >= 3.0.0 < 5.0.0
  • , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'alanpetersen-helix', '0.2.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add alanpetersen-helix
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install alanpetersen-helix --version 0.2.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

alanpetersen/helix — version 0.2.2 May 9th 2016

Perforce Helix

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.

Overview

This module is used to manage various Perforce Helix components that are available as Linux packages.

Module Description

Helix is a version management system that incorporates a combination of services.

Introduction to Perforce Helix

Specifically, this module manages the command-line tool (p4), server (p4d), broker (p4broker) and proxy (p4p). Detailed administration information for these components can be found in the online guides below:

Usage

Classes

helix::client

The simplest way to get the helix client installed is by including the class:

include helix::client

The class does provide a pkgname parameter that can be used to change the package that will be installed.

class { 'helix::client':
  pkgname => 'helix-cli',
}

The p4 executable is installed at /opt/perforce/bin/p4. For convenience, a symbolic link is created to make p4 available on everyone's path: /usr/bin/p4 -> /opt/perforce/bin/p4

helix::server

The simplest way to get the helix server installed is by including the class:

include helix::server

The class does provide a pkgname parameter that can be used to change the package that will be installed.

class { 'helix::server':
  pkgname => 'helix-p4d',
}

helix::broker

The simplest way to get the helix broker installed is by including the class:

include helix::broker

The class does provide a pkgname parameter that can be used to change the package that will be installed.

class { 'helix::server':
  pkgname => 'helix-broker',
}

helix::proxy

The simplest way to get the helix proxy installed is by including the class:

include helix::proxy

The class does provide a pkgname parameter that can be used to change the package that will be installed.

class { 'helix::proxy':
  pkgname => 'helix-proxy',
}

Defined Types

helix::server_instance

A p4d instance can be configured using the helix::server_instance type.

At a minimum, the p4port must be specified.

Before declaring a helix::server_instance, ensure that you include the helix::server base class (this will make sure the relevant packages are installed).

include helix::server

helix::server_instance { 'server1':
  p4port => '1666',
}

The following attributes are supported:

  • p4port (required) - the port for the server. This should be in P4PORT format protocol:hostname:port, for example ssl::1666
  • p4root (default /opt/perforce/servers/${title}/root) - location for the metadata databases
  • p4depots (default /opt/perforce/servers/${title}/depots) - location for the depot root
  • p4log (default /var/log/perforce/${title}_server.log) - location of the server log file
  • p4journal (default /opt/perforce/servers/${title}/checkpoints/journal) - location of the journal file
  • p4ssl (default /opt/perforce/servers/${title}/ssl) - directory that contains the ssl certificate and key
  • osuser (default perforce) - user owner of the server
  • osgroup (default perforce) - group owner of the server
  • ensure (default running) - state of the service [running, stopped]
  • enabled (default true) - flag indicating whether or not the service should be enabled
  • p4dctl (defaulted to OS-specific path) - path to the p4dctl executable

helix::broker_instance

A p4broker instance can be configured using the helix::broker_instance type.

At a minimum, the p4brokerport and p4brokertarget parameters must be specified.

Before declaring a helix::broker_instance, ensure that you include the helix::broker base class (this will make sure the relevant packages are installed).

include helix::broker

helix::broker_instance { 'broker1':
  p4brokerport   => '1667',
  p4brokertarget => 'perforce:1666',
}

The following attributes are supported:

  • p4brokerport (required) - listen port for the broker. This should be in P4PORT format protocol:hostname:port, for example ssl::1666
  • p4brokertarget (required) - target port -- the port of the p4d -- that the broker will use. This should be in P4PORT format protocol:hostname:port, for example perforce:1666
  • directory (default /opt/perforce/servers/${title}) - directory that will contain the broker configuration file
  • p4ssl (default /opt/perforce/servers/${title}/ssl) - directory that contains the ssl certificate and key
  • logfile (default /var/log/perforce/${title}_broker.log) - location of the log file for the server
  • debuglevel (default 1) - level of logging information (1-3)
  • adminname (default Perforce Admins) - administrator's name (used for information purposes)
  • adminphone (default 999/911) - administrator's phone (used for information purposes)
  • adminemail (default perforce-admins@example.com) - administrator's email (used for information purposes)
  • serviceuser (default undef) - service user perforce account name
  • ticketfile (default undef) - location of the ticketfile
  • redirection (default selective) - redirection mode to use -- selective or pedantic.
  • commands (default []) - an array of commands to intercept
  • osuser (default perforce) - user owner of the server
  • osgroup (default perforce) - group owner of the server
  • ensure (default running) - state of the service [running, stopped]
  • enabled (default true) - flag indicating whether or not the service should be enabled
  • p4dctl (defaulted to OS-specific path) - path to the p4dctl executable

helix::proxy_instance

A p4proxy instance can be configured using the helix::proxy_instance type.

At a minimum, the p4proxyport and p4proxytarget parameters must be specified.

Before declaring a helix::proxy_instance, ensure that you include the helix::proxy base class (this will make sure the relevant packages are installed).

include helix::proxy

helix::proxy_instance { 'proxy1':
  p4proxyport   => '1666',
  p4proxytarget => 'perforce:1666',
}

The following attributes are supported:

  • p4proxyport (required) - listen port for the broker. This should be in P4PORT format protocol:hostname:port, for example 1666
  • p4proxytarget (required) - listen port for the broker. This should be in P4PORT format protocol:hostname:port, for example perforce:1666
  • cachedir (default /opt/perforce/servers/${title}/cache) - directory where depot files will be cached
  • p4ssl (default /opt/perforce/servers/${title}/ssl) - directory that contains the ssl certificate and key
  • logfile (default /var/log/perforce/${title}_proxy.log) - location of the log file for the server
  • osuser (default perforce) - user owner of the server
  • osgroup (default perforce) - group owner of the server
  • ensure (default running) - state of the service [running, stopped]
  • enabled (default true) - flag indicating whether or not the service should be enabled
  • p4dctl (defaulted to OS-specific path) - path to the p4dctl executable

Limitations

This module is only supported on Linux (RedHat and Ubuntu), as those are the only packages available from the Perforce Helix distribution.