Use My Ansible Playbooks

  • Thursday, Mar 5, 2020

What Do My Playbooks Do and Which Should One Should You Use?


  • Configure zsh to my liking for every user on the system
  • Configure bash to my liking for every user on the system
  • Run Neofetch everytime zsh starts
  • Config nano to show line numbers and set tabs to spaces with width 4
  • Change the look of the bash shell on RedHat systems
  • Remove most of the info out of the “message of the day” (motd) on Ubuntu


  • Install updates
  • Do everything in the above dotfiles role
  • Install Cockpit for managing boxes via a GUI
  • Setup a systemd service and timer to run every night at midnight as well as after boot
  • Install Neofetch
  • Install FreeIPA client and realmd for joining a domain
  • Install update-motd for changing the message of the day
  • Install htop for pretty stats
  • Install SSH
  • Install the upgrade plugin for Fedora
  • Remove older versions of my Ansible playbooks


  • Do everything in the above base role
  • Do everything in the above dotfiles role
  • Install the Flatpak and Nextcloud PPA on Ubuntu
  • Install codecs for playing non-free codecs on Fedora
  • Install dav1d codecs
  • Install the network manager plugin for OpenVPN
  • Add the Flathub repo for Flatpaks
  • Install Riot, Spotify, DBeaver, and Remmina via Flatpak
  • Create a service and timer to deploy the latest settings nightly

Deploying My Playbooks

On Ubuntu, you need to run the following commands to install Ansible some libraries need for Ansible to work. I have tested this on Ubuntu 18.04 and 19.10.

sudo apt install python-apt python3-apt ansible git software-properties-common

To run Ansible pull on Fedora you just need to install Ansible and git by running the following command.

sudo dnf install ansible git

On Centos, you need to add to enable the EPEL repo to install Ansible.

sudo dnf -y install

Then, enable the EPEL repo and install Ansible.

sudo apt install --enablerepo epel-playground ansible git

After Ansible is installed, we need to edit our inventory file. Inventory files are what Ansible consumes to know what hosts and settings to use when running playbooks. By default, Ansible will use the inventory file located in /etc/ansible/hosts and is just a bunch of commented out examples. To remove these examples and add your computer to the inventory, run the following command:

echo "$(hostname) ansible_python_interpreter=/usr/bin/python3"  | sudo tee /etc/ansible/hosts

Once that is done, run the following command to use the base roll:

sudo ansible-pull -U base.yml

If you want all my desktop stuff, run:

sudo ansible-pull -U desktop.yml

If you just want my dot files, run:

sudo ansible-pull -U dotfiles.yml


If you need need a place to spin up test machines for your ansible roles, Digital Ocean is the place. Use my affiliate link to get $100 of credit during for first 60 days. Their simple interface and API make it easy to spin up virtual machines all around the world in less than a minute. Their hourly billing allows you to spin up and tear down servers without racking up a giant bill. Digital Ocean hosts mirrors for many Linux distributions reducing the amount of time you are waiting for update tasks to complete.

If you want Ansible playbooks made for your environment, email If you want file a bug, contribute to, or fork my playbooks go to my gitlab repo.