I've been using Icinga2 at various customers and on our own infrastructure since it was released. I never released the roles on Ansible Galaxy, since I didn't consider the individual roles as a useful product and it would require quite some effort to show how they're supposed to work. One of the disadvantages of that, is that after a few years I had at least three different versions. One version for Debian only, one that also supported CentOS and also one for enterprise customers with a Satellite server. All of them had their own checks and tweaks and it was not always easy (and allowed) to keep them in sync.
At my previous enterprise customer, management was open minded enough to allow an open source license for our automation work and we have been able to add molecule testing and a few neat features. Pieter Avonts had the brilliant idea to support flexible Icinga host vars based on Ansible inventory variables, which solved one of the important issues we had with Ansible variable inclusion in host.conf and checks (you could only use variables defined in group_vars/all before).
Once Ansible collections became a thing with Ansible 2.9, the time was there to get it started and now I finally consider it in a ready to release state. Check the Icinga2 collection on Ansible galaxy and the code on Github. It supports Debian, Ubuntu, CentOS and RHEL (and it should still support Satellite based repos with a few configuration tweaks). The molecule tests have some examples to get you started, but I'll try to write a few blog posts with practical examples in the future.