Ansible playbook for preparing Fedora desktop system with Gnome DE.
Remote host:
- Install Fedora.
- Create user and update
user
in ansible/group_vars/all.yml andremote_user
in ansible/ansible.cfg. - Start sshd service
sudo systemctl start sshd
- Make sure automatic suspend is disabled.
Local host:
- Install requirements
ansible-galaxy install -r requirements.yml
- Add remote host ip or hostname to inventory file.
- Update sysprep.yaml playbook host if needed.
- Configure ssh access
ssh-copy-id user@hostname
. - For prod add ssh key to remote host
~/.ssh
directory.
cd ansible
ansible-playbook playbooks/sysprep.yml
Ansible playbook will:
- Add/remove RPM repositories
- Install/remove RPM packages
- Install flatpak applications
- Add python modules
- Add sudo rules
- Create symbolic links
- Enable/disable services
- Configure DNS (use dnsmasq instead of systemd-networkd)
- Create cron jobs
- Sync git repositories
- Deploy dotfiles
- Install fonts
- Install Gnome extensions
- Install prometheus node exporter
- Restore Fedora/Gnome settings from file. This is a manual step as it requires gnome session to be present.
dconf load -f / < backup/fedora_settings.conf
- Install themes.
- Enable firefox, google-drive, vscode, gphotos sync.
- Configure Timeshift backups.
Some extensions shows missing file error after installation. To resolve this remove extension using Extensions Manager
and install it again manually.
backup.sh
script gathers lists of:
- configured repositories
- installed applications and flatpaks
- present python modules
- gnome extensions
- fedora configuration
- user crontab
These lists are saved to backup directory.
Dot files specified in DOTFILES
variable are backed up to dotfiles directory. Changes are commited and pushed to this repository.
./backup.sh