Forge Home

phabricator

Module to install and configure Phabricator, a suite of web-based software development collaboration tools.

46,734 downloads

5,059 latest version

5.0 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.5.12 (latest)
  • 0.5.11
  • 0.5.10
  • 0.5.9
  • 0.5.8
  • 0.5.7
  • 0.5.6
  • 0.5.5
  • 0.5.4
  • 0.5.3
  • 0.5.2
  • 0.5.1
  • 0.5.0
  • 0.4.0
  • 0.3.4
  • 0.3.3 (deleted)
  • 0.3.2
  • 0.3.1
  • 0.3.0
  • 0.2.1
  • 0.2.0
  • 0.1.0
released Oct 16th 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.4.x
  • Puppet >= 4.9.0 < 6.0.0

Start using this module

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

Add this module to your Puppetfile:

mod 'joshuaspence-phabricator', '0.5.12'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add joshuaspence-phabricator
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install joshuaspence-phabricator --version 0.5.12

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

joshuaspence/phabricator — version 0.5.12 Oct 16th 2018

phabricator

Build Status Puppet Forge Puppet Forge

Table of Contents

  1. Description
  2. Usage
  3. Reference
  4. Limitations
  5. Development

Description

This module installs, configures and manages Phabricator, a suite of web-based software development collaboration tools, including:

Phabricator is offered as a hosted service by Phacility, but can also be installed on-premise.

Usage

In order to utilize this module it is necessary to configure Phabricator using the $config_hash parameter. Specifically, the following settings are required:

  • mysql.host: MySQL database hostname.
  • mysql.user: MySQL username to use when connecting to the database.
  • mysql.pass: MySQL password to use when connecting to the database.

There are many other settings that can be passed to the $config_hash parameter, but the above settings should be the minimal configuration that is required in order for Phabricator to be functional. The $config_hash parameter is JSON-encoded and written to conf/local/local.json. See Advanced Configuration for further information on configuring Phabricator.

class { 'phabricator':
  config_hash => {
    'mysql.host' => 'localhost',
    'mysql.user' => 'user',
    'mysql.pass' => 'password',
  },

  storage_upgrade          => true,
  storage_upgrade_user     => 'admin',
  storage_upgrade_password => 'password',
}

include phabricator::aphlict
include phabricator::daemons

Storage Upgrades and Adjustments

Phabricator uses MySQL or another MySQL-compatible database (such as MariaDB or Amazon RDS). Phabricator consists of a ./bin/storage script which can be used to manage the database schema and apply storage upgrades and adjustments. You can find more information about these processes in the official documentation (see Storage: Configuring MySQL and Managing Storage Adjustments).

This module can, optionally, execute ./bin/storage upgrade automatically in order to apply storage upgrades and adjustments. Whilst I haven't observed any issues using Puppet to apply storage upgrades and adjustments, I suspect that many (most?) users of this module would prefer to apply storage upgrades and adjustments using some other mechanism, perhaps as a step in a shell script used for deployments. As such, $storage_upgrade defaults to false.

Users of this module that choose to set $storage_upgrade to true should be aware of the following caveats:

  • Storage upgrades can take a long time to complete. Generally the time taken to apply storage upgrades will be proportional to the amount of data stored in Phabricator. Whilst storage upgrades should be able to be applied multiple times without adverse side effects, terminating the ./bin/storage upgrade workflow is strongly advised against.
  • It is strongly recommended that a Phabricator installation is taken offline before storage upgrades are applied.

Reference

See the documentation.

Limitations

This module has been tested on:

  • Ubuntu 16.04

Testing on other platforms has been minimal and cannot be guaranteed.

Development

Contributions to this module are welcome, but must be accompanied by documentation, unit test coverage (with rspec-puppet) and acceptance test coverage (with beaker-rspec). Refactoring existing code and documentation changes do not require additional tests.

All pull requests must pass successfully through Travis CI before being accepted and merged. Each of the steps that is executed in Travis CI should be reproducible locally using the following commands:

Task Command
Syntax Checks and Linting bundle exec rake
Unit tests bundle exec rake spec
Acceptance tests bundle exec rake beaker