Skip to content

AlexNabokikh/ubuntu-playbook

Folders and files

NameName
Last commit message
Last commit date
May 19, 2023
May 19, 2023
Dec 14, 2023
Dec 14, 2023
May 15, 2023
May 15, 2023
May 15, 2023
May 15, 2023
Dec 14, 2023
May 15, 2023
May 15, 2023
May 15, 2023
Dec 14, 2023
May 15, 2023
Dec 14, 2023
May 15, 2023
Dec 14, 2023
Dec 14, 2023

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: