These Ansible roles are simple in style and work well together on many distributions and many Ansible version.
A weekly test to verify if roles work well together.
A monthly test to see of the role still works on the current distributions. Some roles contain a version that requires frequent changes and tests.
Most roles have a “soft dependency” described in
requirements.yml. You can choose to use those roles if you like them. Here is an overview of these soft dependencies.
The dependencies are soft for these reasons:
- Better reusability.
- Easier to fork.
- Let implementor assume a start-state of a machine.
Because these dependecies are loose, you have to include them in your playbook yourself:
- name: make the best machine ever hosts: all become: yes roles: - role: robertdebock.bootstrap - role: robertdebock.java - role: robertdebock.tomcat
Some roles have a hard dependecies” on another role, mainy for a shared handler or variables set in the parent role, used in the child role. More details on how to use these roles. These hard dependencies are describe in
|common||reboot||A reboot is used in
|openvpn||selinux||SELinux is configured in
|openvpn||ca||OpenSSL keys are created in
|selinux||reboot||A reboot is used in
|update||reboot||A reboot is used in
|zabbix||httpd||handler & inherited variable|
Here is an overview of the hard dependencies:
Unit tests and integration tests are use to verify the quality of the roles, read more about testing
The goal is to let all Ansible roles work on as many distributions as possible, but this is sometimes not possible. For each distribution, the current and previous release is tested. A role may work on diferent distributions, like Red Hat Enterprise Linux (RHEL), but it’s not tested against it. By default these Linux distributions are included in the tests:
|Alpine||latest & edge*|
|CentOS||6 & latest|
|Debian||stable & unstable*|
|Fedora||latest & rawhide*|
|OpenSUSE||leap & tumbleweed|
|Ubuntu||latest, devel* & rolling|
- = These are experimental, builds are done for informative purposes and may fail.
Exceptions in distributions
Some Ansible roles do not work on all distributions. This table lists why.
|Ansible role||Excepted Linux distribution(s)||Reasoning|
|ara||CentOS 6||Depends on Ansible role python_pip.|
|awx||CentOS 6||Depends on Ansible role python_pip.|
|cargo||Alpine & CentOS 6||Weird error & rust is too old.|
|cloud9||ArchLinux, CentOS 6||
|digitalocean-agent||Alpine, ArchLinux, OpenSUSE||Not supported by DigitalOcean.|
|digitalocean-agent||Debian, Ubuntu||Package attempts to start service which is not possible in Docker.|
|docker||CentOS 6||Depends on Ansible role python_pip.|
|docker_ce||Many||Docker CE has limited support for distributions.|
|glusterfs||Alpine||GlusterFS is not available.|
|mitogen||CentOS 6||Depends on Ansible role python_pip.|
|mssql||Alpine, ArchLinux, CentOS 6, Debian, Fedora, OpenSUSE Tumbleweed & Ubuntu latest||Not supported by Microsoft.|
|openvas||Archlinux, CentOS 6||Depends on Ansible role python_pip and selinux.|
|owncloud||CentOS 6||Depends on Ansible role python_pip.|
|php||CentOS 6||Depends on Ansible role httpd.|
|phpmyadmin||CentOS 6||Depends on Ansible role httpd.|
|phpmyadmin||Alpine||There is no MySQL, only mariadb.|
|redis||CentOS 6||Depends on Ansible role python_pip.|
|roundcubemail||CentOS 6||Depends on Ansible role httpd.|
|rsyslog||ArchLinux||Package is only available in AUR.|
|selinux||ArchLinux||Package is only available in AUR.|
|spamassassin||Archlinux||Depends on Ansible role rsyslog.|
|sudo_pair||Alpine & CentOS 6||Depends on Ansible role cargo.|
|tftpd||Alpine||Depends on Ansible role xinetd.|
|zabbix||ArchLinux, Alpine, Debian, Fedora & OpenSUSE||Zabbix has limited OS support.|
The goal is to let all roles work on these Ansible version:
- devel (which is allowed to fail)
See errors? Please help and make a merge request on git.