Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

jira (29) Versions 2.12.1

Installs/Configures Atlassian JIRA.

Policyfile
Berkshelf
Knife
cookbook 'jira', '= 2.12.1', :supermarket
cookbook 'jira', '= 2.12.1'
knife supermarket install jira
knife supermarket download jira
README
Dependencies
Changelog
Quality 100%

Jira Cookbook

Chef cookbook
Build Status

Description

Installs/Configures Atlassian JIRA. Please see [COMPATIBILITY.md](COMPATIBILITY.md) for more information about JIRA releases that are tested and supported by this cookbook and its versions.

Starting from release 2.8.0 of this cookbook, the default DB used is Postgres due to various bugs and speed issues with MySQL.

Requirements

Chef

  • Chef 11.14+ for version 2.7.1+ of this cookbook

Platforms

  • CentOS 6
  • RHEL 6
  • Ubuntu 12.04

Databases

  • MySQL
  • Postgres

JDK/JRE

The Atlassian JIRA Linux installer will automatically configure a bundled JRE. If you wish to use your own JDK/JRE, with say the java cookbook, then as of this writing it must be Oracle and version 1.7 or 1.8.

For the up-to-date list, please see Supported Platforms

Necessary configuration with java cookbook:
* node['java']['install_flavor'] = "oracle"
* node['java']['oracle']['accept_oracle_download_terms'] = true
* recipe[java]

A /ht to @seekely for the documentation nudge.

Attributes

These attributes are under the node['jira'] namespace.

Attribute Description Type Default
checksum SHA256 checksum for JIRA install String auto-detected by helper method
home_path home directory for JIRA String /var/atlassian/application-data/jira
install_path location to install JIRA String /opt/atlassian/jira
install_type JIRA install type - "installer" or "standalone" String installer
init_type JIRA init service type - "sysv" String sysv
url URL for JIRA install String auto-detected by helper method
user user running JIRA String jira
version JIRA version to install String 7.0.4
flavor JIRA product flavor to install - 'core' or 'software' String software

Notice: If ['jira']['install_type'] is set to installer, then the installer will try to upgrade your JIRA instance located in ['jira']['install_path'] (if it exists) to the ['jira']['version'].

If you want to avoid an unexpected upgrade, just set or override ['jira']['version'] attribute value to that of your current JIRA version.

JIRA Database Attributes

All of these node['jira']['database'] attributes are overridden by jira/jira encrypted data bag (Hosted Chef) or data bag (Chef Solo), if it exists

Attribute Description Type Default
host FQDN or "127.0.0.1" String 127.0.0.1
name JIRA database name String jira
password JIRA database user password String changeit
type JIRA database type - "mysql", or "postgresql" String postgresql
user JIRA database user String jira

The Postgres DB is automatically tuned for 'web' and with 1GB of memory for Postgres. Please see the https://github.com/hw-cookbooks/postgresql cookbook for more details, specifically the config_pgtune section.

Please note that specifying "127.0.0.1" for the host automatically installs ['database']['type'] server in the default recipe.

JIRA JVM Attributes

These attributes are under the node['jira']['jvm'] namespace.

Attribute Description Type Default
minimum_memory JVM minimum memory (set by autotune recipe if autotune enabled, see below) String 512m
maximum_memory JVM maximum memory (set by autotune recipe if autotune enabled, see below) String 768m
maximum_permgen JVM maximum PermGen memory String 256m
java_opts additional JAVA_OPTS to be passed to JIRA JVM during startup String ""
support_args additional JAVA_OPTS recommended by Atlassian support for JIRA JVM during startup String ""

JIRA Autotune Attributes

These attributes are under the node['jira']['autotune'] namespace. Autotune automatically determines appropriate settings for certain
attributes. This feature is inspired by the config_pgtune recipe in the https://github.com/hw-cookbooks/postgresql cookbook. This
initial version only supports JVM min and max memory size tuning.

There are several tuning types that can be set:

  • 'mixed' - JIRA and DB run on the same system
  • 'dedicated' - JIRA has the system all to itself
  • 'shared' - JIRA shares the system with the DB and other applications

Total available memory is auto discovered using Ohai but can be overridden by setting your own value in kB.

Attribute Description Type Default
enabled Whether or not to autotune settings. Boolean false
type Type of tuning to apply. One of 'mixed', 'dedicated' and 'shared'. String mixed
total_memory Total system memory to use for autotune calculations. String Ohai value

JIRA Tomcat Attributes

These attributes are under the node['jira']['tomcat'] namespace.

Attribute Description Type Default
port Tomcat HTTP port Fixnum 8080

Recipes

  • recipe['jira'] 'Installs/configures Atlassian JIRA'
  • recipe['jira::apache2'] 'Installs/configures Apache 2 as proxy (ports 80/443)'
  • recipe['jira::container_server_configuration'] 'Configures container server for JIRA deployment'
  • recipe['jira::database'] 'Installs/configures MySQL/Postgres server, database, and user for JIRA'
  • recipe['jira::installer'] 'Installs/configures JIRA via installer'
  • recipe['jira::standalone'] 'Installs/configures JIRA via standalone archive'

