This repo contains my own dev configuration files, a.k.a dotfiles. The configurations are managed with GNU Stow, and automated with Ansible
This playbook currently supports Fedora. Ubuntu and MacOS playbooks are in the work.
Ansible is able to automate 99% of the process, however it does require the following packages to be present:
- Python3 and pip
- Ansible
Note: 9 out of 10 times, Python and pip are shipped out of the box with a Linux distro.
To install Ansible:
sudo dnf install ansible
As ansible.cfg
and inventory
are placed under ansible/
directory, the execution of the the playbook will need to be from this directory:
cd ~/.dotfiles/ansible
If there is a vault
file present (ignored by .gitignore
):
ansible-playbook dotfiles.yml --become-pass-file vaut --vault-pass-file vaut
Otherwise, specify passwords at prompts:
ansible-playbook dotfiles.yml --ask-become-pass --ask-vault-pass
Current, some very minor modification of inventory and dotfiles.yml is required.
[local]
localhost
[local:vars]
ansible_connection=local
[remotes]
x.x.x.x
- name: The "I-specialise-in-automation" dotfiles playbook
hosts: remotes
roles:
# Standard tools/packages
- utils
...
Finally, execute playbook in remote servers:
ansible-playbook dotfiles.yml
Note: Unless remote hosts are part of long term workflow, don't commit their IP addresses to Git repo.
For more details, refer to each package's README.md: