Skip to content
lyraphase_workstation cookbook
Ruby HTML Shell Lua
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
attributes
files/default
libraries
recipes
spec
templates/default
test/.chef
.gitignore
.kitchen.yml
.rubocop.yml
.travis.yml
Berksfile
Gemfile
Guardfile
LICENSE
README.md
Rakefile
Thorfile
Vagrantfile
chefignore
metadata.rb

README.md

lyraphase_workstation cookbook

Donate using Liberapay Build Status

A cookbook including various recipes for installing tools used by myself. This includes Ableton Live DAW, VSTs, and other various tools and utilities.

Requirements

  • Mac OS X

Usage

Include the recipes you want in your Chef run_list, or in your soloistrc file.

NOTE: The default URLs for non-free applications will not work for you. You must host your own .dmg and app install files. Please see the recipe's cooresponding attributes file for examples. All checksums are SHA256, and can be found via shasum -a 256 path/to/file/here.dmg.

You may decide to create a DAW Chef Role such as:

roles/osx-daw.json:

{
  "json_class": "Chef::Role",
  "name": "osx-daw",
  "description": "Role for configuring OSX as a Digital Audio Workstation",
  "override_attributes": {
    "homebrew": {
      "casks": [
        "keyfinder",
        "soundflower",
        "audacity"
      ]
    },
    "lyraphase_workstation": {
      "ableton_live": {
        "managed_versions": "all",
        "options": ["EnableMapToSiblings"],
        "dmg": {
          "source": "http://www.example.com/mac/dmgs/ableton_live_suite_10.0.1_64.dmg",
          "checksum": "73f8b7d9c2e058639466cbb765e6e1610f97f542745e2c69567d7bf55a407e11",
          "volumes_dir": "Ableton Live 10 Suite Installer",
          "dmg_name": "ableton_live_suite_10.0.1_64",
          "app": "Ableton Live 10 Suite"
        }
      }
    }
  },
  "run_list": [
    "recipe[lyraphase_workstation::airfoil]",
    "recipe[lyraphase_workstation::ableton_live]",
    "recipe[lyraphase_workstation::ableton_live_options]",
    "recipe[lyraphase_workstation::max_for_live]",
    "recipe[lyraphase_workstation::traktor]",
    "recipe[lyraphase_workstation::traktor_audio_2]",
    "recipe[lyraphase_workstation::dmgaudio_dualism]",
    "recipe[lyraphase_workstation::oxium]",
    "recipe[lyraphase_workstation::polyverse_infected_mushroom_i_wish]",
    "recipe[lyraphase_workstation::mixed_in_key]",
    "recipe[lyraphase_workstation::korg_kontrol_editor]",
    "recipe[lyraphase_workstation::sublime_text_settings]",
    "recipe[lyraphase_workstation::nfs_mounts]",
    "recipe[lyraphase_workstation::bash_it_custom_plugins]",
    "recipe[lyraphase_workstation::daisydisk]",
    "recipe[lyraphase_workstation::drobo_dashboard]",
    "recipe[lyraphase_workstation::prolific_pl2303_driver]"
  ]
}

There are also some non-DAW related recipes included in this cookbook.

You may also decide to create a development tool Chef Role such as:

roles/osx-development.json:

{
  "json_class": "Chef::Role",
  "name": "osx-development",
  "description": "Role for configuring OSX with developer tools",
  "override_attributes": {
    "lyraphase_workstation": {
      "nfs_mounts": [
        "/../Volumes/my-nfs-mount    -fstype=nfs,nolockd,resvport,hard,bg,intr,rw,tcp,nfc nfs://nfs-server.example.com:/export/my-nfs-mount"
      ]
    }
  },
  "run_list": [
    "recipe[sublime_text_settings]",
    "recipe[nfs_mounts]",
    "recipe[homebrew_sudoers]",
    "recipe[iterm2_shell_integration]",
    "recipe[bash4]",
    "recipe[bash_it_custom_plugins]",
    "recipe[gpg21]"
  ]
}

To use the sublime_text_settings recipe, place your Sublime Text 3 Application Data folders under "#{node['lyraphase_workstation']['home']}/Dropbox/AppData/mac/sublime-text-3/. The recipe will create Symbolic Links to these files in the usual location: "#{node['lyraphase_workstation']['home']}/Library/Application Support/Sublime Text 3/.

The result is that your Sublime Text 3 folders get synced to Dropbox, and Sublime Text can look for them in the default location, follow the symlink to the Dropbox destination files.

The nfs_mounts recipe will just mount things in the list of nfs_mounts for you. The /../ part in front of /../Volumes/ happens to be important! The reason is because the OSX /etc/auto_nfs file does not usually want to mount things under /Volumes. Putting the /../ in front allows you to use automount to mount NFS volumes there.

The homebrew_sudoers recipe uses the included templates/default/sudoers.d/homebrew_chef.erb template to fix sudo permissions when running chef-client or soloist to provision your OSX machine. Without this, you may be asked for sudo password far too many times than is feasible to type. The included sudoers.d file drop-in allows the homebrew cookbook to run the commands it needs via passwordless sudo.

The iterm2_shell_integration recipe installs iTerm via iterm recipe, and then iTerm2 Shell Integration via script url https://iterm2.com/misc/install_shell_integration.sh. Checksum may not be kept up to date, but you can change this. See the recipe's attributes (attributes/iterm2_shell_integration.rb).

The iterm recipe installs iTerm via Homebrew. It then installs my default preferences file via template templates/default/com.googlecode.iterm2.plist.erb. You may not want this and may want to use a wrapper cookbook that just calls include_recipe 'iterm' so you can override my template.

