This playbook helps to configure Ubuntu or any other Debian-based distro machine(s) for daily usage or software development quickly.
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.
- hostname
-
- Upgrade Pip:
python -m pip install --upgrade pip
- Install Ansible:
python -m pip install --user ansible
- Upgrade Pip:
-
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.
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"
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.
This project was created by Alexander Nabokikh (originally inspired by geerlingguy/mac-dev-playbook).
This software is available under the following licenses: