Giter Club home page Giter Club logo

puppet-jira's Introduction

JIRA module for Puppet

CI Code Coverage Puppet Forge Puppet Forge - downloads Puppet Forge - endorsement Puppet Forge - scores

Table of Contents

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

Overview

This module allows you to install, upgrade and manage Atlassian JIRA.

Module Description

This module installs/upgrades Atlassian's Enterprise Issue Tracking and project management tool. The JIRA module also manages the JIRA configuration files with Puppet.

Setup

JIRA Prerequisites

  • JIRA requires a Java Developers Kit (JDK) or Java Run-time Environment (JRE) platform to be installed on your server's operating system. Oracle JDK / JRE (formerly Sun JDK / JRE) versions 8 (and 11 since JIRA 8.2) are currently supported by Atlassian. OpenJDK version 8 (and 11 since JIRA 8.2) are supported as well - Atlassian recommends to use AdoptOpenJDK to get better support

  • JIRA requires a relational database to store its issue data. This module currently supports PostgreSQL and MySQL and Oracle and Microsoft SQL Server. We suggest using puppetlabs-postgresql/puppetlabs-mysql modules to configure/manage the database. The module uses PostgreSQL as a default.

  • Whilst not required, for production use we recommend using nginx/apache as a reverse proxy to JIRA. We suggest using the puppet/nginx puppet module.

  • On RHEL 8 and variants, you may experience SELinux denials if you use a custom installation directory that is not under /opt. To fix this, add an fcontext equivalence between /opt and your desired directory: semanage fcontext -a /apps/jira -e /opt and run restorecon.

What JIRA affects

If installing to an existing JIRA instance, it is your responsibility to backup your database. We also recommend that you backup your JIRA home directory and that you align your current JIRA version with the version you intend to use with puppet JIRA module.

You must have your database setup with the account user that JIRA will use. This can be done using the puppetlabs-postgresql and puppetlabs-mysql modules.

When using this module to upgrade JIRA, please make sure you have a database/JIRA home backup.

When using MySQL, We call the jira::mysql_connector class to install the MySQL java connector directory from mysql.com as per Atlassian's documented recommendations.

Beginning with JIRA

This puppet module will automatically download the JIRA archive from Atlassian and extracts it into /opt/jira/atlassian-jira-$version. The default JIRA home is /home/jira, though you are encouraged to change this.

If you would prefer to use Hiera then see jira.yaml file for an example.

Basic example

  # Java 11 is managed externally and installed in /opt/java
  class { 'jira':
    javahome     => '/opt/java',
  }

The module can install a package for you using your OS's package manager. Note that there's no smarts here. You need to set javahome correctly.

  # this example works on RHEL
  class { 'jira':
    java_package  => 'java-11-openjdk-headless'
    javahome      => '/usr/lib/jvm/jre-11-opendjk/',
  }

Upgrades

Upgrades to JIRA

Jira can be upgraded by incrementing this version number. This will STOP the running instance of Jira and attempt to upgrade. You should take caution when doing large version upgrades. Always backup your database and your home directory.

  class { 'jira':
    java_package  => 'java-11-openjdk-headless'
    javahome      => '/usr/lib/jvm/jre-11-opendjk/',
    version     => '8.16.0',
  }

Usage

