A Chef cookbook used to provision macOS
jazaval Release/2.7 (#160)
* bump version

* Fix #63 (#152)

* refactor screensaver class disabled method

* fix indentation

* delete some unit tests

* don't smoke test UID when testing user resource (#153)

* remove uid testing

* remove multi-converge, added to idempotency branch

* Add multi-converge testing for all suites, idempotency for select suites (#155)

* remove uid testing

* add multi-converge for all test recipes

* remove sleep

* just see if multi-converges pass

* add idempotency testing for specific suites

* add guard in spotlight test recipe

* guard against last test disk

* add a case if the index is in an unknown state

* add a sleep to allow indexing server to chill out

* add a 3rd converge

* create volume object in guard

* 2 converges for now

* increase sleep to allow indexing state to settle down

* enforce idempotency for spotlight

* add guard to test recipe item

* fix bug

* remove idempotency testing for xcode

* set three times

* Enforce idempotency for default ARD resource actions (#157)

* remove uid testing

* add multi-converge for all test recipes

* remove sleep

* just see if multi-converges pass

* add idempotency testing for specific suites

* add guard in spotlight test recipe

* guard against last test disk

* add a case if the index is in an unknown state

* add a sleep to allow indexing server to chill out

* add a 3rd converge

* create volume object in guard

* 2 converges for now

* increase sleep to allow indexing state to settle down

* enforce idempotency for spotlight

* add guard to test recipe item

* fix bug

* remove idempotency testing for xcode

* set three times

* add guard for ARD activation

* implement very basic guards

* add some unit tests for the ARD module

* remove some whitespace

* fix stub

* demystify magic mask string

* Feature/fix doc links (#158)

* update ard resource documentation

* more updates to ard resource docuemntation

* update certificate resource doccumentation

* update keychain resource doc

* update plist doc

* update spotlight resource doc

* update xcode resource doc

* change link location and fix syntax mistake

* add 2.7 changes to changelog (#159)

* add 2.7 changes to changelog

* add link to broken links issue

* add more details to changelog

* update CL

* Update CHANGELOG.md

Co-Authored-By: jazaval <jazava@microsoft.com>

* Update CHANGELOG.md

Co-Authored-By: jazaval <jazava@microsoft.com>

* remove whitespace

* grammar fix

Co-Authored-By: jazaval <jazava@microsoft.com>

* grammar fix

Co-Authored-By: jazaval <jazava@microsoft.com>

* grammar fix

Co-Authored-By: jazaval <jazava@microsoft.com>

* grammar fix

Co-Authored-By: jazaval <jazava@microsoft.com>
Latest commit ac79dec Oct 27, 2018

README.md

macOS Cookbook

build-status-badge

Chef resources and recipes for managing and provisioning macOS.

Supported Chef Versions

  • Chef 13
  • Chef 14

Supported OS Versions

  • OS X El Capitan 10.11
  • macOS Sierra 10.12
  • macOS High Sierra 10.13
  • macOS Mojave 10.14

Attributes

Admin User and Password

node['macos']['admin_user'] = 'vagrant'
node['macos']['admin_password'] = 'vagrant'

Each of these attributes defaults to vagrant since our resources are developed with the Vagrant paradigm. In other words, the user and password declared here should be an admin user with passwordless super-user rights.

Recipes

Disable Software Updates

Disables automatic checking and downloading of software updates.

Usage: include_recipe 'macos::disable_software_updates'

No attributes used in this recipe.

Keep Awake

Prevent macOS from falling asleep, disable the screensaver, reboot upon power failure, enable wake on LAN, enable remote login (SSH) and adjust several other settings to always keep macOS on and available.

Usage: include_recipe 'macos::keep_awake'

Attributes used Default value
node['macos']['remote_login_enabled'] true
node['macos']['network_time_server'] 'time.windows.com'
node['macos']['time_zone'] 'America/Los_Angeles'

Xcode

Installs the latest Xcode the platform supports. See the Xcode resource documentation if you need more flexibility.

⚠️ Requires a credentials data bag containing an apple_id data bag item, or a user/password pair set under node['macos']['apple_id'].

Usage: include_recipe 'macos::xcode'

Attributes used Default value
node['macos']['xcode']['version'] '9.3'
node['macos']['xcode']['simulator']['major_version'] nil
node['macos']['apple_id']['user'] nil
node['macos']['apple_id']['password'] nil

Data Bags

The macos::xcode recipe can utilize a credentials data bag with an apple_id data bag item. The item should contain valid Apple ID credentials. For example:

Example:

{
  "id": "apple_id",
  "apple_id": "farva@spurbury.gov",
  "password": "0k@yN0cR34m"
}

Resources