/battlestation

Setup your local battle station with ansible.

Primary LanguageShell

Build Status

Battlestation

Setting up a new machine? Let ansible do all the work. Save hours of finding downloads, managing installations, setting up configurations and trying to remember where things should be.

With ansible we're able to set up a new machine automatically, it can take only minutes to get your machine ready. Ansible commands are repeatable in an idempotent manner, meaning, it can be ran again to correct issues without having to run previously successful commands.

If battlestation is managing your applications and cli, then it can also keep them up to date. Running the playbook or the quick setup will upgrade all applications and cli commands that battlestation supports.

Credit to Josheph Kahn's blog.

MacOS

Setup a macos machine.

Quick Setup

Quick setup will install battlestation to /tmp, and uses the default installations and configurations.

sh <(curl -H 'Cache-Control: no-cache' -ssSL https://raw.githubusercontent.com/wenn/battlestation/master/setup/macos_run.sh)

Custom Setup

Allows you to disable/enable certain modules before running the ansible playbook.

  1. Get battlestation without git.
BSM=battlestation-master && curl -sSL https://github.com/wenn/battlestation/archive/master.zip -o ${BSM}.zip && unzip $BSM && cd $BSM
  1. modify your battlestation
  2. Install required modules ./setup/macos_run.sh -r
  3. From battlestation, run the playbook ansible-playbook -i HOSTS setup.yml

Supports

Module Version Required Enabled
homebrew latest yes yes
python 2.7 yes yes
pip latest yes yes
ansible 2.5 yes yes
git latest yes yes
chrome latest no yes
vim latest no yes
tmux latest no yes
iterm2 latest no yes
shiftit latest no yes
dropbox latest no yes
firefox latest no yes
awscli latest no yes
virtualenv latest no yes
node latest no yes
npm latest no yes
virtualbox latest no yes
vagrant latest no yes
intellij-idea-ce latest no no
visual-studio-code latest no no
atom latest no no
sublime-text latest no no

Enable/Disable a module

Modify the file customize.yml. Comment to disable install.

Dotfiles

What is a dotfile?

A personal repo to store your "dot" configurations, like a .vimrc or .bashrc. For inspiration, take a look at mathias's collective dotfiles.

How to enable?

To use your personal dotfiles, allow setup to know your dotfiles repository's https uri of the dotfiles. The setup will provide a prompt for you to enter the location of your dotfiles directory.

Supports

You can view the list of supported dotfiles in customize.yml. If a dotfile does not exists in your personal dotfiles dir, it will be a no-op. Furthermore, you can comment on items in managed_dotfiles to ignore the default behavior.

TODO

  • docker
  • add iterm2 conf
  • intelliJ conf
  • postman
  • gem
  • sdkman
  • vbox
  • coreutils ( brew )