Infrastructure Setup
This page is outdated. Please follow the new installation guide instead. However, some parts are still missing there so you might find this page useful. |
The infrastructure setup part contains the scripts to setup OpenDevstack. It uses Ansible for installing the Atlassian tools and the provisioning app. 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.
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
.
- 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.
- 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
-
specify the version in the requirements.yml file
-
run ansible-galaxy install
Example: update geerlingguy.git to version 2.1.0
- src: geerlingguy.git
version: 2.1.0
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