Skip to content
This repository was archived by the owner on Jul 19, 2019. It is now read-only.

Latest commit

 

History

History
17 lines (13 loc) · 3.64 KB

DeploymentNotes.md

File metadata and controls

17 lines (13 loc) · 3.64 KB

Notes on Deployment

Confluence version 6 — as tested on version's 6.6.0 through 6.14.0 — does not lend itself well to full automation. Specifically, while it's possible to automate deployment of all the (AWS-based) supporting infrastructure and the launch and initial configuration of the Confluence-hosting operating system as well as the base installation of the Confgluence binaries, final configuration is not currently possible. Confluence has a hard-requirement on using its installation web-UI for things like setting up the application's JDBC connector. Due to this, the automation in this project only includes:

  • Network security-group creation and configuration via the make_confluence_SGs.tmplt.json CloudFormation Template.
  • VM (EC2) launch, base OS-configuration and Confluence binary-installation via the make_confluence_EC2-node.tmplt.json CloudFormation Template.
  • Persistent, file-based network-hosted storage creation and configuration via the make_confluence_EFS.tmplt.json CloudFormation Template. Used for hosting larger storage-objects (attachments, avatars, etc.)
  • Backup-storaged creation and configuration via the make_confluence_S3-buckets.tmplt.json CloudFormation Template. For exports of data hosted on file-based, network-hosted persistent storage.
  • Instance-role object-creation and configuration via the make_confluence_IAM-instance.tmplt.json CloudFormation Template. Provides access from the Confluence-hosting VM to the backup-storage and other AWS-level resources.
  • PostGreSQL-based database creation and configuration via the make_confluence_RDS.tmplt.json CloudFormation Template. Provides primary storage — along with persistence and backups — for service-configuration and text-based content.
  • User-facing network proxy creation and configuration via the make_confluence_ELBv2-pub.tmplt.json CloudFormation Template.

Addtionally, "end-to-end" — to the extent possible with current versions of Confluence — automation is provided by:

  • The "parent" CloudFormation template, make_confluence_parent-EFS.tmplt.json. This CloudFormation template allows a centalized location for specifying deployment-options and invoking all of the previously-enumerated, individual templates. Use of this template will deploy a "ready-to-configure" Confluence system into an AWS account.
  • The Confluence_parent-EFS.groovy Jenkins pipeline-defnition is used to wrap the previously-noted "parent" CloudFormation template in a rebuildable/replayable Jenkins job. Note: it is generally expected that this pipeline will be run directly from the SCM containing this project's contents (or its duplicates), as that is how this pipeline-definition was tested.

Whether sequentially-using the individually enumerated templates, directly using the "parent" template or the Jenkins pipeline-definition, the end-state will be a ready-to-setup Confluence service. Once all of the above automation has run, all that need be done is access the Confluence service-setup GUI via web browser pointed to the EC2 host's private IP address. The service-setup GUI will walk the operator through configuring the JDBC connection, installing a license key and any remaining initial-deployment tasks.