Ansible collection for general purpose plugins, roles and playbooks.
This collection is under heavy development and there is no release available, yet. Things that work today, may not work tomorrow. This disclaimer will be removed as soon as there is the initial release, according to the TODO and CHANGELOG.
At while-true-do.io, we faced the situation, that we wanted to automate our setups. In the past, this was done with many different repositories (one per role / setup plugin). With Ansible collections, it is possible to bundle these properly and in a convenient way.
This collection takes care of general purpose plugins, roles and playbooks as described below. A role is considered "general purpose" as long as it does not fit properly in another collection.
None.
All of the roles are providing argument specifications and additional (optional) checks to improve handling and usability. Some roles also improve security by applying common security patterns from OpenSCAP. The following roles are bundled with this collection.
- Avahi
- Bash
- Chrony
- Cockpit
- dnf
- firewalld
- Glances
- k3s
- misc
- Perfomance Co-Pilot
- SELinux
- sshd
- sudo
- thermald
- tuned
- update
- user
The following playbooks are bundled with this collection and provide examples for role usage or templates for further improvements.
We are really happy, that you consider using our software. In case you want to install and run the code on your machine, please check out this section.
The provided playbooks, plugins and roles require Ansible-Core 2.12 on the control node.
The provided playbooks, plugins and roles support the following Operating System on the target nodes:
- Fedora Linux 35+
- CentOS Stream 8+
- AlmaLinux 8+
- RockyLinux 8+
Installing an Ansible collection can be done in multiple ways.
This is the most common way for users and will install the collection in the proper directories. It will also install the required dependency colections.
# Install
$ ansible-galaxy collection install whiletruedoio.general
# Update
$ ansible-galaxy collection install whiletruedoio.general --upgrade
# Remove
$ ansible-galaxy collection install whiletruedoio.general
For development purposes, you can also clone the repository and copy it to your desired location. Be aware, that you need to install dependencies on your own.
# Clone
$ git clone https://github.com/whiletruedoio/whiletruedoio.general.git
# Update
$ cd /path/to/repository
$ git pull
TBD
Thank you so much for considering to contribute! We are happy, when someone is joining the hard work.
Issues and Pull Requests are handled on a regular basis. Please be aware, that we may reach out to you, ask you to provide additional resources or want to discuss the issue a little, before planning it.
Providing code to this repository is pretty straight forward. Open an issue, so we can discuss the bug/feature and start working on it afterwards. You just need to open the pull request afterwards and that's it.
It is also strongly recommended to read the Contribution Guideline beforehand.
We are maintaining a changelog for repositories. Normally, the developers will update the changelog, according to keepachangelog.com.
To ensure a high quality and functionality, we want to carefully test our software. The provided code is automatically tested as described in the .cirrus.yml.
Each plugin, role and playbook provides tests, located in tests/. The below example demonstrates, how you can use them.
# Run linting test in Docker/Podman
$ ansible-test sanity --lint --docker
# Run only yamllint in Docker/Podman
$ ansible-test sanity --test yamllint --docker
# Run integration tests in Docker/Podman
$ ansible-test integration --docker fedora34
# Run a specific integration test in Docker/Podman
$ ansible-test integration --docker fedora34 role_myrole
Please also check the documentation for ansible-test.
Except otherwise noted, all work is licensed under a BSD-3-Clause License.
Please feel free to reach out to us and the community. We also recommend to read and understand the Code of Conduct beforehand.
- Site: https://while-true-do.io
- Blog: https://blog.while-true-do.io
- Code: https://github.com/whiletruedoio
- Chat: libera.chat #whiletruedoio
- Mail: [email protected]