Installs/Configures Atlassian JIRA. 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'] = truerecipe[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 jiraknife 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 jiraknife 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 jiraknife 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
