Skip to content

Automated set up of Fedora Workstation and Server using Ansible. Also serves as my dotfiles.

License

Notifications You must be signed in to change notification settings

zbhavyai/fedora-setup

Fedora Setup

Automated set up of Fedora Workstation and Fedora Server using Ansible

Workstation Ansible Lint Shellcheck Lint License Ask DeepWiki

The goal of this repository is to:

  • keep all dotfiles and configurations in version control
  • ensure system settings are reproducible across machines
  • automate setup to the highest reasonable extent with minimal manual intervention

What does it cover

The automation is done using multiple Ansible playbooks, which are named according to the tasks they perform.

Playbook Description Command
cleanup Removes unused packages and fonts make cleanup
customization Customizes GNOME Shell, installs dotfiles, and some other settings make customization
tools Installs essential utilities make tools
container Installs Podman or Docker make container
dev Installs JDK, Node.js, Postman, and few IDEs and their settings make dev
media Installs media-related applications make media
alternate Installs Google Chrome, and optionally some other applications make alternate
all Runs all above playbooks make all
server Some setup required only for servers make server

How to use

Note

Check all available targets using make help.

Making changes to your system based on the configurations in this repository:

  1. Run the init target. This creates a python virtual environment PY-ANSIBLE with the required dependencies.

    make init
  2. Activate the virtual environment PY-ANSIBLE.

    source .venv/PY-ANSIBLE/bin/activate
  3. To setup, lets say, dev tools, run below. This would install JDK, Maven, Node.js, Postman, and IDEs - VS Code, IntelliJ IDEA, and WebStorm - with their extensions/plugins installed and settings configured.

    make dev

    To setup everything what this repository offers, run:

    make all

Checking what this repository offers without making any changes:

  • The programmatic way to check changes being done to your system is to run the playbooks with --check flag. Example:

    source .venv/PY-ANSIBLE/bin/activate
    ansible-playbook playbooks/cleanup.yaml --check
  • Another way is to check the playbooks, roles, and group vars manually, which I find more reliable 😄

Saving your current system settings to the configurations in this repository:

  1. Run the sync target.

    make sync
  2. And then commit the changes, eg:

    git add .
    git commit -m "Sync"
    git push

About

Automated set up of Fedora Workstation and Server using Ansible. Also serves as my dotfiles.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published