Lead Image © Iaroslav Neliubov, 123RF.com

Lead Image © Iaroslav Neliubov, 123RF.com

Jira, Confluence, and GitLab

Operation Pushbutton

Article from ADMIN 43/2018
By
Jira, Confluence, and GitLab are very popular DevOps tools and often form the basis for agile work flows. With the right Ansible playbooks, Ubuntu can be turned into an agile work center.

When investigating DevOps, you will come across various definitions that ultimately refer to an agile work approach. DevOps, it's said, is ultimately quite simple: Admins take over responsibility for workflows and various processes from developers to manage systems more efficiently.

Companies realize that DevOps and agility are more than buzzwords when it comes to operating large platforms, such as public clouds, for which several assumptions from classic setups no longer apply. A setup with 10 nodes might be manageable manually and without automation, but if several hundred servers or more are part of the installation, conventional approaches won't get you anywhere.

Agile Work Needed

Large environments such as OpenStack pose a real challenge in terms of both development and maintenance. They comprise a large number of components that do not all follow the same release cycle. They are so powerful that they cover many aspects, including storage, network, and user management. They continue to evolve, resulting in the need for regular updates on a production platform, and the need to roll out new components that were not previously part of the operation.

They also require so many computers that it is impossible to maintain the platform manually because of the sheer number of managed systems. In short: In a large environment, the principles of agile work are a prerequisite for the platform to work well at all.

If you operate such a platform, you need to coordinate its components. Design documents help developers, operations, and architects plan new functions. Classic issue tracking makes it possible to track who is currently working on which function or problem, which is especially important for distributed teams. Automation is a prerequisite.

Such teams usually combine their automation solution with classic revision management. For example, Ansible playbooks can be managed easily and efficiently with Git. Once a new feature has been developed and tested, it is sufficient to check out the appropriate repository on the central Ansible server and start an Ansible run to roll out the change.

This kind of development also makes continuous integration easy: Each commit to the Git directory causes Jenkins to launch in the background and fires various tests at the new code. Possible errors are already noticeable during the development stage – not months later, when the change is finally implemented in a major update, as would be the case with the classic waterfall principle.

A Question of Tools

If you want to set up an agile, DevOps-style workflow, start by asking yourself what tools you require. Atlassian has established itself as a supplier of such tools. For example, many users use Confluence as a wiki to collaborate on design documents or to manage their documentation.

Jira is often added as an issue tracker, because it not only offers Scrum and Kanban, but other possibilities that not only manage tasks, but also visualize them. If you don't want to store your playbooks for Ansible on GitHub, you can choose GitLab, which allows a local centralized Git repository that can also be integrated easily into the previously mentioned continuous integration and continuous development concepts.

However, if you start with a plain vanilla Ubuntu 16.04 and want to roll out Confluence, Jira [1], and GitLab [2], you still have some work to do. Quite a few companies take this step without any automation at all, thus violating the automation principle in the process.

A lack of automation is a problem because, on the one hand, the setup is difficult to maintain and, on the other hand, it is virtually impossible to restore working Jira, Confluence, and GitLab instances with imported backups after a total failure. Therefore, when a working agile tool chain is needed most, it might not be available.

Ansible to the Rescue

The good news is that Confluence, Jira, and GitLab can be automated easily with Ansible. Prebuilt playbooks for almost every combination of a certain distribution and the tools for agile work, often including the latest releases, can be found online.

I was confronted with the task of building an agile work center that had to contain instances of Confluence, Jira, and GitLab. The goal was to install the three services automatically on a fresh instance of Ubuntu 16.04 by invoking a single Ansible playbook. The resulting playbook is the basis for this article.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus