Installs/Configures Atlassian JIRA. Please see 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.
- Chef 11.14+ for version 2.7.1+ of this cookbook
- CentOS 6
- RHEL 6
- Ubuntu 12.04
- MySQL
- Postgres
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.
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.
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.
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 | "" |
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 |
These attributes are under the node['jira']['tomcat']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
port | Tomcat HTTP port | Fixnum | 8080 |
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'
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",
}
}
}
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.
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.
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.
- Quickly testing with Vagrant: VAGRANT.md
- Full development and testing workflow with Test Kitchen and friends: 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/
For information on how to contribute to this cookbook, please see: CONTRIBUTING.md
Development of this cookbook has been generously supported in part by the code contributions of the following organizations and/or users:
- University of Pennsylvania (@bflad)
- KLM Royal Dutch Airlines (@mvdkleijn)
- Parallels Inc. (@legal90)
- Blended Perspectives Inc. (@patcon)
For a full list of contributors, please see Github
- KLM Royal Dutch Airlines
Please see licensing information in: LICENSE