A personal Ansible Playbook to deploy/configure a Debian desktop system to my needs with Xfce and many additional packages.
Adapted for Debian 12 (Bookworm)
- Xfce desktop by default.
- Many additional packages from the official repos (LibreOffice, LaTex, Firefox-ESR, Docker etc.)
- Flatpaks installed by default: VSCodium, Element, Brave, Signal, Raspberry Pi Imager, JDownloader
- External applications available: Virtualbox, Mullvad (Client)
- Gaming: Steam, Wine and retro gaming emulators (Mupen64Plus, Mednafen/Mednaffe)
- Targets Intel/AMD systems (CPU/GPU)
- Virtualization packages (libvirt/QEMU/Virt-Manager)
- Almost everything comes from the main repos!
External applications are only installed when the "external" variable is set to true.
Keep that in mind when using this Playbook.
I made the decision to make these not be installed by default since I personally perefer things from the official repo or installed as a Flatpak.
There is nothing big to see here. I like the defaults and don't really change much of anything. YMMV. 😎
(Default Xfce desktop pictured here - if you must have a screenshot)
This Playbook mainly servers my own needs - feel free to adapt it to yours!
You can find many more variables under the vars directory - Make sure you take a look before running the Playbook. (So you can customize your install)
The dotfiles tasks installs my own config files. This might not be what you need - be sure to exclude the role when not needed. (This can be done via tags)
- Set the variables you need
- Take a look at the dotfiles role, since you most likely want to use your own dots!
- Clone/download this repository
- Unpack/cd into the directory
- Run
$ ansible-playbook main.yml (-Kk)
- The target will reboot when the playbook is finished running
- Done
All tasks can be selected via Tags, so you can pick whatever tasks you want to run.
Following, a couple of use cases:
- Run all tasks
$ ansible-playbook main.yml --tags all (-Kk)
- Only run a subset of tasks
$ ansible-playbook main.yml --tags "apt,vim,sysctl,grub,reboot" (-Kk)
- Run only one task
$ ansible-playbook main.yml --tags "flatpak" (-Kk)
All available Tags:
apt
upgrade
vim
dotfiles
postfix
sshd
sudo
groups
ntp
sysctl
grub
fstrim
fail2ban
xorg
xfce
packages
fontconfig
gaming
flatpak (Multiple Flatpaks installed)
virtualbox (external)
mullvad (external)
powershell (external)
reboot
Make sure you have set the correct IP/Hostname in the hosts file.
BEWARE: do NOT run this Playbook blindly!
Certain tasks will run on Ubuntu and Ubuntu based systems. Beware though that this Playbook was not tested on any Ubuntu system! Make sure to check the tasks to see what they actually do before running this on any Ubuntu based system!