This Ansible project automates the setup of a new development machine. It's designed to be distro-agnostic, working on Debian/Ubuntu, Arch Linux, and potentially other distributions.
machine-setup/
├── playbook.yml # Main playbook file
├── hosts.ini # Inventory file (localhost only)
└── roles/ # Roles directory
├── essentials/ # Essential tools (git, curl, etc.)
├── programming/ # Programming languages and tools
├── browsers/ # Web browsers
└── zsh/ # ZSH shell configuration
- essentials: Installs basic tools like git, curl, wget, vim, etc.
- zsh: Installs and configures ZSH shell with Oh My ZSH
- programming: (Placeholder) For installing programming languages and tools
- browsers: (Placeholder) For installing web browsers
To run the playbook:
ansible-playbook -i hosts.ini playbook.yml- Ansible installed on the control machine
- Sudo access on the target machine
You can customize the playbook by:
- Editing the
playbook.ymlfile to include or exclude roles - Modifying the tasks in each role to suit your needs
- Adding new roles for additional functionality
- Debian/Ubuntu
- Arch Linux
The playbook uses Ansible facts to detect the distribution and apply the appropriate tasks.