Usage

JIRA Server Data Bag

Optionally for securely overriding attributes on Hosted Chef, create a jira/jira encrypted data bag with the model below. Chef Solo can override the same attributes with a jira/jira unencrypted data bag of the same information.

required:
* ['database']['type'] - "mssql", "mysql", or "postgresql"
* ['database']['host'] - FQDN or "localhost" (localhost automatically installs ['database']['type'] server)
* ['database']['name'] - Name of JIRA database
* ['database']['user'] - JIRA database username
* ['database']['password'] - JIRA database username password

optional:
* ['database']['port'] - Database port, defaults to standard database port for ['database']['type']

Repeat for other Chef environments as necessary. Example:

{
  "id": "jira",
  "development": {
    "database": {
      "type": "postgresql",
      "host": "localhost",
      "name": "jira",
      "user": "jira",
      "password": "jira_db_password",
    }
  }
}

Default JIRA Installation

The simplest method is via the default recipe, which uses node['jira']['install_type'] (defaults to installer).

  • Optionally (un)encrypted data bag or set attributes
    • knife data bag create jira
    • knife data bag edit jira jira --secret-file=path/to/secret
  • Add recipe[jira] to your node's run list.

Standalone JIRA Installation

Operates similarly to installer installation, however has added benefits of using ark to create version symlinks of each install. Easily can rollback upgrades by changing node['jira']['version'].

  • Optionally (un)encrypted data bag or set attributes
    • knife data bag create jira
    • knife data bag edit jira jira --secret-file=path/to/secret
  • Set node['jira']['install_type'] to standalone
  • Add recipe[jira] to your node's run list.

Custom JIRA Configurations

Using individual recipes, you can use this cookbook to configure JIRA to fit your environment.

  • Optionally (un)encrypted data bag or set attributes
    • knife data bag create jira
    • knife data bag edit jira jira --secret-file=path/to/secret
  • Add individual recipes to your node's run list.

Testing and Development

  • Quickly testing with Vagrant: [VAGRANT.md](VAGRANT.md)
  • Full development and testing workflow with Test Kitchen and friends: [TESTING.md](TESTING.md)

For Vagrant, you may need to add the following hosts entries:

  • 192.168.50.10 jira-centos-6
  • 192.168.50.10 jira-ubuntu-1204
  • (etc.)

The running JIRA server is then accessible from the host machine:

CentOS 6 Box:
* Web UI (installer/standalone): https://jira-centos-6/

Ubuntu 12.04 Box:
* Web UI (installer/standalone): https://jira-ubuntu-1204/

Contributing

For information on how to contribute to this cookbook, please see: [CONTRIBUTING.md](CONTRIBUTING.md)

Development of this cookbook has been generously supported in part by the code contributions of the following organizations and/or users:

For a full list of contributors, please see Github

Current maintainers

  • KLM Royal Dutch Airlines

License

Please see licensing information in: [LICENSE](LICENSE)

Dependent cookbooks

apache2 >= 0.0.0
ark >= 0.0.0
database >= 0.0.0
java >= 0.0.0
mysql ~> 6.0
mysql_connector >= 0.0.0
mysql2_chef_gem >= 0.0.0
postgresql >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

x.y.z (pending)

2.12.1

  • Fix standalone install's home_path directory ownership
  • Fix use of deprecated listen_address from apache2 cookbook
  • Fix style issues in cookbook
  • Move foodcritic rules to .foodcritic

2.12.0

  • Add JIRA version 7.1.0 support
  • Add simple logging message if JIRA does not need upgrading.

2.11.1

  • Update JIRA Software checksums for 7.0.10
  • Drop support for 5.2.x and 6.0.x releases except for latest

2.11.0

  • Bump default version to 7.0.10

2.10.0

  • Add option to override Apache webapp template using node['jira']['apache2']['template_cookbook'] attribute
  • Update README.md with proper recognition of contributions

2.9.0

  • Add autotune feature for JIRA (currently autotunes min and max mem settings only)

2.8.0

  • Add JIRA 7.0.4
  • Bumped default version to 7.0.4
  • Switched default DB to Postgres
  • Add basic Postgres tuning
  • Add default pwd for MySQL installs on localhost
  • Set collation to 'C' for PostgreSQL database
  • Added cloud testing config for test-kitchen via DigitalOcean. [GH-55]
  • Force apache restart to circumvent mod_proxy bug on Ubuntu 12.04. [GH-52]
  • Use versioned ark install paths. [GH-56]
  • Small fixups to make all test suites succeed on cloud platforms. [GH-57]
  • Fix standalone directory perms and accompanying CentOS bug. [GH-57]

2.7.3

  • Added JIRA 7.0.2
  • Bumped default version to 7.0.2

