Giter Site home page Giter Site logo

superlumic / ansible-role-homebrew Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 16.0 9 KB

Ansible role to install Homebrew on OSX. This role is part of the Superlumic project that aims to simplify repeat computer setups on OSX, 10.10 and up.

Home Page: http://superlumic.com

ansible-role-homebrew's Introduction

Superlumic

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.

Configuration

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.

Running Superlumic

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.

Out of the box result?

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.

ansible-role-homebrew's People

Contributors

roderik avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

ansible-role-homebrew's Issues

git config in a seperate role

Roderik, I think that the configuration of git has nothing to do with homebrew installation and configuration. It will be cleaner to seperate this in another role.

If you agree, I'll create the necessary pull requests.

Pass flags when installing a specific package

For example, I want to install MacVim with the --with-override-system-vim flag. Currently I have something like this:

- name: install developer brew applications
  homebrew: name={{item}} state=latest
  with_items:
    - macvim
    - tmux

Thanks @roderik!

Error: A newer Command Line Tools release is available

On a fresh install, superlumic fails after ansible-role-homebrew. I'm getting this error:
Error: A newer Command Line Tools release is available.\nUpdate them from Software Update in the App Store.

In diagnosing, when I run $ brew doctor I see:
Error: You have not agreed to the Xcode license. Please resolve this by running:
sudo xcodebuild -license accept

That might be something to add to the script.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.