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
debian-workstation-playbook/
├── README.md
├── workstation.yml
└── roles/
├── role_name/
│ ├── handlers/
│ ├── tasks/
│ │ └── main.yml
...
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
- 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
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.
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
Run p10k configure
in a new terminal if you aren't prompted to set up powerlevel 10K.
postgresql server if you want a local server
nvm node version manager
SDKMAN! for JVM developers
dBeaver database client
Iosevka font
Set up TensorFlow in virtual environment
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.
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.
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.
- 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