ansible playbook to automate configuration on new machines
- Shell 100%
| group_vars | ||
| inventory | ||
| roles | ||
| .gitignore | ||
| ansible.cfg | ||
| bootstrap.sh | ||
| local.yml | ||
| postinstall.md | ||
| README.md | ||
| requirements.md | ||
auto-setup
Automated Fedora Workstation provisioning via ansible-pull.
Note
: This playbook targets the latest version of Fedora Workstation. If support for other distributions is added in the future, it may be refactored to be more distro-agnostic.
Usage (on a fresh Fedora Workstation)
This repo is designed to be kept public. Personal values (emails, names, etc.) live in a gitignored vars file that you create after cloning.
git clone https://github.com/jack/auto-setup.git
cd auto-setup
cp group_vars/local.yml.example group_vars/local.yml
# edit group_vars/local.yml with your real values
sudo ansible-playbook local.yml
Or use the one-liner bootstrap (skips local vars — edit after first clone):
curl -fsSL https://raw.githubusercontent.com/jack/auto-setup/main/bootstrap.sh | bash
Structure
.
├── .gitignore # Ignores group_vars/local.yml
├── ansible.cfg # Ansible configuration
├── bootstrap.sh # One-liner bootstrap for ansible-pull
├── group_vars/
│ ├── all.yml # System config (packages, repos, extensions)
│ └── local.yml.example # Template for personal values (copy to local.yml)
├── inventory/
│ └── hosts # localhost inventory
├── local.yml # Main playbook entry point
├── roles/
│ ├── dnf/ # DNF optimization + RPM Fusion repos
│ ├── flatpak/ # Flatpak + Flathub setup
│ ├── git-config/ # Git global identity + conditional work includes
│ ├── gnome/ # GNOME extensions
│ ├── graphics/ # GPU acceleration drivers (VA-API/VDPAU)
│ ├── handy/ # Handy (auto-fetches latest GitHub release)
│ ├── multimedia/ # ffmpeg swap + @multimedia group
│ ├── opm/ # OpenCode profile management (opm init + profiles)
│ ├── packages/ # DNF packages, third-party repos, Bun
│ ├── system/ # firewalld, sshd, SSH keygen
│ └── yaak/ # Yaak API client (auto-fetches latest GitHub release)
├── requirements.md # Feature wishlist
└── postinstall.md # Manual post-install steps
Post-install
See postinstall.md for manual steps to complete after the playbook runs.