Ansible playbook for setting up an Ubuntu machine. Supports roles for home server and dev laptop.
Ubuntu version = 25.04
./bootstrap.sh installs Ansible and dependencies, and calls ./run.sh
Use ./run.sh to wrap the ansible-playbook command with required/good options in place.
Expected bootstrap flow:
- Install OS
- Copy this repo to machine with USB
- Run
./bootstrap.sh <role>
system
: Makes sudo-required changes, such as installing system packages and system-level configuration.
Needs -K as a CLI flag.
user
: Sets up the user role for comfortable access.
Sets up SSH, symlinks in dotfiles, configures terminal profile & tools, etc.
Makes changes at the $HOME/ and below-level, thus it should not need sudo.
proglang : Install programming languages.
homeserver : Prepares the machine for a homeserver role.
laptop : Prepares the machine for a personal laptop.
The default user is ansible_user, which should be the user who's running ansible-playbooks (or run.sh).
GRUB_CMDLINE_LINUX_DEFAULT=pcie_aspm=off
- Set gnome-terminal profile preferences using gconftool-2
- Install systemd service for powertop
- Switch to 'intel' gfx card:
sudo prime-select intel - Run tpm/install_plugins
- Setup cron jobs for updating vim & tmux plugins.
- Setup cron job for running this playbook (monthly?)
- Setup Apt unattended-upgrades
- Fix touchpad area through startup script
- Add startup scripts