helix

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

alan

alanpetersen

17,164 downloads

7,189 latest version

4.3 quality score

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
  • Debian
    ,
    Ubuntu
    ,
    RedHat
    ,
    CentOS

Start using this module

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.