A more complex example

    class { 'jira':
      version                      => '8.13.5',
      installdir                   => '/opt/atlassian-jira',
      homedir                      => '/opt/atlassian-jira/jira-home',
      user                         => 'jira',
      group                        => 'jira',
      dbpassword                   => 'secret',
      dbserver                     => 'localhost',
      java_package                 => 'java-11-openjdk-headless',
      javahome                     => '/usr/lib/jvm/jre-11-openjdk/',
      download_url                 => 'http://myserver/pub/development-tools/atlassian/',
      tomcat_additional_connectors => {
        # Define two additional connectors, listening on port 8081 and 8082
        8081 => {
          'relaxedPathChars'      => '[]|',
          'relaxedQueryChars'     => '[]|{}^\`"<>',
          'maxThreads'            => '150',
          'minSpareThreads'       => '25',
          'connectionTimeout'     => '20000',
          'enableLookups'         => 'false',
          'maxHttpHeaderSize'     => '8192',
          'protocol'              => 'HTTP/1.1',
          'useBodyEncodingForURI' => 'true',
          'redirectPort'          => '8443',
          'acceptCount'           => '100',
          'disableUploadTimeout'  => 'true',
          'bindOnInit'            => 'false',
        },
        # This additional connector is configured for access from a reverse proxy
        8082 => {
          'relaxedPathChars'      => '[]|',
          'relaxedQueryChars'     => '[]|{}^\`"<>',
          'maxThreads'            => '150',
          'minSpareThreads'       => '25',
          'connectionTimeout'     => '20000',
          'enableLookups'         => 'false',
          'maxHttpHeaderSize'     => '8192',
          'protocol'              => 'HTTP/1.1',
          'useBodyEncodingForURI' => 'true',
          'redirectPort'          => '8443',
          'acceptCount'           => '100',
          'disableUploadTimeout'  => 'true',
          'bindOnInit'            => 'false',
          'proxyName'             => 'jira2.example.com',
          'proxyPort'             => '443',
          'scheme'                => 'https',
          'secure'                => true,
        },
      }
    }

Hiera examples

jira::version:       '8.13.5'
# parent directories must exist
jira::installdir:    '/opt/atlassian/atlassian-jira'
jira::homedir:       '/opt/atlassian/application-data/jira-home'
jira::user:          'jira'
jira::group:         'jira'
jira::shell:         '/bin/bash'
jira::dbserver:      'dbvip.example.co.za'
jira::javahome:      '/opt/java'
jira::java_opts: >-
  -Dhttp.proxyHost=proxy.example.co.za
  -Dhttp.proxyPort=8080
  -Dhttps.proxyHost=proxy.example.co.za
  -Dhttps.proxyPort=8080
  -Dhttp.nonProxyHosts=localhost\|127.0.0.1\|172.*.*.*\|10.*.*.*
  -XX:+UseLargePages
jira::dbport:        '5439'
jira::dbuser:        'jira'
jira::jvm_xms:       '1G'
jira::jvm_xmx:       '3G'
jira::service_manage: false
jira::env:
  - 'http_proxy=proxy.example.co.za:8080'
  - 'https_proxy=proxy.example.co.za:8080'
jira::proxy:
  scheme:    'https'
  proxyName: 'jira.example.co.za'
  proxyPort: '443'
jira::contextpath: '/jira'
jira::tomcat_additional_connectors:
  8181:
    relaxedPathChars: '[]|'
    relaxedQueryChars: '[]|{}^\`"<>'
    maxThreads: '150'
    minSpareThreads: '25'
    connectionTimeout: '20000'
    enableLookups: 'false'
    maxHttpHeaderSize: '8192'
    protocol: 'HTTP/1.1'
    useBodyEncodingForURI: 'true'
    redirectPort: '8443'
    acceptCount: '100'
    disableUploadTimeout: 'true'
    bindOnInit: 'false'

These additional and substituted parameters are used in production in an traditional enterprise environment with an Oracle 11g remote database and Oracle 8 JDK. Your mileage may vary.

jira::db:            'oracle'
jira::dbname:        '<dbname>'
jira::dbport:        '1526'
jira::dbdriver:      'oracle.jdbc.OracleDriver'
jira::dbtype:        'oracle10g'
jira::dburl:         'jdbc:oracle:thin:@//dbvip.example.co.za:1526/<dbname>'
jira::javahome:      '/usr/lib/jvm/jdk-8-oracle-x64'

