Forge Home

pulsar

Puppet module for installing Pulsar for use by a galaxy instance

6,127 downloads

5,975 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

  • 1.0.1 (latest)
  • 1.0.0
released Jan 22nd 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.7.0 < 6.0.0
  • ,

Start using this module

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

Add this module to your Puppetfile:

mod 'millerjl1701-pulsar', '1.0.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add millerjl1701-pulsar
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install millerjl1701-pulsar --version 1.0.1

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

millerjl1701/pulsar — version 1.0.1 Jan 22nd 2018

pulsar

master branch: Build Status

Table of Contents

  1. Module Description - What the module does and why it is useful
  2. Setup - The basics of getting started with pulsar
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

Module Description

This module installs, configures and manages pulsar, an add-on to Galaxy.

For more information on pulsar and the capabilities it provides, please see https://pulsar.readthedocs.io/en/latest/.

Galaxy is an open web-based platform for accessible, reproducible, and transparent computational biomedical research.

This module uses Puppet 4 data types as well as providing puppet data in the module. It will not work with puppet versions earlier than 4.7, and is currently written to support CentOS/RHEL 7. Other operating systems will be added as time permits.

This module relies on the stankevich/python python module for installation of pip, pulsar-app, and other packages. By default, the management of python is disabled in the pulsar module.

For pulsar to properly install using the git repository as opposed to the pip package, git will need to be managed either with this module (leveraging the puppetlabs/git module) or a different method or module.

For pulsar to properly startup, gcc needs to be present as pulsar installs dependencies into the application directory that require compilation. The gcc installation can be managed with either this module (leveraging the puppetlabs/gcc module) or a different method or module.

By default, the /etc/supervisor/conf.d/pulsar.conf file is managed by the pulsar module as it assumes that the millerjl1701/supervisord module is being used. If you are a different module or method for supervisord, the management of this file can be disabled.

Setup

What pulsar affects

  • Packages (by default)
    • pulsar-app (via pip)
    • gcc
    • git
    • python-dev
    • python2-pip
    • python-virtualenv.
  • Files
    • /etc/supervisor/conf.d/pulsar.conf
    • /opt/pulsar
    • /opt/pulsar/app.yml
    • /opt/pulsar/local_env.sh
    • /opt/pulsar/requirements.txt
    • /opt/pulsar/run.sh
    • /opt/pulsar/server.ini
    • /opt/pulsar/venv
    • /var/log/pulsar
  • Services
    • pulsar (as a supervisord program)

Setup Requirements

This module depends on the following puppet modules:

The stahnma-epel module is listed in the metadata.json file as a dependency as well, since stankevich-python lists it as a dependency. A parameter for this module is provided to disable the use of epel for package installation should you be using yumrepo resources or Spacewalk package management instead.

The supervisord program is expected to be utlilized for the management of the pulsar service. This module does not manage or configuration of the supervisord service. The acceptance tests rely on the millerjl1701/supervisord puppet module for supervisord installation and configuration. If you are using a different method, the supervisord pulsar.conf file management can be disabled.

Beginning with pulsar

Assuming that the prerequisites are met (supervisord, python and gcc. potentially git), include pulsar is all that is needed to install, configure, and start up a pulsar server listening to port localhost:8913.

Usage

Installation of pulsar and all needed dependencies with puppet manifest

class { 'pulsar':
  manage_gcc    => true,
  manage_git    => true,
  manage_python => true,
}

Installation of pulsar and all needed dependencies using hiera

---
pulsar::manage_python: true
pulsar::manage_gcc: true
pulsar::manage_git: true

Reference

Generated puppet strings documentation with examples is available from https://millerjl1701.github.io/millerjl1701-pulsar.

The puppet strings documentation is also included in the /docs folder.

Public Classes

  • pulsar: Main class which installs and configures the pulsar service. Parameters may be passed via class declaration or hiera.

Private Classes

  • pulsar::config: Class for generating the configuration files for the pulsar server.
  • pulsar::gcc: Class for installing gcc for use by pulsar.
  • pulsar::git: Class for installing git for use by pulsar.
  • pulsar::install: Class for installing the pulsar server.
  • pulsar::python: Class for installing and configuring python for use by pulsar.
  • pulsar::service: Class for managing the pulsar service.

Limitations

This module is currently written for CentOS/RHEL 7 only. Other operating systems will be added as time permits (unless someone submits a PR first. :)

No validation of the server.ini file is performed to check what settings have been added. Passing appropriate parameters and values are left as an exercise for the reader.

Development

Please see the CONTRIBUTING document for information on how to get started developing code and submit a pull request for this module. While written in an opinionated fashion at the start, over time this can become less and less the case.

Contributors

To see who is involved with this module, see the GitHub list of contributors or the CONTRIBUTORS document.

Credits

Since this module is designed primarily for the management of Galaxy processes, the Galaxy Project Administration Training repository was used heavily to guide how pulsar is configured and used in complex environments. The GalaxyProject ansible galaxy runbooks and use galaxy runbooks were also referenced in order to grok the needed pieces installed and configured more efficiently. Thank you to all the instructors and contriibutors past and present who have developed and published these materials.