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

Terraform modules

I maintain these Terraform modules

Module State
digitalocean_ssh_key .github/workflows/terraform.yml
digitalocean_droplet .github/workflows/terraform.yml
cloudflare_record .github/workflows/terraform.yml

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.
pre-commit Some pre-commit hooks to test Ansible code.

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.