Go to file
2022-03-20 22:10:59 +08:00
inventory Modularize Fedora playbook 2022-03-17 19:30:32 +08:00
playbooks system/flatpak: add installation for Flatpak tools 2022-03-20 22:10:59 +08:00
roles system/flatpak: add installation for Flatpak tools 2022-03-20 22:10:59 +08:00
ansible.cfg Modularize Fedora playbook 2022-03-17 19:30:32 +08:00
README.adoc Update README 2022-03-19 12:36:55 +08:00

This is my Ansible playbooks for various systems (only for Fedora desktop for now). This is an attempt in making a reproducible and declarative desktop management ala\-NixOS (and Guix).

A tour of the project

Welcome to the project, wandering "declarative desktop management" dreamers! Heres one of the many ways to achieve what youve been looking for while the world is not enlightened yet.

Prerequisites

For this project to work, you need the following dependencies.

  • Ansible (of course)

  • ansible-galaxy

The playbook collection also makes use of several collections from Ansible Galaxy. This mainly includes the following collections.

  • ansible.posix

  • community.general

Core tasks

The maintenance required for this project is not that big. It requires the same amount of attention as often as you install operating systems for the desktop (unless thats what you do professionally).

This playbook collection is primarily intended for automating my personal desktop systems. It shouldnt require an Ansible server running but having one is immensely beneficial. All operations are assumed to be done at the project root.

The main commands to interact with the playbooks can be summarized in this postcard-sized code block.

# To do the thing for one of your host.
ansible-playbook --ask-become-pass $PLAYBOOK_FILE

# Checking time!
ansible-playbook --ask-become-pass --check $PLAYBOOK_FILE

Project structure

This Ansible playbook collection takes a lot of cues from Justin W. Florys Ansible playbooks down to the very folder structure.

ansible-playbooks
├── inventory/  (1)
├── playbooks/  (2)
├── roles/      (3)
├── ansible.cfg (4)
└── README.adoc
  1. Contains the inventory for the Ansible server. [1]

  2. Various playbooks for various setups. Practically, this is similar to the hosts directory from my NixOS configuration.

  3. Contains the roles that mainly contain modularized tasks. This is similarly used to the modules directory from my NixOS configuration.

  4. The custom configuration for the Ansible server.

Resources

This configuration may evolve into an abominable framework of configuration over time. At some point, it wont be the simple "Hello World"-esque reference for Ansible. If youre looking where to start learning about this, Ive saved a list of them from the beginning:


1. Though, this is mostly meant to be used locally.