Bootstrapping a Daily Driver Linux Environment with Ansible

Github Repository

The playbook aims to:

To achieve this, the playbook consists of four roles. Respectively:


Playbook Roles

Security

This playbook makes significant changes to kernel, grub, sysctl, filesystem modes, system services, based on the Center for Internet Security’s Linux Benchmarks. Not all benchmarks are implemented, though parity remains the end-goal.

The playbook also disables system crash reporters and enables unattended upgrades for security packages only.

Performance Tweaks

Presently the smallest role. Enables the fstrim timer, IO schedulers, some other stuff. RTFM.

Environment

The largest role in this playbook, and the least relevant for people who are not me. This role sets up my preferred user environments and dotfiles for Bash, Git, GnuPG, Gnu Screen, SSH, Vim, etc.

It modifies the ${PATH} environment variable to include my personal scripts directories and removes Snap (on Ubuntu systems).