Infrastructure Setup

The infrastructure setup part contains the scripts to setup OpenDevstack. It uses Ansible for installing the Atlassian tools and the provisioning app (including Rundeck. Setting up an Ansible control host is beyond the scope of this document.

Each individual component is set-up using a seperate playbook. So you can decide which playbooks to run, depending on your current environment.

The different playbooks

We have different playbooks depending on the environment in which you install the Atlassian tools and Rundeck. The playbooks depend on roles. The roles provide variables for customization. The different variables can be looked up under each role at default/main.yml.

General Playbooks
postgresql.yml

Sets up a (local) PostgreSQL for use with Atlassian tools.

schemas.yml

Sets up the required schemas for Atlassian tools

crowd.yml

Sets up Atlassian Crowd as an Identity and SSO provider

bitbucket.yml

Sets up Atlassian Bitbucket

jira.yml

Sets up Atlassian Jira

jira_enable_sso.yml

After basic setup of Crowd and Jira setup, enable SSO functionality.

confluence.yml

Sets up Atlassian Confluence

confluence_enable_sso.yml

After basic setup of Crowd and Confluence setup, enable SSO functionality.

Beside the basic playbooks, it might be required to run additional playbooks if you setup the Atlassian tools on AWS.

Special Plabyooks
crowd_post_setup.yml

Takes care that login to crowd is possible by inserting the AWS LB IP addresses into the database tables.

How to update ansible roles

The ansible role definitions are located in the ods-core repository at infrastructure-setup/ansible/roles

Note that there are two different types of roles:

  • roles starting with modified or local; these roles are modified by the OpenDevStack members and are maintained by them

  • all other roles, e.g geerlingguy.git, which are copied roles from ansible galaxy.

The roles from ansible galaxy are specified in the requirements.yml file. In order to migrate to a new version of the role, you need to

  1. specify the version in the requirements.yml file

  2. run ansible-galaxy install

Example: update geerlingguy.git to version 2.1.0

Update requirements.yml:
- src: geerlingguy.git
  version: 2.1.0
Call ansible-galaxy install:
export ANSIBLE_VAULT_PASSWORD_FILE=/vagrant/ansible/.vault_pass.txt && ansible-galaxy install -r requirements.yml -p roles
- andrewrothstein.openshift-origin-client-tools (v1.0.9) is already installed, skipping.
- geerlingguy.nginx (2.6.2) is already installed, skipping.
- geerlingguy.docker (2.0.4) is already installed, skipping.
- downloading role 'git', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-git/archive/2.1.0.tar.gz
- extracting geerlingguy.git to /vagrant/ansible/roles/geerlingguy.git
- geerlingguy.git (2.1.0) was installed successfully