Reverse proxy can be configured as a hash as part of the JIRA resource

   proxy          => {
     scheme       => 'https',
     proxyName    => 'www.example.com',
     proxyPort    => '443',
   },

Reference

see REFERENCE.md

Limitations

  • Puppet 6.1.0
  • Puppet Enterprise

The puppetlabs repositories can be found at: http://yum.puppetlabs.com/ and http://apt.puppetlabs.com/

  • RedHat 7, 8 or compatible (CentOS, Oracle Linux, etc)

  • Ubuntu 18.04, 20.04

  • Jira 8.x

  • PostgreSQL

  • MySQL

The databases below should work, but are not tested. YMMV.

  • Oracle
  • Microsoft SQL Server with JTDS driver (included in non-WAR version)

Development

Please feel free to raise any issues here for bug fixes. We also welcome feature requests. Feel free to make a pull request for anything and we make the effort to review and merge. We prefer with tests if possible.

Testing

How to test the JIRA module

Using puppetlabs_spec_helper. Simply run:

bundle install && bundle exec rake spec

to get results.

ruby -S rspec spec/classes/jira_install_spec.rb --color
.

Finished in 0.38159 seconds
1 example, 0 failures

Using Beaker - Puppet Labs cloud enabled acceptance testing tool..

The beaker tests will install oracle Java to /opt/java. When running the beaker tests you agree that you accept the oracle java license.

bundle install
BEAKER_set=ubuntu-server-12042-x64 bundle exec rake beaker
BEAKER_set=ubuntu-server-1404-x64 bundle exec rake beaker
BEAKER_set=debian-73-x64 bundle exec rake beaker
BEAKER_set=centos-64-x64 bundle exec rake beaker
BEAKER_set=centos-70-x64 bundle exec rake beaker
BEAKER_set=centos-64-x64-pe bundle exec rake beaker

To save build time it is useful to host the installation files locally on a web server. You can use the download_url environment variable to overwrite the default.

export download_url="'http://my.local.server/'"

Contributors

The list of contributors can be found here

puppet-jira's People

Contributors

alexjfisher avatar bastelfreak avatar bramwelt avatar brycejohnson avatar cpepe avatar dan33l avatar danifr avatar dhoppe avatar dougneal avatar dpisano avatar ekohl avatar h-haaks avatar igalic avatar juniorsysadmin avatar jyaworski avatar kenyon avatar koendierckx avatar masonm avatar mkrakowitzer avatar nrhtr avatar oranenj avatar paulgeringer avatar poikilotherm avatar rigareau avatar root-expert avatar ryandb avatar sacres avatar smortex avatar smsearcy avatar tjm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

puppet-jira's Issues

osfamily vs operatingsystem in params

On an amazon AMI, $::osfamily is RedHat, but $::operatingsystem is Amazon. the problem is that the $::operatingsystemmajrelease is 2015, when the conditional only looks to see if it is 6 or 7. This results in no 'default' option under RedHat.

The correct defaults for the Amazon AMI are the same as RedHat 6

I'm not sure what the best fix would be... switching to $::operatingsystem instead of $::osfamily and adding an /Amazon/ match, or adding an extra conditional inside of the /RedHat/ $::osfamily.

I am trying to run it

Can you please help me run it?

OS: Centos 6.5
DB:MySQL

This is my init.pp file:
class {'jira':
javahome => '/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/',
downloadURL => 'http://downloads.atlassian.com/software/jira/downloads/',
}

And this is th result:

