Ansible role for Tuleap

A common issue people discovering Tuleap talk about is with the installation. We often see new posts on the mailing list asking assistance on how to install or how to update their platforms. The process once understood is not really complicated for an experienced sysadmin but that's not what we all are.
We tried to simplify the process, to document it clearly and simply but there still are problems.

Recently, while working on the mytuleap.com product (which is a way to ease the installation as it is done for you), we looked for a tool to automate deployment and configuration and we chose Ansible.

Ansible

Ansible is an open-source tool for configuration management. Basically, you describe your infrastructure in clear and understandable configuration files and, when you press enter, everything is deployed and standardized.

There are only a few (simplified) concepts you need to know before trying-out ansible:

  • Inventory: the list of your servers, ordered by groups
  • Tasks: an action on your server (e.g. copying a file or installing a package)
  • Roles: a role is a collection of tasks (e.g. Installation and configuration of a LAMP stack)
  • Playbooks: the orchestrator of your infrastructure it links tasks and roles to your inventory

For all these components, ansible uses the YAML syntax that make these files easily readable for humans

The Tuleap role

We decided to write an ansible role to ease the installation and the management of our Tuleap servers. You can find the role on ansible galaxy: https://galaxy.ansible.com/list#/roles/2002 and the source on github: https://github.com/Enalean/ansible-tuleap

First install the role on your ansible master:

# ansible-galaxy install Enalean.Tuleap

Then you simply create a playbook like this one:

- hosts: tuleap
  roles:
     - { role: enalean.ansible-tuleap, tuleap_version=master, tuleap_domain=tuleap.example.com, tuleap_packages_state=latest }

This means this will install and keep up-to-date Tuleap master version on the tuleap.example.com server. Apply these modifications with:

# ansible-playbook tuleap-playbook.yml

And voila! Your tuleap server is installed and configured in 2 commands and the creation of one file. However, it's interesting to note that ansible is even more powerful and will allow you to manage a whole farm of Tuleap servers in the same way- just replace the hostname by a group from your inventory and you're done.

Any contribution and feed-back is of course welcomed

Share this post

Leave a comment

To prevent automated submissions please leave this field empty.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Websites located at tuleap.org and other tuleap.org subdomains need to store and access cookies on your device. We need your acceptance. Get more information. Yes, I agree No, I disagree