2.7.2

  • Added sensitive true for crowd_sso template
  • Set Postgres DB owner to JIRA user
  • Explicitly set home_path perms. [#48]

2.7.0

  • Added support for JIRA 7.0
  • Added node['jira']['flavor'] attribute with default value of 'software'
  • Bump default JIRA version to 7.0.0

2.6.3

  • Add JIRA 6.4.12 and bump default version

2.6.2

  • Added a node['jira']['group'] attribute for clarity and override ability
  • Issue warn in library for unsupported DB types to make override possible

2.6.1

  • Removed unused config entries from cookbook metadata
  • Replaced file cookbook with FileEdit#search_file_replace

2.6.0

  • Redirect http-based requests to https
  • Auto upgrade if node['jira']['version'] is higher than installed version
  • Configures Crowd SSO if node['jira']['crowd_sso']['enabled'] is true
  • Improve file restrictions for standalone installs

2.5.1

  • MIGRATED: renamed cookbook chef_jira -> jira after getting the supermarket namespace
  • Bump default version to JIRA 6.4.11
  • Use https for Jira downloads. [GH-18]
  • Added service restart when ark resource changes. [GH-16]
  • Added support for PostgreSQL 9.2+ in dbconfig.xml. [GH-14]
  • Fixed LWRPs after cookbook name change. [GH-13]
  • Set Tomcat proxyName/proxyPort even without SSL. [GH-11]
  • Removed unnecessary non-dynamic web.xml template. [GH-10]
  • Fixed setting of jira.home for all install types. [GH-15]

Thanks go to @elijah @gsreynolds @legal90 and @patcon for helping out in this
release.

2.1.0

  • MIGRATED: renamed cookbook jira -> chef_jira

2.0.1

  • Bugfix: #8: Remove include_attribute from default attributes to prevent hard dependency on tomcat cookbook

2.0.0

If you were using the default recipe, there are no changes you need to make for your environment to upgrade this cookbook.

Major features are full support for standalone deployments and war building/deployments. Using ark where possible (its worked well for those using my Stash cookbook).

I've removed the upgrade recipe in favor of using ark. If you'd like to keep old JIRA installations around (in case of upgrade issues, etc.), I would recommend switching to the standalone install_type since ark will automatically create versioned symlinks and you can easily revert node['jira']['version']. To convert install_type if install_path is the default (X.Y.Z being currently installed node['jira']['version']):
* service jira stop
* mv /opt/atlassian/jira /opt/atlassian/jira-X.Y.Z
* ln -s /opt/atlassian/jira-X.Y.Z /opt/atlassian/jira
* Set node['jira']['install_type'] to standalone
* Run Chef Client

Other than that, migrated some recipes/templates and split out some recipes from the old linux_installer recipe, so ensure that if you're using a custom run list or template override for any nodes, that they include the new recipes/template location as necessary.

Full details:
* REMOVED: upgrade recipe and associated backup_* and *_backup attributes
* MIGRATED: linux_installer -> installer recipe
* MIGRATED: tomcat_configuration -> container_server_configuration recipe
* MIGRATED: Tomcat templates into tomcat folder:
* permgen.sh.erb -> tomcat/permgen.sh.erb
* server.xml.erb -> tomcat/server.xml.erb
* setenv.sh.erb -> tomcat/setenv.sh.erb
* web.xml.erb -> tomcat/web.xml.erb
* SPLIT: SysV init service configuration into sysv recipe and add init_type attribute
* SPLIT: database jar deployment (mysql_connector_j, etc.) into container_server_jars recipe which also installs JIRA jars for war install_type
* Bugfix: Use :create action instead of :create_if_missing for installer remote_file
* Enhancement: Add standalone and war recipes and quite a few attributes for supporting those install_type's
* Enhancement: Add build_war recipe
* Enhancement: LWRPs for handling multiple instances of install, etc.
* Enhancement: Bump default JIRA version to 6.1.5

1.7.0

  • Bump default JIRA version to 6.1

1.6.0

  • Bump default JIRA version to 6.0.7

1.5.0

  • Bump default JIRA version to 6.0.6

1.4.0

  • Initial Microsoft SQL Server support

1.3.0

  • Bump default JIRA version to 6.0.5

1.2.0

  • Bump default JIRA version to 6.0.2

1.1.0

  • Bump default JIRA version to 6.0.1

1.0.0

  • Split default recipe into individual recipes
  • apache2 recipe does not include default recipe
  • Load database/tomcat settings via Jira.settings library (bonus: help support Chef Solo)
  • Moved apache2 attributes into default attributes
  • Bump default JIRA version to 5.2.11
  • Added url_base attribute
  • Auto-detect checksum attribute for some versions
  • Added Vagrantfile and Test Kitchen for testing
  • minitest fixes
  • Added COMPATIBILITY.md
  • Refactored README documentation

0.1.3

  • Chef 11 fixes in apache2 recipe

v0.1.2

  • Hopefully removed hard dependency on java_ark from java cookbook

v0.1.1

  • Added permgen.sh template for custom JAVA_HOME, otherwise always defaults to JIRA installed JRE

v0.1.0

  • Initial release

Foodcritic Metric
            

2.12.1 passed this metric