[root@localhost manifests]# puppet apply init.pp
Warning: Config file /etc/puppet/hiera.yaml not found, using Hiera defaults
Warning: Scope(Deploy::File[atlassian-jira-6.0.tar.gz]): Could not look up qualified variable 'deploy::tempdir'; class deploy has not been evaluated
Warning: Scope(Deploy::File[atlassian-jira-6.0.tar.gz]): Could not look up qualified variable 'deploy::tempdir'; class deploy has not been evaluated
Warning: Scope(Deploy::File[atlassian-jira-6.0.tar.gz]): Could not look up qualified variable 'deploy::tempdir'; class deploy has not been evaluated
Warning: Scope(Deploy::File[atlassian-jira-6.0.tar.gz]): Could not look up qualified variable 'deploy::tempdir'; class deploy has not been evaluated
Warning: Scope(Deploy::File[atlassian-jira-6.0.tar.gz]): Could not look up qualified variable 'deploy::tempdir'; class deploy has not been evaluated
Warning: Scope(Deploy::File[atlassian-jira-6.0.tar.gz]): Could not look up qualified variable 'deploy::tempdir'; class deploy has not been evaluated
Notice: Compiled catalog for localhost.localdomain in environment production in 1.38 seconds
Error: Parameter unless failed on Exec[download_atlassian-jira-6.0.tar.gz]: 'test -d /opt/jira/atlassian-jira-6.0-standalone' is not qualified and no path was specified. Please qualify the command or specify a path. at /etc/puppet/modules/deploy/manifests/file.pp:133
Wrapped exception:
'test -d /opt/jira/atlassian-jira-6.0-standalone' is not qualified and no path was specified. Please qualify the command or specify a path.

What I am doing wrong?

Manage the session timeout

Currently it is not possible to set the session timeout using the module. This setting can be altered in the web.xml file, which is currently not managed. The way I see it there are two options for adding this feature:

  1. Use a template, like the server.xml file is created
  2. Manage the file with Augeas

In this particular case, as web.xml is quite a large file and not really mend to be edited (as shown in the documentation below), I think option 2 would be most suited.

More information:
https://confluence.atlassian.com/display/JIRAKB/How+to+change+the+default+session+timeout

MySQL Connector fails to download

Puppet is unable to pull the file because of a 404 error, is there a workaround or am I doing something wrong?

Notice: /Stage[main]/Jira::Mysql_connector/Staging::File[mysql-connector-java-5.1.34.tar.gz]/Exec[/opt/staging/jira/mysql-connector-java-5.1.34.tar.gz]/returns: curl: (22) The requested URL returned error: 404 Not Found
Error: curl -f -L -o /opt/staging/jira/mysql-connector-java-5.1.34.tar.gz http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.34.tar.gz returned 22 instead of one of [0]

Upgrade to Jira Software v7

Does the module support upgrading to v7 yet? If not are there any plans to support v7 in the near future?

Move to puppet-archive in order to support archive checksum validation

The module should verify the checksum of the downloaded JIRA archive in order to make sure it has not been manipulated. The puppet-archive module provides this functionality. IMHO, no module should download artifacts from external sources without ensuring the file's integrity.

As a workaround, the following code could be used

file { "/opt/staging/jira/atlassian-jira-${version}.tar.gz.sha256":
  content => "${checksum} *atlassian-jira-${version}.tar.gz"
}

exec { "/usr/bin/sha256sum -c atlassian-jira-${version}.tar.gz.sha256":
  cwd         => '/opt/staging/jira',
  refreshonly => true,
  require     => File["/opt/staging/jira/atlassian-jira-${version}.tar.gz.sha256"],
  subscribe   => Staging::File["atlassian-jira-${version}.tar.gz"],
}

systemd support for Debian 8 breaks Ubuntu

Commit 47226b0 enables systemd support for Debian >= 8 based on osfamily and operatingsystemmajrelease, but this breaks ubuntu, where osfamily == 'Debian' and operatingsystemmajrelease is based on the year.

Error: Could not autoload puppet/parser/functions/scope_defaults:

Hi,

I am facing an issue while using this module. Following is the Error :

