WORK IN PROGRESS
This repo is my personal linux box as a ansible playbook.
It assumes some distro that uses apt (Ubuntu, Mint, Elementary).
If you do not have an ansible installation, run
./bin/get-ansible.sh
to install ansible and dependencies. After that, look into
laptop.yaml and uncommont (append # to line beginning) all modules you do not want to install.
Then run
./bin/bootstrap.shto run the playbook.
There are multiple roles which can be used. Each role installs a certain group of software (e.g. some programming language and packages or groups like security or development tools).
The following roles are available:
- [UNTESTED]
common: Installs base tools (git, curl, tree, ...) and serves as a collection of tools that do not belong to a specific group. All new tools go here first. - [TESTED]
docker: Installs docker and docker-compose - [TESTED]
security: Installs Keepass2 and pass - [TESTED]
nodejs: Installs nodejs (currently version 7) - [UNTESTED]
golang: Installs golang (currently version 1.8) - [UNTESTED]
python: Installs python3, virtualenv, pyenv and several data science libraries globally (numpy, scipy, pandas etc) - [TESTED]
java8: Installs Oracle Java8 and Maven - [TESTED]
tex: Installs TeXLive and Latexmk + configuration
Note The common module will likely be marked UNTESTED for ever since it
contains new tools that have not been verified to be installed correctly.
Possibly I will create a staging role that contains these new tools.
- To create a new role, the script
bin/add-rolecan be used like this:./bin/add-role.sh <role_name>. This creates the appropriate directories if the role does not already exist - Linting is available via
ansible-lint(pip install ansible-lint). Usemake lintto get tips for improvement
Assuming you have a working docker installation, you can test your setup
with make docker-install or make docker-check (calls ansible with --check flag).