Ansible roles

These Ansible roles are simple in style and work well together on many distributions and many Ansible version.

Unit tests

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. To better understand what distributions and their versions are tested, have a look at the relations page.

Role name Travis GitHub Version
ad_auth travis github version
aide travis github version
alternatives travis github version
anaconda travis github version
ansible travis github version
ansible_lint travis github version
apt_autostart travis github version
ara travis github version
artifactory travis github version
at travis github version
atom travis github version
auditd travis github version
autofs travis github version
auto_update travis github version
azure_cli travis github version
backup travis github version
bios_update travis github version
bootstrap travis github version
buildtools travis github version
ca travis github version
ca_certificates travis github version
cargo travis github version
certbot travis github version
cis travis github version
clamav travis github version
cntlm travis github version
collectd travis github version
common travis github version
container_docs travis github version
core_dependencies travis github version
cron travis github version
debug travis github version
dhcpd travis github version
digitalocean-agent travis github version
dns travis github version
dnsmasq travis github version
docker travis github version
docker_ce travis github version
dovecot travis github version
dsvpn travis github version
earlyoom travis github version
eclipse travis github version
environment travis github version
epel travis github version
etherpad travis github version
facts travis github version
fail2ban travis github version
firewall travis github version
forensics travis github version
functions travis github version
git travis github version
gitlab_runner travis github version
glusterfs travis github version
gnome travis github version
grub travis github version
go travis github version
gotop travis github version
haproxy travis github version
haveged travis github version
hostname travis github version
httpd travis github version
image_builder travis github version
investigate travis github version
irslackd travis github version
java travis github version
jenkins travis github version
jitsi travis github version
kernel travis github version
kubectl travis github version
libvirt travis github version
locale travis github version
logrotate travis github version
logwatch travis github version
lynis travis github version
maintenance travis github version
mate travis github version
mediawiki travis github version
memcached travis github version
microsoft_repository_keys travis github version
minikube travis github version
mitogen travis github version
modprobe travis github version
molecule travis github version
mount travis github version
mssql travis github version
mysql travis github version
natrouter travis github version
nextcloud travis github version
nginx travis github version
node_red travis github version
npm travis github version
ntp travis github version
obsproject travis github version
omsagent travis github version
openssh travis github version
openssl travis github version
openvpn travis github version
owncloud travis github version
packer travis github version
php travis github version
php_fpm travis github version
phpmyadmin travis github version
postfix travis github version
postgres travis github version
powertools travis github version
powertop travis github version
python_pip travis github version
reboot travis github version
redis travis github version
release travis github version
remi travis github version
restore travis github version
revealmd travis github version
roundcubemail travis github version
rpmfusion travis github version
rsyslog travis github version
ruby travis github version
rundeck travis github version
scl travis github version
selinux travis github version
service travis github version
snort travis github version
software travis github version
sosreport travis github version
spamassassin travis github version
squid travis github version
storage travis github version
stratis travis github version
subversion travis github version
sudo-pair travis github version
swap travis github version
sysctl travis github version
sysstat travis github version
systemd travis github version
terraform travis github version
test_connection travis github version
tftpd travis github version
tigervnc travis github version
tlp travis github version
tomcat travis github version
travis travis github version
tune2fs travis github version
types travis github version
ulimit travis github version
umask travis github version
unbound travis github version
unowned_files travis github version
update travis github version
update_package_cache travis github version
upgrade travis github version
users travis github version
vagrant travis github version
vault travis github version
vdo travis github version
virtualbox travis github version
xinetd travis github version
xrdp travis github version
y travis github version
zabbix_agent travis github version
zabbix_proxy travis github version
zabbix_repository travis github version
zabbix_server travis github version
zabbix_web travis github version
skeleton - - version

Integration tests

To verify that combined roles work, an integration test Build Status runs every week. A report is available.

Dependencies

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.

Overview of dependencies

The dependencies are soft for these reasons:

Because these dependencies 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 dependencies on another role, mainly 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 meta/main.yml under dependencies.

Role Depends on Reason
ca httpd inherited variable
common reboot A reboot is used in tasks/main.yml with include_role.
openvpn selinux SELinux is configured in tasks/main.yml with include_role.
openvpn ca OpenSSL keys are created in tasks/main.yml with include_role.
php httpd handler
phpmyadmin httpd handler
roundcubemail httpd handler
selinux reboot A reboot is used in tasks/main.yml with include_role.
spamassassin rsyslog handler
tftpd xinetd handler
update reboot A reboot is used in tasks/main.yml with include_role.
zabbix httpd handler & inherited variable

Here is an overview of the hard dependencies:

Overview of hard dependencies

A page describing how I release considering these dependencies.

Component builds

Ansible tests are being executed using the following components

Operating specific containers

Component Build status
docker-alpine-openrc alpine build status
docker-amazonlinux-systemd amazonlinux build status
docker-centos-systemd centos build status
docker-debian-systemd debian build status
docker-fedora-systemd fedora build status
docker-opensuse-systemd opensuse build status
docker-oraclelinux-systemd oraclelinux build status
docker-redhat-systemd redhat build status
docker-ubuntu-systemd ubuntu build status

Ansible collections

Collection Status
development_environment Build Status
rundeck_collection Build Status

Github Actions

Component Status
Github Action Molecule Published
Github Action Galaxy Published
Github Action RPM build Published
docker-github-action-molecule github action molecule build status
docker-github-action-galaxy github action galaxy build status

Other tools

I use a few tools to maintain the software I create.

Tool Usage
ansible-generate Generate lots of file for ansible roles based on a few input files.
ansible-probe Test ansible roles on different distributions and version.
ansible-tester Try roles against vagrant machines before pushing or releasing.

Tests

Unit tests and integration tests are use to verify the quality of the roles, read more about testing

Issues & pull requests

See the overview of issues and pull requests.

Distributions

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:

Distribution Version(s)
Archlinux latest
Alpine latest & edge*
CentOS 7 & latest
Debian stable & unstable*
Fedora latest & rawhide*
OpenSUSE leap & tumbleweed
Ubuntu latest, devel* & rolling

Ansible versions

The goal is to let all roles work on these Ansible version:

See errors? Please help and make a merge request on git.