{"id":15013955,"url":"https://github.com/voxpupuli/puppet-jira","last_synced_at":"2025-12-11T21:23:28.336Z","repository":{"id":4141128,"uuid":"5254138","full_name":"voxpupuli/puppet-jira","owner":"voxpupuli","description":"Atlassian JIRA Puppet Module","archived":false,"fork":false,"pushed_at":"2025-03-27T13:36:37.000Z","size":887,"stargazers_count":61,"open_issues_count":16,"forks_count":141,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-04-08T02:51:22.297Z","etag":null,"topics":["centos-puppet-module","hacktoberfest","linux-puppet-module","oraclelinux-puppet-module","puppet","redhat-puppet-module","scientific-puppet-module","ubuntu-puppet-module"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/puppet/jira","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"moai/luamongo","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2012-08-01T02:30:57.000Z","updated_at":"2025-03-27T13:36:33.000Z","dependencies_parsed_at":"2024-03-18T17:27:37.823Z","dependency_job_id":"8a29b3e7-fe34-4abd-b42c-29d54e0806d5","html_url":"https://github.com/voxpupuli/puppet-jira","commit_stats":{"total_commits":509,"total_committers":99,"mean_commits":5.141414141414141,"dds":0.762278978388998,"last_synced_commit":"4e27bb4ee771debdc59e65561c93539d4c630e24"},"previous_names":["puppet-community/puppet-jira"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-jira","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-jira/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-jira/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-jira/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-jira/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248148091,"owners_count":21055546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["centos-puppet-module","hacktoberfest","linux-puppet-module","oraclelinux-puppet-module","puppet","redhat-puppet-module","scientific-puppet-module","ubuntu-puppet-module"],"created_at":"2024-09-24T19:44:59.833Z","updated_at":"2025-12-11T21:23:28.309Z","avatar_url":"https://github.com/voxpupuli.png","language":"Ruby","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":[],"sub_categories":[],"readme":"# JIRA module for Puppet\n\n[![CI](https://github.com/voxpupuli/puppet-jira/actions/workflows/ci.yml/badge.svg)](https://github.com/voxpupuli/puppet-jira/actions/workflows/ci.yml)\n[![Code Coverage](https://coveralls.io/repos/github/voxpupuli/puppet-jira/badge.svg?branch=master)](https://coveralls.io/github/voxpupuli/puppet-jira)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/jira.svg)](https://forge.puppetlabs.com/puppet/jira)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/jira.svg)](https://forge.puppetlabs.com/puppet/jira)\n[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/jira.svg)](https://forge.puppetlabs.com/puppet/jira)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/jira.svg)](https://forge.puppetlabs.com/puppet/jira)\n\n## Table of Contents\n\n1. [Overview](#overview)\n2. [Module Description - What the module does and why it is useful](#module-description)\n3. [Setup - The basics of getting started with JIRA](#setup)\n    * [JIRA Prerequisites](#jira-prerequisites)\n    * [What JIRA affects](#what-jira-affects)\n    * [Beginning with JIRA](#beginning-with-jira)\n    * [Upgrades](#upgrades)\n4. [Usage - Configuration options and additional functionality](#usage)\n5. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n6. [Limitations - OS compatibility, etc.](#limitations)\n7. [Development - Guide for contributing to the module](#development)\n8. [Contributors](#contributors)\n\n## Overview\n\nThis module allows you to install, upgrade and manage Atlassian JIRA.\n\n## Module Description\n\nThis module installs/upgrades Atlassian's Enterprise Issue Tracking and project\nmanagement tool. The JIRA module also manages the JIRA configuration files with\nPuppet.\n\n## Setup\n\n### JIRA Prerequisites\n\n* JIRA requires a Java Developers Kit (JDK) or Java Run-time Environment (JRE)\n  platform to be installed on your server's operating system. Oracle JDK / JRE\n  (formerly Sun JDK / JRE) versions 8 (and 11 since JIRA 8.2) are currently\n  supported by Atlassian. OpenJDK version 8 (and 11 since JIRA 8.2) are supported\n  as well - Atlassian recommends to use AdoptOpenJDK to get better support\n\n* JIRA requires a relational database to store its issue data. This module\n  currently supports PostgreSQL and MySQL and Oracle and Microsoft SQL Server.\n  We suggest using puppetlabs-postgresql/puppetlabs-mysql modules to\n  configure/manage the database. The module uses PostgreSQL as a default.\n\n* Whilst not required, for production use we recommend using nginx/apache as a\n  reverse proxy to JIRA. We suggest using the puppet/nginx puppet module.\n\n* On RHEL 8 and variants, you may experience SELinux denials if you use a custom\n  installation directory that is not under `/opt`. To fix this, add an fcontext\n  equivalence between `/opt` and your desired directory:\n  `semanage fcontext -a /apps/jira -e /opt`\n  and run `restorecon`.\n\n### What JIRA affects\n\nIf installing to an existing JIRA instance, it is your responsibility to backup\nyour database. We also recommend that you backup your JIRA home directory and\nthat you align your current JIRA version with the version you intend to use with\npuppet JIRA module.\n\nYou must have your database setup with the account user that JIRA will use. This\ncan be done using the puppetlabs-postgresql and puppetlabs-mysql modules.\n\nWhen using this module to upgrade JIRA, please make sure you have a database/JIRA\nhome backup.\n\nWhen using MySQL, We call the `jira::mysql_connector` class to install the MySQL java\nconnector directory from mysql.com as per Atlassian's documented recommendations.\n\n### Beginning with JIRA\n\nThis puppet module will automatically download the JIRA archive from Atlassian and\nextracts it into /opt/jira/atlassian-jira-$version. The default JIRA home is\n`/home/jira`, though you are encouraged to change this.\n\nIf you would prefer to use Hiera then see jira.yaml file for an example.\n\n#### Basic example\n\n```puppet\n  # Java 11 is managed externally and installed in /opt/java\n  class { 'jira':\n    javahome     =\u003e '/opt/java',\n  }\n```\n\nThe module can install a package for you using your OS's package manager.\nNote that there's no smarts here. You need to set javahome correctly.\n\n*Pre JIRA 10*\n```puppet\n  # this example works on RHEL\n  class { 'jira':\n    java_package  =\u003e 'java-11-openjdk-headless'\n    javahome      =\u003e '/usr/lib/jvm/jre-11-opendjk/',\n  }\n```\n\n*Post JIRA 10*\n```puppet\n  # this example works on RHEL\n  class { 'jira':\n    java_package  =\u003e 'java-17-openjdk'\n    javahome      =\u003e '/usr/lib/jvm/jre-17-opendjk/',\n  }\n```\n\n#### Upgrades\n\n##### Upgrades to JIRA\n\nJira can be upgraded by incrementing this version number. This will *STOP* the\nrunning instance of Jira and attempt to upgrade. You should take caution when\ndoing large version upgrades. Always backup your database and your home directory.\n\n```puppet\n  class { 'jira':\n    java_package  =\u003e 'java-11-openjdk-headless'\n    javahome      =\u003e '/usr/lib/jvm/jre-11-opendjk/',\n    version       =\u003e '8.16.0',\n  }\n```\n\n## Usage\n\n### A more complex example\n\n```puppet\n    class { 'jira':\n      version                      =\u003e '8.13.5',\n      installdir                   =\u003e '/opt/atlassian-jira',\n      homedir                      =\u003e '/opt/atlassian-jira/jira-home',\n      user                         =\u003e 'jira',\n      group                        =\u003e 'jira',\n      dbpassword                   =\u003e 'secret',\n      dbserver                     =\u003e 'localhost',\n      java_package                 =\u003e 'java-11-openjdk-headless',\n      javahome                     =\u003e '/usr/lib/jvm/jre-11-openjdk/',\n      download_url                 =\u003e 'http://myserver/pub/development-tools/atlassian/',\n      tomcat_additional_connectors =\u003e {\n        # Define two additional connectors, listening on port 8081 and 8082\n        8081 =\u003e {\n          'relaxedPathChars'      =\u003e '[]|',\n          'relaxedQueryChars'     =\u003e '[]|{}^\u0026#x5c;\u0026#x60;\u0026quot;\u0026lt;\u0026gt;',\n          'maxThreads'            =\u003e '150',\n          'minSpareThreads'       =\u003e '25',\n          'connectionTimeout'     =\u003e '20000',\n          'enableLookups'         =\u003e 'false',\n          'maxHttpHeaderSize'     =\u003e '8192',\n          'protocol'              =\u003e 'HTTP/1.1',\n          'useBodyEncodingForURI' =\u003e 'true',\n          'redirectPort'          =\u003e '8443',\n          'acceptCount'           =\u003e '100',\n          'disableUploadTimeout'  =\u003e 'true',\n          'bindOnInit'            =\u003e 'false',\n        },\n        # This additional connector is configured for access from a reverse proxy\n        8082 =\u003e {\n          'relaxedPathChars'      =\u003e '[]|',\n          'relaxedQueryChars'     =\u003e '[]|{}^\u0026#x5c;\u0026#x60;\u0026quot;\u0026lt;\u0026gt;',\n          'maxThreads'            =\u003e '150',\n          'minSpareThreads'       =\u003e '25',\n          'connectionTimeout'     =\u003e '20000',\n          'enableLookups'         =\u003e 'false',\n          'maxHttpHeaderSize'     =\u003e '8192',\n          'protocol'              =\u003e 'HTTP/1.1',\n          'useBodyEncodingForURI' =\u003e 'true',\n          'redirectPort'          =\u003e '8443',\n          'acceptCount'           =\u003e '100',\n          'disableUploadTimeout'  =\u003e 'true',\n          'bindOnInit'            =\u003e 'false',\n          'proxyName'             =\u003e 'jira2.example.com',\n          'proxyPort'             =\u003e '443',\n          'scheme'                =\u003e 'https',\n          'secure'                =\u003e true,\n        },\n      }\n    }\n```\n\n### Hiera examples\n\n```yaml\njira::version:       '8.13.5'\n# parent directories must exist\njira::installdir:    '/opt/atlassian/atlassian-jira'\njira::homedir:       '/opt/atlassian/application-data/jira-home'\njira::user:          'jira'\njira::group:         'jira'\njira::shell:         '/bin/bash'\njira::dbserver:      'dbvip.example.co.za'\njira::javahome:      '/opt/java'\njira::java_opts: \u003e-\n  -Dhttp.proxyHost=proxy.example.co.za\n  -Dhttp.proxyPort=8080\n  -Dhttps.proxyHost=proxy.example.co.za\n  -Dhttps.proxyPort=8080\n  -Dhttp.nonProxyHosts=localhost\\|127.0.0.1\\|172.*.*.*\\|10.*.*.*\n  -XX:+UseLargePages\njira::dbport:        '5439'\njira::dbuser:        'jira'\njira::jvm_xms:       '1G'\njira::jvm_xmx:       '3G'\njira::service_manage: false\njira::env:\n  - 'http_proxy=proxy.example.co.za:8080'\n  - 'https_proxy=proxy.example.co.za:8080'\njira::proxy:\n  scheme:    'https'\n  proxyName: 'jira.example.co.za'\n  proxyPort: '443'\njira::contextpath: '/jira'\njira::tomcat_additional_connectors:\n  8181:\n    relaxedPathChars: '[]|'\n    relaxedQueryChars: '[]|{}^\u0026#x5c;\u0026#x60;\u0026quot;\u0026lt;\u0026gt;'\n    maxThreads: '150'\n    minSpareThreads: '25'\n    connectionTimeout: '20000'\n    enableLookups: 'false'\n    maxHttpHeaderSize: '8192'\n    protocol: 'HTTP/1.1'\n    useBodyEncodingForURI: 'true'\n    redirectPort: '8443'\n    acceptCount: '100'\n    disableUploadTimeout: 'true'\n    bindOnInit: 'false'\n```\n\nThese additional and substituted parameters are used in production in an\ntraditional enterprise environment with an Oracle 11g remote database and\nOracle 8 JDK. Your mileage may vary.\n\n```yaml\njira::db:            'oracle'\njira::dbname:        '\u003cdbname\u003e'\njira::dbport:        '1526'\njira::dbdriver:      'oracle.jdbc.OracleDriver'\njira::dbtype:        'oracle10g'\njira::dburl:         'jdbc:oracle:thin:@//dbvip.example.co.za:1526/\u003cdbname\u003e'\njira::javahome:      '/usr/lib/jvm/jdk-8-oracle-x64'\n```\n\nReverse proxy can be configured as a hash as part of the JIRA resource\n\n```puppet\n   proxy          =\u003e {\n     scheme       =\u003e 'https',\n     proxyName    =\u003e 'www.example.com',\n     proxyPort    =\u003e '443',\n   },\n```\n\n### notes on secret encryption in dbconfig.xml\nThe JIRA process will read the dbconfig.xml on startup replace it with the string \"{ATL_SECURED}\". The password is moved\ninto `\u003cshared_homedir\u003e/keys/javax.crypto.spec.SecretKeySpec_\u003csome random number\u003e`. It is important that this directory\nis not located inside of the installation dir as you would lose it in the case of an update.\n\n## Reference\n\nsee [REFERENCE.md](REFERENCE.md)\n\n## Limitations\n\nSee `metadata.json` for supported Puppet platforms and components.\n\n* Jira 8.x\n\n* PostgreSQL\n* MySQL\n\nThe databases below should work, but are not tested. YMMV.\n\n* Oracle\n* Microsoft SQL Server with JTDS driver (included in non-WAR version)\n\n## Development\n\nPlease feel free to raise any issues here for bug fixes. We also welcome feature\nrequests. Feel free to make a pull request for anything and we make the effort to\nreview and merge. We prefer with tests if possible.\n\nFor details, see \u003chttps://github.com/voxpupuli/puppet-jira/blob/master/.github/CONTRIBUTING.md\u003e.\n\n## Contributors\n\nThe list of contributors can be found [here](https://github.com/voxpupuli/puppet-jira/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-jira","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-jira","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-jira/lists"}