Superlumic is a light utility wrapper around Ansible to ease the automated install of OSX 10.10 and higher. It uses several roles distilled over years of use in the Chef based predecessor, Kitchenplan.
Since moving to Ansible for my server deploys, I wanted to bring the same experience I created with Kitchenplan to OSX via Ansible. Existing solutions like Battleschool didn't offer the user experience I had in mind, so I started fresh.
While the Kitchenplan wrapper uses a Ruby gem and quite some code, I kept Superlumic a pure Bash script and use as much of the Ansible ecosystem and built in Ansible features as possible. This will help in extensability and maintenance.
Start by forking superlumic-config. This is the default configuration "role" for Superlumic and will serve as a starting point for your own configuration.
You will need at least a "username.yml" playbook, where you replace "username" by the username you will run Superlumic as on your mac. Use the roles folder to create "profiles" and add extra dependencies in the "requirements.yml" as needed.
How you organise your config files is entirely up to you, but this is how I do it. The "profile-all" role are the apps and settings that everyone in my company needs. Then I have a group file per type of installation (developers, designers, etc). In the "username.yml" playbook I then add all the specific things for that user.
curl -s https://raw.githubusercontent.com/superlumic/superlumic/master/superlumic | bash -s <your repo clone url here>
Or if you have an adversion to piping scripts over the internet into bash, download the Superlumic script and run it.
Starting from "roderik.yml" this will get you:
- All my favorite GUI apps installed via Homebrew Cask
- All my favorite commandline apps installed via Homebrew
- A fully operational PHP 5.5 installation with composer, optimised for running Symfony
- A MySQL and Postgresql database
- A configured Sublime Text 3
- NodeJS and several frontend oriented tools like bower, gulp and grunt
- A bash 4 CLI environment, with a nice prompt, and terminal theme
- A VIM environment with Janus installed
- A whole host of "osx default" settings including computername, dock size and position, etc
and, since it's almost pure Ansible, a very easy way to adjust, tune and extend this configuration to match your needs exactly.