This is not a normal dotfiles project, since it does not care about e.g., .bashrc, .profile and such files.
It concentrates on stuff that is difficult to handle for reasons such as
- Not present in standard Ubuntu channel
- The standard Ubuntu channel is lagging
- Is not packaged as a .deb
- Is inconvenient to get in one command
It installs the following tools on my Ubuntu (16.10+) workstation:
- Ansible (standard Ubuntu channel is lagging)
- VirtualBox (custom APT source)
- Vagrant (convenience)
- Docker, Docker Machine, Docker Compose (custom APT source, missing .debs)
- OpenJDK 8 (convenience)
- Emacs (convenience)
- Intellij (missing .debs)
- Fish (convenience)
- AWS CLI (convenience)
- Heroku Toolbox (snap)
- Calibre e-book library manager (with support for emailing to my Kindle)
- Spotify (custom APT source)
- OpenVPN (with customers' config)
- Charles proxy (with my private license)
- Various standard utilities (convenience)
git clone https://github.com/ollehallin/dotfiles
cd dotfiles
./just-fucking-install-it.sh [ansible-playbook args]
just-fucking-install-it.sh
is a Bash script that
- Installs
ansible
,ohai
andgit-crypt
if needed. - Runs
git-crypt unlock
if first time. - Invokes
ansible-playbook
with the correct arguments.
Do man ansible-playbook
for more info.
Some of the playbooks configures services that use secrets (e.g., my AWS credentials).
Everything that should be hidden from your eyes is encrypted by means of git-crypt
.
I store secret stuff in the encrypted file ansible/vars/secrets.yml
and in some of the files in ansible/files
.
All variables in secrets.yml
have names that begin with secrets.
.
If you fork this project, you'll need to create a new ansible/vars/secrets.yml
for storing your secrets and do git-crypt init
.
(Or just remove anything that refers to secrets.)
Do ./just-fucking-install-it.sh --list-tags
to see what tags are defined.
To only install e.g., Docker you can use
./just-fucking-install-it.sh --tags docker
To skip certain tags you can do e.g.,
./just-fucking-install-it.sh --skip-tags virtualbox
The third-party roles that are needed are defined by ansible/requirements.yml
When a new role is needed, do like this:
cd ansible
- Edit
requirements.yml
and add the new role. ansible-galaxy install -r requirements.yml
git add roles/
git commit
Pull Requests are welcome!