Ansible Playbook to configure my laptops and desktops
I care about not having to think too much about my setup between machines. Especially when I want to get right to work.
For that reason, it is very comfortable for me to have the same base configuration on each machine (look, feel, keyboard shortcuts, core software, etc.).
My journey to the current state of this repo
- I found a cool bash script on the internet (I didn't understand most of it) 🤷
- I modified cool bash script for my needs and it worked! 🚀
- I learned about Makefiles. 😄
- I proceeded to do everything with Makefiles. 🤩🤩🤩
- I got tired of running successive Make targets over and again 😐.
- I used Ansible at work and decided to take a course to learn more about it. 🤓
- I put off actually taking the plunge to use Ansible. 🕒🕕🕘🕛
- I finally took the plunge and decided to use Ansible for my configuration. ✔️
This project adheres to Calendar Versioning, YYYY.MINOR.MICRO.
Supported Ubuntu LTS Versions
I will support the LTS versions I use. There are no plans to support non-LTS versions.
|LTS||Last Supported Branch/Tag|
Ansible Galaxy Roles
There is broader LTS and Distribution support in the following roles:
|iancleary.jetbrains_mono||installs Jetbrains-Mono font|
|iancleary.zsh_antibody||Installs Zsh, oh-my-zsh, and the antibody plugin manager|
This isn't exactly the list of Ansible roles, but below is a list of what the software installs.
- ULauncher, A ctrl + spacebar productivity bar, Ulauncher is inspired by Alfred for macOS and similar semantic search tools that followed in its wake.
- yadm dotfile manager
- HEY Mail, by Basecamp, hey-main snap
The GNOME Ansible roles configure my GNOME personal preferences.
Integrated Development Environments (IDE)
If you prefer a fully open source option, checkout VSCodium!
- antibody shell plugin manager (concurrent and compiled)
- Hyper Terminal, with "pane:splitHorizontal": "ctrl+shift+f", // changed from "ctrl+shift+e" because vercel/hyper #3660
- powerlevel10k theme with needed fonts
Screenshots and GIFs
Flameshot keybinding to the Print Screen key using
- Peek animated GIF screen recorder,
Getting Started with this repo
The Makefile is the entry point.
Common Utility Scripts
The scripts folder contains common setup between local scripts and Travis-CI.
Continuous Integration Testing is done with the .github/workflows/test.yml file.
Multiple jobs test independent portions of the installation.
While testing the playbook in order would be ideal, the preference here is to have the Continuous Integration finish faster.
Linting is performed on common file types:
New Machine Setup
For a new machine, I run the following command to set up my computer:
Please make sure you adjust your hostname as Ansible keys off this variable. I like to do this during the initial configuration of the machine.
wget -qO- \ https://github.com/iancleary/ansible-desktop/raw/main/run.sh | \ bash
This will prompt you for your
for the bash script and then once later for
ansible's "BECOME PASSWORD" prompt.
Notable Ansible Modules Used with regards to dependencies
- This is drives the
- This drives the ansible >=2.8.0 requirement
See CHANGELOG for history.
I benefited from the source work of others, see AUTHORS.md.
My choice to open source my work here is to share back with you.