The bash4 recipe installs Bash version 4 via Homebrew and changes your login shell. It also configures /etc/shells with a list of shells from attribute node['lyraphase_workstation']['bash']['etc_shells']. If you do not want to reset your login shell to bash from Homebrew, set default['lyraphase_workstation']['bash']['set_login_shell'] = false. The etc_shells_path is also configurable (see attributes/bash4.rb).

The bash_it_custom_plugins recipe uses sprout-base::bash_it to install a list of plugins for Bash-it. The default list is in node.default['lyraphase_workstation']['bash_it']['custom_plugins']. See the sprout-base cookbook for more details.

The gpg21 recipe installs GnuPG version 2.1 via homebrew/versions Homebrew Tap. It ensures that old symlinks to gpg binaries are deleted (configurable via node['lyraphase_workstation']['gpg21']['binary_paths']). Only symlinks are unlinked, no old binaries should be harmed. The recipe also installs a helper script to /usr/local/bin/fixGpgHome, and a LaunchAgents to /Library/LaunchAgents/com.lyraphase.gpg21.fix.plist. Finally, it sets RunAtLoad: false for the original /Library/LaunchAgents/org.gpgtools.macgpg2.fix.plist file. The reason for this set of patches is because the original LaunchAgent has hardcoded references to the old GnuPG binaries, and you may end up getting confused as to which version of GPG you are really using from gpg-agent, gpg, and gpg2. This recipe sets them all to the new gpg21 binaries from Homebrew. Finally, it adds StreamLocalBindUnlink yes to your /etc/ssh/sshd_config so you may use gpg-agent forwarding over SSH.

Attributes

Too many to list! Please see the appropriate recipe's attributes/<recipe_here>.rb file for details.

Some general rules of thumb:

  • .dmg file installers usually have the following attributes:
    • ['lyraphase_workstation']['recipe_here']['dmg']: A set of attributes describing the DMG such as:
      • ['source']: A source URL for Chef to download the DMG installer from. You must set your own! I do not intend to host these for anyone else!
      • ['checksum']: A SHA256 checksum of the .dmg file. Get this via shasum -a 256 your-file.dmg OR on *nix systems sha256sum your-file.dmg.
      • ['volumes_dir']: Directory name that the .dmg will expected to be mounted under /Volumes/.
      • ['dmg_name']: Name of the .dmg file without the .dmg suffix. That's it!
      • ['app']: Name of the .app folder inside the mounted .dmg. This maps to /Volumes/dmg_name/app_name_here.app.
      • ['type']: Type of application the dmg cookbook will install. This can be one of: app, mkpg, pkg. Default: 'app'
  • .zip file app installations usually have these attributes:
    • ['lyraphase_workstation']['recipe_here']['zip']: A set of attributes describing the .zip file:
      • ['zip']['source']: A source URL for Chef to download the ZIP archive from. Again: You must set your own! I do not intend to host these for anyone else!
      • ['zip']['checksum']: A SHA256 checksum of the .zip file. Get this via shasum -a 256 your-file.zip OR on *nix systems sha256sum your-file.zip.
  • Some recipes have support for License Keys. To use these there are two methods:
    • ['license'] data inside Chef Attributes
      • Just set the attributes like you normally would and the recipe will use them
    • ['license'] data inside Encrypted Data Bags
      • Check the recipe .rb file for the Encrypted Data Bag name, then create an encrypted data bag with the same data structure as you would put under ['license']. You may wish to use the knife-solo_data_bag gem to assist in operating on plain files. If you have a Chef Server, use the normal knife commands to operate on the data bags.
      • If the recipe finds an Encrypted Data Bag with ['license'] data (Hash), it will override the Attributes and use this instead.

Recipes

  • lyraphase_workstation::ableton_live: Install Ableton Live DAW
  • lyraphase_workstation::ableton_live_options: Manage Options.txt settings for Ableton Live DAW
  • lyraphase_workstation::airfoil: Install Airfoil
  • lyraphase_workstation::bash4: Install bash v4 from Homebrew
  • lyraphase_workstation::cycling_74_max: Install CYCLING '74 MAX
  • lyraphase_workstation::daisydisk: Install DaisyDisk
  • lyraphase_workstation::default: No-Op recipe for just loading libraries this cookbook provides
  • lyraphase_workstation::dmgaudio_dualism: Install DMGAudio Dualism
  • lyraphase_workstation::drobo_dashboard: Install Drobo Dashboard
  • lyraphase_workstation::korg_kontrol_editor: Install Korg Kontrol Editor (Manual Archived DL)
  • lyraphase_workstation::max_for_live: Install Max for Live
  • lyraphase_workstation::mixed_in_key: Install Mixed In Key
  • lyraphase_workstation::multibit: Install Multibit
  • lyraphase_workstation::musicbrainz_picard: Install MusicBrainz Picard
  • lyraphase_workstation::nfs_mounts: Manage /etc/auto_nfs entries for NFS Client mounts on OS X
  • lyraphase_workstation::omnifocus: Install OmniFocus
  • lyraphase_workstation::oxium: Install Xils-Lab Oxium Synthesizer
  • lyraphase_workstation::polyverse_infected_mushroom_i_wish: Install Polyverse - Infected Mushroom - I Wish VST
  • lyraphase_workstation::prolific_pl2303_driver: Install Prolific PL2303 Driver
  • lyraphase_workstation::sublime_text_settings: Installs Settings symlinks for storing Sublime Text configs in Dropbox
  • lyraphase_workstation::traktor: Installs Traktor DJ software
  • lyraphase_workstation::traktor_audio_2: Installs Traktor Audio 2 DJ Driver
  • lyraphase_workstation::vimrc: Installs vimrc via git repo
  • lyraphase_workstation::xcode: Install XCode via .dmg and accepts XCode build license

Author

Author:: James Cuzella (@trinitronx)

You can’t perform that action at this time.