https://github.com/justunsix/dotfiles-playbook
Ansible playbooks for Managing my Linux (Ubuntu, Fedora, Arch), Windows, MacOS Machines
https://github.com/justunsix/dotfiles-playbook
ansible dotfiles dotfiles-linux dotfiles-macos dotfiles-windows playbook
Last synced: about 2 months ago
JSON representation
Ansible playbooks for Managing my Linux (Ubuntu, Fedora, Arch), Windows, MacOS Machines
- Host: GitHub
- URL: https://github.com/justunsix/dotfiles-playbook
- Owner: justunsix
- License: mit
- Created: 2023-03-25T16:30:02.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-04-17T13:53:04.000Z (about 2 months ago)
- Last Synced: 2026-04-17T15:46:23.133Z (about 2 months ago)
- Topics: ansible, dotfiles, dotfiles-linux, dotfiles-macos, dotfiles-windows, playbook
- Language: Shell
- Homepage:
- Size: 258 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dotfiles-Playbook
Ansible playbooks for Managing my Linux (Ubuntu, Fedora, Arch), Windows, MacOS
Machines
## Prerequisites
Works on Linux (Fedora, Ubuntu, Arch distributions) and Windows Subsystem for
Linux (WSL2) Ubuntu.
## Usage
Run `bootstrap.sh`.
- When run on a Linux machine, Ansible configures the system it is run on
- When run in WSL, Ansible will configure Windows hosting WSL
### What the Script Does
- Script will check the Linux distribution and run the appropriate Ansible
playbook and install required software and Ansible requirements for the target
system.
- Playbook is designed to work with a repository containing dotfiles and
configuration files like my [dotfiles](https://github.com/justunsix/dotfiles)
repository. These are configured in the configuration `yaml` files in the
`group-vars` and `host-vars` folders.
### Overriding Defaults
- Variables used by Ansible can be overridden with a `config.yml` file in the
root of the repository. Optionally, another configuration `yaml` file
specified in a repository that contains vars files such as `dotfiles-overlay`
defined in the `default-config.yml`.
- These files can be helpful to override variables for different machines or
environments and manage secrets outside of this repository.
## Roadmap
- Make Ansible vars and tasks more flexible instead of hardcoding values with:
- Use
[`ansible.builtin.setup`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/setup_module.html)
settings
- `ansible_facts['distribution']` for conditionals on Fedora and Ubuntu playbook
- Build on `default_config.yaml` and override for other Linux distributions
- Set up
[Ansible logging](https://docs.ansible.com/automation-controller/latest/html/administration/logging.html)
to more easily read output outside the terminal
- Improve README to describe repository structure and tasks
## License
Distributed under the MIT License. See `LICENSE.txt` for more information.
### Built With
- [Ansible](https://www.ansible.com/)
- Inspired by
[geerlingguy/mac-dev-playbook](https://github.com/geerlingguy/mac-dev-playbook)
and
[dotfiles Ansible role](https://github.com/geerlingguy/ansible-role-dotfiles)