Error: Could not autoload puppet/parser/functions/scope_defaults: /tmp/ki
tchen/modules/staging/lib/puppet/parser/functions/scope_defaults.rb:2: syntax er
ror, unexpected ':', expecting ')'
newfunction(:scope_defaults, type: :rvalue, doc: <<-EOS
^
/tmp/kitchen/modules/staging/lib/puppet/parser/functions/scope_defaults.r
b:6: syntax error, unexpected ')', expecting kEND
) do |arguments|

Could you please help me to solve this error.

Thanks & Regards
Dharmender

Add beaker tests so we can support more operating systems

We need to add beaker tests to make it easier to support more operating systems.

Add support for

  • Scientific Linux 5/6
  • Debian 6/7
  • SLES
  • OracleLinux 5/6

I suspect it will work for all of the above, but we wont know without testing it.

Add support to configure AJP as the only enabled connector

Running JIRA behind an Apache reverse proxy enables the usage of AJP to do all communication via the AJP rather than HTTP. Unfortunately, the module still requires to configure the regular tomcat HTTP connector.

Being able to disable the HTTP connector and only use the AJP one would make the configuration a bit cleaner.

Jira don't want to use my created database

Hey there,

i become desperate with die jira-module.
How will jira write in the created Database "jira". In my case the used parameteres are only used for the dbconfig.xml. If I watch the MySQL DB, it is empty. And then I tried the config.sh from the bin-directory. There I saw that Jira is still using the default Database. If I change the DB-settings in this config jira will work. But this should work as default in my opinion.

It would be nice if someone could support me with my puppet-manifest which looks like this:

class { 'jira':
         version     => '6.3.13',
         installdir  => '/opt/atlassian-jira',
         homedir     => '/var/atlassian-jira/jira-home',
         user        => 'jira',
         group       => 'root',
         db => 'mysql',
         dbtype => 'mysql',
         dbuser => 'jira',
         dbname => 'jira',
         dbpassword  => 'test',
         dbserver    => 'localhost',
         javahome    => '/opt/java/jdk1.7.0_21/',
         mysql_connector_URL => 'https://dev.mysql.com/downloads/file/?id=460362',
         proxy          => {
            scheme       => 'https',
            proxyName    => 'localhost',
            proxyPort    => '8443',
         }
    }

Greetings,
Florian

jira::facts cannot access $jira::tomcatPort

In the class params for jira::facts you default $port to $jira::tomcatPort however this variable is not accessible from jira::facts so it defaults to nothing and I get the error Fact file /etc/facter/facts.d/jira_facts.rb was parsed but returned an empty data set. I know I can override it when declaring the class, but its a bug nonetheless.

