Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexnabokikh/ubuntu-playbook
Ubuntu setup and configuration via Ansible.
https://github.com/alexnabokikh/ubuntu-playbook
ansible ansible-playbook debian linux popos ubuntu
Last synced: 9 days ago
JSON representation
Ubuntu setup and configuration via Ansible.
- Host: GitHub
- URL: https://github.com/alexnabokikh/ubuntu-playbook
- Owner: AlexNabokikh
- License: apache-2.0
- Created: 2022-06-18T08:37:27.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-14T15:51:12.000Z (11 months ago)
- Last Synced: 2024-10-17T18:03:09.821Z (19 days ago)
- Topics: ansible, ansible-playbook, debian, linux, popos, ubuntu
- Language: Shell
- Homepage:
- Size: 134 KB
- Stars: 24
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Ubuntu Ansible Playbook
![Logo](files/logo.png)
![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](#playbook-capabilities)
- [Installation](#installation)
- [Running a specific set of tagged tasks](#running-a-specific-set-of-tagged-tasks)
- [Overriding Defaults](#overriding-defaults)## Playbook capabilities
> **NOTE:** The Playbook is fully configurable. You can skip or reconfigure any task by [Overriding Defaults](#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](https://github.com/geerlingguy/ansible-role-dotfiles))
- **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](https://github.com/ryanoasis/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](https://github.com/PeterMosmans/ansible-role-customize-gnome/))
- **User Script**
- Execute arbitrary user script.## Installation
1. [Install Ansible](https://docs.ansible.com/ansible/latest/installation_guide/index.html):
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..
```sh
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](https://www.linkedin.com/in/nabokih/) (originally inspired by [geerlingguy/mac-dev-playbook](https://github.com/geerlingguy/mac-dev-playbook)).
## License
This software is available under the following licenses:
- **[Apache 2.0](https://github.com/AlexNabokikh/mac-playbook/blob/master/LICENSE)**
[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