by

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


About

Manon Midy

Manon has been working in the software engineering world from 2008. She enjoys the challenge to create economic value for a company where innovation and open source are the DNA. She is convinced it’s possible to provide professional services embracing FLOSS values (open-mind, transparency, co-elaboration) with business objectives. She believes the real strength of Enalean comes from the valuable men and women in their teams, as well as the powerful Tuleap techno.