Configure your Ubuntu 18.04, 20.04, 22.04 Desktop as a development workstation for DevOps or DevSecOps. Pop!_OS 22.04 as well
This repo contains Ansible playbooks to configure your system as a development machine upon a clean install.
The playbooks should run in Debian based system but was only tested with:
For other versions of Ubuntu, change to the other branches of this git repo. Other versions include Ubuntu 18.04 LTS and 20.04 LTS.
Screenshot above is using bullet-train zsh theme
Screenshot above is using pure zsh theme
Screenshot above is using p10k zsh theme with tmux
I am a DevSecOps Engineer (focusing on Linux) and my daily job include working with various config management using Ansible. So if you are in a similar profession the installed system will suit your needs. It is also easy to extend using Ansible roles.
Summary of packages that get installed and configured based on roles:
/tmp
on tmpfs (reduce SSD read writes and increase SSD lifespan; no leftover files on system shutdown)laptop_mode
base_permanent_night_light.night_light_enabled
to True
)fzf
fuzzy finder in zsh terminal; check out this YouTube video to see how to use it~/.tmux.conf
file with tmux plugin manager and several tmux plugins
tmux
command, or enable custom command option in Tilix~/.tmux.conf
if necessary~/.vim_runtime/my_configs.vim
~/.vim_runtime/my_configs.vim
which are not part of the Vim Distribution. Edit this file if necessary.~/.zshrc
file if one does not exist
/etc/tor/torrc
if necessary/etc/proxychains4.conf
if necessaryclamscan
; clamd not installed for its huge memory footprintOn the system which you are going to setup using Ansible, perform these steps.
You need to install ansible
and git
before running the playbooks. You can either install it using pip
or apt
.
/usr/bin/sudo apt update
/usr/bin/sudo apt full-upgrade -y
/usr/bin/sudo apt install ansible git -y
And clone this repo (do not clone in /tmp
as this dir is cleaned and mounted in tmpfs)
git clone https://github.com/fazlearefin/ubuntu-dev-machine-setup.git
cd ubuntu-dev-machine-setup
Invoke the following as yourself, the primary user of the system. Do not run as root
.
ansible-playbook main.yml -vv -e "{ laptop_mode: True }" -e "local_username=$(id -un)" -K
Enter the sudo password when asked for BECOME password:
.
The main.yml
playbook will take anything from 15 minutes to an hour to complete.
After all is done, give your laptop a new life by rebooting.
What is this
laptop_mode
?
True
False
#fzf
lines in your ~/.zshrc
(this is not a known issue but a feature)tee: <snip> No such file or directory
. You can easily fix this by creating the missing directory manually: mkdir -p ~/.antigen/bundles/robbyrussell/oh-my-zsh/cache/completions
.You are more than welcome to send any pull requests. However, the intention of this repo is to suit my development needs. So it might be better if you fork this repo instead for your own needs and personalization.
If you think my work helped you in some way saving you time and effort, I am happy to receive any amount of donation. However, the code in this repo is completely free; absolutely no strings attached.
Bitcoin (BTC): bc1qzlhpm94vtk2ht67etdutzcy2g5an5v6g36tp0m