AlexNabokikh
ubuntu-playbook
Shell

Ubuntu setup and configuration via Ansible.

Last updated Nov 17, 2025
36
Stars
4
Forks
0
Issues
0
Stars/day
Attention Score
5
Language breakdown
No language data available.
Files click to expand
README

Ubuntu Ansible Playbook

Logo

![badge-gh-tests] ![badge-gh-release] ![badge-license]

This playbook helps to configure Ubuntu or any other Debian-based distro machine(s) for daily usage or software development quickly.

Contents

Playbook capabilities

NOTE: The Playbook is fully configurable. You can skip or reconfigure any task by Overriding Defaults.
  • Software
- Add ppa or deb repositories. - Install APT, Snap, Flatpak, Nix or Homebrew packages. - Install extra PIP or NPM packages.
  • Dotfiles
- Clone a set of dotfiles from a given Git repo and link them to the users' home directory. (Role)
  • System Settings
- hostname - Set a user-defined hostname. - directories - Create custom user directories. - sudoers - Apply custom user sudoers config. - fonts - Download and install Nerd Fonts. - ZSH - Install and configure ZSH and Oh-My-ZSH - Install custom OMZ plugins and themes. - TMUX - Install and configure TMUX and TPM (Plugin manager) - GNOME - Customizes the GNOME desktop (Role) - User Script - Execute arbitrary user script.

Installation

1. Upgrade Pip: python -m pip install --upgrade pip 2. Install Ansible: python -m pip install --user ansible
  • Clone or download this repository to your local drive.
  • Run ansible-galaxy install -r requirements.yml inside this directory to install required Ansible collections.
  • Run ansible-playbook main.yml --ask-become-pass inside this directory.

Running a specific set of tagged tasks

You can filter which part of the provisioning process to run by specifying a set of tags using ansible-playbook's --tags flag. The tags available are apt, dotfiles, dirs, sudoers, fonts, homebrew, hostname etc..

ansible-playbook main.yml -K --tags "dotfiles, apt"

Overriding Defaults

You can override any of the defaults configured in example.config.yml by creating a config.yml file and setting the overrides in that file.

Author

This project was created by Alexander Nabokikh (originally inspired by geerlingguy/mac-dev-playbook).

License

This software is available under the following licenses:

[badge-gh-tests]: https://github.com/AlexNabokikh/ubuntu-playbook/actions/workflows/test.yml/badge.svg [badge-gh-release]: https://github.com/AlexNabokikh/ubuntu-playbook/actions/workflows/release.yaml/badge.svg [badge-license]: https://img.shields.io/badge/License-Apache%202.0-informational
🔗 More in this category

© 2026 GitRepoTrend · AlexNabokikh/ubuntu-playbook · Updated daily from GitHub