Cookbooks
confluence
Readme

Confluence Cookbook

Cookbook Version (opens in a new tab) Build Status (opens in a new tab) OpenCollective OpenCollective License (opens in a new tab)

Description

Installs/Configures an instance of Atlassian Confluence (opens in a new tab).

Maintainers

This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of Chef cookbook maintainers working together to maintain important cookbooks. If you’d like to know more please visit sous-chefs.org (opens in a new tab) or come chat with us on the Chef Community Slack in #sous-chefs (opens in a new tab).

Requirements

Platforms

  • RHEL/CentOS 6, 7
  • Ubuntu 14.04, 16.04

Cookbooks

JDK/JRE

The Atlassian Confluence Linux installer will automatically configure a bundled JRE.

If you prefer Confluence standalone installation, then you have to manage JDK/JRE 8 (Supported Platforms (opens in a new tab)) on this node. It can be done with java cookbook and appropricate attributes:

node.default['java']['jdk_version'] = "8"
include_recipe 'java'

Attributes

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

AttributeDescriptionTypeDefault
checksumSHA256 checksum for Confluence installStringauto-detected by library method
home_pathhome directory for Confluence userString/var/atlassian/application-data/confluence
install_pathlocation to install ConfluenceString/opt/atlassian/confluence
install_typeConfluence install type - "installer", "standalone"Stringinstaller
urlURL for Confluence installStringauto-detected by library method
useruser running ConfluenceStringconfluence
versionConfluence version to installString6.1.2

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

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

Confluence Database Attributes

These attributes are under the node['confluence']['database'] namespace.

AttributeDescriptionTypeDefault
hostFQDN or IP of database server ("127.0.0.1" automatically installs ['database']['type'] server)String"127.0.0.1"
nameConfluence database nameStringconfluence
passwordConfluence database user passwordStringchangeit
portConfluence database portFixnum3306 for MySQL, 5432 for PostgreSQL
typeConfluence database type - "mysql", "postgresql", or "hsqldb"Stringmysql
userConfluence database userStringconfluence

Confluence JVM Attributes

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

AttributeDescriptionTypeDefault
minimum_memoryJVM minimum memoryString512m
maximum_memoryJVM maximum memoryString768m
maximum_permgenJVM maximum PermGen memoryString256m
java_optsadditional JAVA_OPTS to be passed to Confluence JVM during startupString""
bundled_jreprefer JRE bundled with linux installerBooleantrue

Confluence Autotune Attributes

These attributes are under the node['confluence']['autotune'] namespace. Autotune automatically determines appropriate settings for certain attributes. This feature is inspired by the autotune recipe in the https://github.com/afklm/jira (opens in a new tab) cookbook. This initial version only supports JVM min and max memory size tuning.

There are several tuning types that can be set:

  • 'mixed' - Confluence and DB run on the same system
  • 'dedicated' - Confluence has the system all to itself
  • 'shared' - Confluence 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.

AttributeDescriptionTypeDefault
enabledWhether or not to autotune settings.Booleanfalse
typeType of tuning to apply. One of 'mixed', 'dedicated' and 'shared'.Stringmixed
total_memoryTotal system memory to use for autotune calculations.StringOhai value

Confluence Tomcat Attributes

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

AttributeDescriptionTypeDefault
portTomcat HTTP portFixnum8090

Recipes

  • recipe[confluence] Installs/configures Atlassian Confluence
  • recipe[confluence::apache2] Installs/configures Apache 2 as proxy (ports 80/443)
  • recipe[confluence::database] Installs/configures MySQL/Postgres server, database, and user for Confluence
  • recipe[confluence::linux_installer] Installs/configures Confluence via Linux installer"
  • recipe[confluence::linux_standalone] Installs/configures Confluence via Linux standalone archive"
  • recipe[confluence::tomcat_configuration] Configures Confluence's built-in Tomcat
  • recipe[confluence::crowd_sso] Configures user authentication with Crowd single sign-on

Usage

Confluence Data Bag

For security purposes it is recommended to use data bag for storing secrets like passwords and database credentials.

You can override any attributes from the ['confluence'] namespace using the confluence/confluence data bag. It could be either encrypted or not encrypted by your choice.

Example:

{
  "id": "confluence",
  "confluence": {
    "database": {
      "type": "postgresql",
      "name": "confluence_db",
      "user": "confluence_user",
      "password": "confluence_db_password"
    }
  }
}

Note - "confluence" nesting level is required!

These credentials will be used for your Confluence installation instead of appropriate attribute values.

Data bag's and item's names are optional and can be changed by overriding attributes ['confluence']['data_bag_name'] and ['confluence']['data_bag_item']

Confluence Server Installation

The simplest method is via the default recipe, which uses node['confluence']['install_type'] to determine best method.

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

Custom Confluence Configurations

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

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

Contributors

This project exists thanks to all the people who contribute. (opens in a new tab)

Backers

Thank you to all our backers!

https://opencollective.com/sous-chefs#backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

https://opencollective.com/sous-chefs/sponsor/0/website https://opencollective.com/sous-chefs/sponsor/1/website https://opencollective.com/sous-chefs/sponsor/2/website https://opencollective.com/sous-chefs/sponsor/3/website https://opencollective.com/sous-chefs/sponsor/4/website https://opencollective.com/sous-chefs/sponsor/5/website https://opencollective.com/sous-chefs/sponsor/6/website https://opencollective.com/sous-chefs/sponsor/7/website https://opencollective.com/sous-chefs/sponsor/8/website https://opencollective.com/sous-chefs/sponsor/9/website