ubuntu-playbook
ubuntu-playbook copied to clipboard
Ubuntu setup and configuration via Ansible.
Ubuntu Ansible Playbook
This playbook helps to configure Ubuntu or any other Debian-based distro machine(s) for daily usage or software development quickly.
Contents
- Playbook capabilities
- Installation
- Running a specific set of tagged tasks
- Overriding Defaults
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.
-
hostname
Installation
-
- 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.
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: