Skip to content

Ansible playbook for setting up a debian linux workstation

Notifications You must be signed in to change notification settings

k0emt/debian-workstation-playbook

Repository files navigation

Debian Workstation Playbook

License: CC BY-NC 4.0

This project contains ansible resources for setting up a new debian based workstation.

Roles that will be setup are:

  • Git User: git, gitk, git-gui, user configuration, ssh keys
  • Power User:
    • zsh, oh-my-zsh, extensions, powerlevel10k, plugins
    • numerous command line tools
      • btop, bat, eza, fzf, mc, fastfetch, tldr, tmux, tree, vim, wget...
    • .vimrc file
    • IOSevka fonts installed
  • App User: audacity, OBS studio, gimp,inkscape, krita, hexchat, thunderbird
    • Wallpapers
  • Amateur Radio: QRQ, OpenSCAD, kiCAD, FLDigi, ngspice, GQRX
  • Developer: gcc, make, python3, go lang, elixir, rbenv, ruby, rails, podman, podman desktop, VS Code, gitnuro
  • TODO AI researcher: gcc, git, python3, numpy, pandas, scikit-learn, keras, matplotlib, ggplot, bokeh
  • TODO LLM researcher: ollama, open web ui
  • TODO Database Engineer: pgcli, pgadmin4-desktop, valkey, valkey-doc
  • TODO Communicator: Slack, Discord, Zoom, Edge

Project Structure

debian-workstation-playbook/
├── README.md
├── workstation.yml
└── roles/
    ├── role_name/
    │   ├── handlers/
    │   ├── tasks/
    │   │   └── main.yml
    ...

Initial bootstrap

How to do the initial bootstrap of getting ansible on the system:

sudo apt update
sudo apt install software-properties-common
# sudo add-apt-repository --yes --update ppa:ansible/ansible # for Ubuntu 
sudo apt install ansible

Running the playbook

  • Clone the repo onto your computer.
  • It is fine to use https at this point.
  • Change into the cloned directory.
  • To run the playbook on your local workstation, use the following command:
ansible-playbook -i localhost, -c local workstation.yml --ask-become-pass

Gotchas

If you have already enrolled a fingerprint, this is likely to block the playbook from properly running. It can get stuck at gathering facts. Delete enrolled fingerprints and try to run again.

If there is a failure downloading during a task, simply run the playbook again.

Install Custom roles

To run with selected roles, you can modify the workstation.yml file or duplicate it. Alter the duplicated file to have only the roles you want to run. You can do this by adding a # before the role name. On the command line specify the new file name instead of workstation.yml

Post install

Run p10k configure in a new terminal if you aren't prompted to set up powerlevel 10K.

Manual installs

postgresql server if you want a local server

nvm node version manager

SDKMAN! for JVM developers

mongodb mongosh

dBeaver database client

AWS CLI

Iosevka font

Set up TensorFlow in virtual environment

Developer Information

How to do a dry run of the playbook

ansible-playbook -i localhost, -c local workstation.yml --check --ask-become-pass

I think at this time running a --check will fail because there are too many things not evaluated which results in lacking settings.

Testing with WSL2

Testing using Virtualization

You can use Boxes on a Debian Workstation. NOTE: you would need to install boxes with sudo apt install gnome-boxes

Or if you have a Windows Pro OS you can use Hyper-V. Create a VM with a clean instance of your Debian distribution. To test your changes, clone down your forked repo. Switch to the appropriate branch and test installing it.

Development and test environments used

Quite a bit of the development and testing of this playbook was done on a Lenovo Duet gen 9 Chromebook. Testing and development was also done with a WSL2 instance of Ubuntu. Debian Linux running in Gnome Boxes on a Fedora Linux workstation was another test environment.

TODO items

  • revise and break out SSH configuration from git user
    • needs to add line to .zshrc to load agent and keys
  • refactor ruby installation
  • add roles for ai_researcher, database_engineer, and communicator

About

Ansible playbook for setting up a debian linux workstation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published