Rebuild my Ubuntu laptop using Ansible playbooks. Just for the fun of it and to learn more about Ansible. Also automate a bunch of setup steps, eg add a new git repo to my virtualenvwrapper and bind to a the project home. A Vagrant box is used to test the Ansible playbooks.
- create a HOME directory for the user
- install rclone
- get the rclone config from the Password Manager
- place the rclone config in ~/.config/rclone/rclone.conf
- restore secret files from encrypted cloud storage
- install git
- clone this repo from github
- create a python virtual environment
- install the requirements: wheel, ansible, mitogen, ..
- deploy
First create a vagrant box
$ vagrant up
Run defined tests on the vagrant box.
laptop$ vagrant ssh --command "cd /vagrant; ANSIBLE_INVENTORY=hosts ./test.sh"
Then test the ansible playbooks on the vagrant box
- all tasks
$ vagrant ssh
vagrant$ cd /vagrant
vagrant$ ansible-playbook --inventory-file=hosts deploy.yml
- one role at a time using the tags defined in
deploy.yml
vagrant$ ansible-playbook --inventory-file=hosts deploy.yml --tags setup
- deploy onto the vagrant box via ssh
laptop$ ansible-playbook --inventory-file=.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory deploy.yml --tags terminator
In my usual workflow I change the ansible script, for example add a new alias aliases.zsh
, and then deploy to my laptop with
laptop$ ansible-playbook --inventory-file=hosts deploy.yml --tags=alias --extra-vars 'as_root=no'
docker pull cytopia/ansible:latest
docker run --rm -v $(pwd):/data cytopia/ansible ansible-playbook --inventory-file=hosts deploy.yml
automate everything and so everything is reproducible. it can be run again and again. makes testing, load testing, building and deploying easy. also great for scaling.
- virtualbox
- vagrant
- ansible
- docker
tools to access, manage and deploy.
- jungledisk
- s3cmd
- awscli
- rclone
- scala
- java runtime
- maven and sbt
great python packages to help writing great code. use functional programming, TDD, dependency injection, database abstraction, database migration.
- virtualenv
- nose, pyvows, hypothesis
- toolz, pyrsistent, effect
- inject
- sqlalchemy, agnostic
programming languages for high performance and system level access.
- dmd (d compiler)
- C, C++
wrangle, plot, predict, test hypothesis, estimate.
- anaconda
- numpy, scipy, sympy, Jupyter, Seaborn, scikit-learn
write code with fully fledged IDE or lightweight editor. plugins can be used to extend the functionality.
- intellij idea
- vscode
- vim
- git
- meld
- maven helper
- scala
- python
- elixir
- markdown support
- YouCompleteMe
- syntastic
- UltiSnips
- NerdTree
- tagbar
- vim-fugitive
- vim-airline
look under the hood.
show and measure what is happening in the Linux kernel.
- SystemTap, perf_events, dtrace4linux, ktap, lttng
- strace, ftrace, ltrace, ss, sysdig, tiptop
- mpstat, vmstat, netstat, iostat
- create workspace(s) in HOME
- git clone projects into the workspace(s)
communicate. create and manage documents, files.
- firefox
- libre office
- FocusWriter
- artha thesaurus
- Kazam
- Screenkey
- 7zip, bzip2
- Midnight Commander
- FileZilla
view and process photos, e-books, audio and video.
- rawtherapee
- vlc media player
- ripperX
- dvdrip
- OpenShot
- Calibre
- pychess
give Linux the look-and-feel I like. unfortunately haven`t figured out how to configure a "glass look"
- all backgrounds are transparent, blurred
- drop-down menu are transparent, blurred
- ...
tools for UI tweaks. did a few tweaks.
- Compiz config manager (CCSM)
sudo apt-get install ccsm
Compiz config settings manager, Unity plugin
- set opacity for launcher
- set opacity for panel (or use Unity Tweak Tool)
browse and download a theme
gnome-look.org
sudo apt-get install arc-theme
set theme in Unity Tweak Tool
- current theme is
Arc-dark
change desktop background
- ghost-in-the-shell
terminator
- transparency of background