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

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


Sets up the required schemas for Atlassian tools


Sets up Atlassian Crowd as an Identity and SSO provider


Sets up Atlassian Bitbucket


Sets up Atlassian Jira


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


Sets up Atlassian Confluence


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

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
- extracting geerlingguy.git to /vagrant/ansible/roles/geerlingguy.git
- geerlingguy.git (2.1.0) was installed successfully