Skip to content

AlexNabokikh/ubuntu-playbook

Repository files navigation

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
    • 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. Install Ansible:

    1. Upgrade Pip: python -m pip install --upgrade pip
    2. Install Ansible: python -m pip install --user ansible
  2. Clone or download this repository to your local drive.

  3. Run ansible-galaxy install -r requirements.yml inside this directory to install required Ansible collections.

  4. 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: