Skip to content

Latest commit

 

History

97 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux Setup

This is my personal crib-sheet for setting up a new system.

Contained is a mostly-automated full setup for a developer desktop running Ubuntu. Provided is an idempotent 'run-setup' script that will do the majority of the setup. Also in this README are a few additional notes for things to install and/or configure.

Run setup:

Prerequisite: install the just command runner — it's the project's task interface (recipes live in the justfile).

ssh-keygen -t ed25519
 # Add SSH key to github.com
sudo apt install -y git
mkdir ~/work/
cd ~/work/
git clone git@github.com:DanVanAtta/linux_setup.git
cd linux_setup/
just setup     # install ansible tooling (uv/pipx, ansible-core, ansible-lint)
sudo -v        # pre-cache sudo; recipes avoid ansible's --ask-become-pass
just apply     # provision this machine

just apply (and the just diff check-mode dry run) provision the machine and need root: run sudo -v first so become needs no prompt — the recipes deliberately avoid ansible's --ask-become-pass, which hangs on this ansible-core version. Both also read the ansible-vault password from the MY_ANSIBLE_VAULT environment variable (exported via ~/.bashrc) so vaulted vars decrypt.

To check the config without touching the system (no sudo, no vault): just verify syntax-checks the playbook and runs ansible-lint. It's the commit gate — a git pre-commit hook runs it, so a commit only lands when it passes (just install-hooks wires the hook; just setup does too). The check-mode dry run against the machine is separate: just diff (needs sudo + vault).

Install List

The following are installed/configured:

  • Grub boot menu will always be displayed on boot (5s timeout)
  • Security hardening configs
  • Git:
    • sets up git username & email
    • add git config file with defaults & settings
    • SCM Breeze
  • Docker: install sudo-less docker (requires machine reboot)
  • DNS: adds DNS blacklist which maps advertising and tracking hosts to '0.0.0.0'
  • Apt: installs a lot of packages, eg: clamav, zip, shellcheck
  • VIM: deploys vimrc file
  • Apps:
    • Brave
    • Intellij (ultimate)
    • Steam

Manual Install

  • set up keyboard shortcuts
  • yed

Git Tools

git clone git@github.com:DanVanAtta/git_tools.git ~/.git_tools

## add to path
grep -q 'git_tools' ~/.bashrc \
    || (TOOL_HOME=~/.git_tools \
          && echo -n 'PATH=$PATH:' >> ~/.bashrc \
          && echo "$TOOL_HOME" >> ~/.bashrc)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages