ansible playbook to automate configuration on new machines
Find a file
2026-07-20 21:05:29 -05:00
group_vars gitignore sensitive variables. handy config. git config 2026-07-20 21:05:29 -05:00
inventory initial brain dump 2026-07-15 22:32:21 -05:00
roles gitignore sensitive variables. handy config. git config 2026-07-20 21:05:29 -05:00
.gitignore gitignore sensitive variables. handy config. git config 2026-07-20 21:05:29 -05:00
ansible.cfg initial brain dump 2026-07-15 22:32:21 -05:00
bootstrap.sh initial brain dump 2026-07-15 22:32:21 -05:00
local.yml gitignore sensitive variables. handy config. git config 2026-07-20 21:05:29 -05:00
postinstall.md initial brain dump 2026-07-15 22:32:21 -05:00
README.md gitignore sensitive variables. handy config. git config 2026-07-20 21:05:29 -05:00
requirements.md added mroe apps 2026-07-18 12:05:17 -05:00

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.