class jira::facts(
  $ensure = 'present',
  $port   = $jira::tomcatPort,
  $uri    = '127.0.0.1',
) {

consolidate db, dbtype, and dbdriver

Right now you have to set three configs in order to accomplish the switching between one database type and another. I think it makes far more sense to change the dbtype and dbdriver values based off of what people set for db.

Add support for handling archive permisions on hardened servers

Hi,

The module downloads the file as the puppet user (in this case root) and then attempts to untar the module as the jira user. This fails if the server is hardened and restricts permissions on downloaded files. We have to work around this by adding the following heira:

system::execs:
    chown_jira_tarball:
        command: /bin/chown -R jira:jira /opt/staging/
        unless: /usr/bin/stat -c "%U:%G" /opt/staging/jira/atlassian-jira-6.4.2.tar.gz | /bin/grep jira:jira
        require: Staging::File[atlassian-jira-6.4.2.tar.gz]
        before: Exec[extract atlassian-jira-6.4.2.tar.gz]

You'll note this has to reference the version-specific file so when attempting any upgrade you have to change these names as well.

It would be good if the module handled this itself by explicitly ensuring the archive permision are correct before attempting the extract.

This is also the case for confluence and I'll raise it there as well.

Setting user shell to /bin/false breaks init script

Possible workaround to start JIRA and still leave users default login shell to /bin/false is define shell in user.sh..erb.

# START INSTALLER MAGIC ! DO NOT EDIT !
JIRA_USER="<%= scope.lookupvar('jira::user') %>" # user created by puppet
SHELL="/bin/bash"
# # END INSTALLER MAGIC ! DO NOT EDIT !

export JIRA_USER SHELL

JIRA 6.2.6
Centos 6.5

Validate all parameters

All parameters should be validated.

Although its going to make a huge mess in the init.pp

Incompatible server.xml with Apache Tomcat/8.0.17 / Jira 7.1.2

Hi,
the bundled tomcat will not start because of a deprecated class in server.xml.erb.

<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html --> <Listener className="org.apache.catalina.core.JasperListener"/>
Just remove it from template server.xml.erb to be compatible.

Puppet complaining about missing parameters to Deploy::Untar

I'm trying to use puppet-jira from Vagrant. In my puppet manifest I have:

class { 'jira': javahome    => '/opt/java/jdk1.7.0_21/' }

and I get complaints about missing parameters for Deploy::Untar, such as:

Must pass group to Deploy::Untar[/var/tmp/deploy/atlassian-jira-6.0.tar.gz] at /tmp/vagrant-puppet-2/modules-0/deploy/manifests/untar.pp:45 on node precise32.atlassian.pl

where group is sometimes replaced by other parameters (e.g. user, command_options).

I've cloned both puppet-jira and puppet-deploy modules from git master.

It looks like jira module is not providing required parameters to deploy calls. Is this a known issue?

JIRA can't parse the JVM arguments when delimited with spaces instead of semicolons.

Due to the way the jvm arguments are passed in, JIRA doesn't parse them correctly. The JVM handles them just fine, but JIRA doesn't understand them properly (as I understand it). If you look at the support ticket here, you can see that they want them delimited with semi-colons. It appears to be a harmless error, but would help clean up a consistent log WARN.

JVM_REQUIRED_ARGS="-Djava.awt.headless=true -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true"

Add workaround for staging strip with zip archive

'strip' parameter of staging archive is unsupported with zip files. Sometimes corporate environments (environments) will have the zip archive available and the tar.gz archive not.

In order to use the zip archive with this module, one has to workaround the lack of strip support in staging for zip archives.

Unable to provide own configuration options in jira-config.properties

After commit e2f929f, I'm not able to set custom configuration in jira-config.properties anymore, as the file is now controlled by puppet-jira.

There are no options for providing own properties, and the only reason for managing this file was to disable WebSudo.

A number of solution would be acceptable to most users:

  • Don't manage the file unless the default setting is overridden
  • Manage the file with Augeas
  • Allow users to provide a map of key/value pairs to be appended to the file

Lots of attachments can make puppet runs very long

We need to remove the recurse => true on the jira home directory. When you have a few thousand attachments it can take the puppet run very long to complete.

file { $jira::homedir:
ensure => 'directory',
owner => $jira::user,
group => $jira::group,
recurse => true,
} ->

Support for RVM

Hello, I was wondering if it'd be possible for us to figure out a way to support RVM installations of Ruby and Facter? I'd add support into the template file myself but I'm really not sure how to tell it to check for that.

As it is I've got a custom init.d script with the line:
OS=/usr/local/rvm/bin/bootup_facter osfamily

Since facter is required I'm not sure how to resolve this in a clean, agnostic manner. If anyone has a suggestion then I can code it up and put in a pull request.

Download path is wrong

Error: curl  -f -L -o /opt/staging/jira/atlassian-jira-7.0.5.tar.gz http://www.atlassian.com/software/jira/downloads/binary//atlassian-jira-7.0.5.tar.gz returned 22 instead of one of [0]
Error: /Stage[main]/Jira::Install/Staging::File[atlassian-jira-7.0.5.tar.gz]/Exec[/opt/staging/jira/atlassian-jira-7.0.5.tar.gz]/returns: change from notrun to 0 failed: curl  -f -L -o /opt/staging/jira/atlassian-jira-7.0.5.tar.gz http://www.atlassian.com/software/jira/downloads/binary//atlassian-jira-7.0.5.tar.gz returned 22 instead of one of [0]

Should be https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.0.5-jira-7.0.5-x64.bin

puppet-jira -- Upgrade howto & addons management questions

Hello,

I'm a new user of this Puppet-JIRA module.
Making a quick overview of this module, find below my question about it :

  • How do you proceed with all addons contained in JIRA.
  • How do you proceed for any upgrade from one existing JIRA instance not managed by Puppet to a new one managed by puppet.
  • How do you manage further Jira upgrade.

Thanks by advance for any feedback on above point !

Fred

Seems to be obsolete - JIRA 7.1.4

I tried to used this module do install actual JIRA version 7.1.4 but even wget did not download installation files. Is this module obsolete?

Basic usage - Could not find class staging.

Hello,

I encountered an issue while testing module under Profile/Role architecture.

/manifests/site.pp:

node 'jira.intranet' {
include role::jira
}

/modules/role/manifests/jira.pp:

class role::jira {
notify { 'This is a JIRA Server role': }
include profile::jira_instance
}

/modules/profile/manifests/jira_instance.pp:

class profile::jira_instance {
notify { 'This is a JIRA instance profile': }

file { '/opt/atlassian':
ensure => 'directory',
}

class { '::jira':
javahome => '/opt/java',
}

include ::jira::facts
}

Puppet returns:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class staging for jira.intranet on node jira.intranet

Is it a bug, or just I am doing something wrong?

SSL does not work with proxy

When using SSL and proxy together, Tomcat fails on startup with

SEVERE: Parse Fatal Error at line 75 column 35: Attribute "scheme" was already specified for element "Connector".

Example declaration:

  class { '::jira':
    javahome           => $profile::java::java_home,
    tomcatNativeSsl    => true,
    proxy              => {
      scheme    => 'https',
      proxyPort => '443',
      proxyName => 'jira.example.org',
    }
  }

The server.xml.erb template should not add scheme twice in this case.

how can I use this module to deploy jira with servicedesk?

I tried defining product => 'servicedesk' but it looks like the download fails.

I can see a file "atlassian-servicedesk-3.1.2.tar.gz_..." under /tmp. The correct filename seems to be "atlassian-servicedesk-3.1.2-jira-7.1.2.tar.gz".

Best regards,

Denny

Use service_provider for init management

We should use service_provider to ship init files.

[root@puppetdb2 ~]# facter -p service_provider operatingsystem operatingsystemmajrelease
operatingsystem => CentOS
operatingsystemmajrelease => 6
service_provider => redhat

[root@rundeck ~]# facter -p service_provider operatingsystem operatingsystemmajrelease
operatingsystem => CentOS
operatingsystemmajrelease => 7
service_provider => systemd

Add support for Oracle

Need to create oracle dbconfig.xml template and then config.pp check.
Populate the jira.yaml with examples.

Mysql driver placement, or how to finish puppet run before starting JIRA

This question probably leaves much to be desired, and may be resolved simply with some puppet-fu.

We were receiving errors when starting JIRA in regards to a lack of mysql drivers. We specified the driver in the dbdriver parameter as com.mysql.jdbc.Driver, but still ended up needing to add a driver(.jar) file to <install_directory>/lib/. Due to the fact that JIRA module declares the directory where this needs to be placed, we can't place the file in the right place before running the JIRA module. We do it afterwards then, but by the time we've placed the driver in the right place, JIRA has finished starting without that required file and is displaying a JIRALocked page. So we are forced to stop JIRA, place the file, and start JIRA again. But this means that our nightly puppet runs bounce our JIRA instance. This could be solved by not needing to add the mysql driver, or by having a good way to ensure the service is running at the very end of the puppet run.

Any thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.