A Chef cookbook used to provision macOS
Перейти к файлу
Eric Hanko 0db78307ef
Release/1.9 (#73)
* Add documentation detailing new certificate resource changes incorporating the -T option

* modify security library and certificate resource to accomodate -T option

* Testing for new and improved certificate resource

* Fix Chef Spec tests

* bump version to 1.9.0

* hotfix for plist encoding type utf-8

* move plutil_format_map to libraries

* using Chef::Application.fatal to enforce encoding types

* add one second after each systemsetup call

* Add support for more hypervisors in keep_awake

- Leverage the node['virtualization']['systems'] ohai attribute to
determine whether we are a guest or a host
- Add appropriate chefspec tests

* Add another context for empty virtualization hash

* bump to 1.8.1

* ensure xcode-install gem is in Chef embedded even if ChefDK is present

* adjust implementation of running_in_a_vm?

* fix rspec shared context

* re-arrange chefspec keep_awake unit tests
2018-03-21 15:20:39 -07:00
attributes Release 1.5 (#43) 2018-02-12 12:23:41 -08:00
documentation Release/1.9 (#73) 2018-03-21 15:20:39 -07:00
libraries Release/1.9 (#73) 2018-03-21 15:20:39 -07:00
recipes Release 1.5 (#43) 2018-02-12 12:23:41 -08:00
resources Release/1.9 (#73) 2018-03-21 15:20:39 -07:00
spec Release/1.9 (#73) 2018-03-21 15:20:39 -07:00
test Release/1.9 (#73) 2018-03-21 15:20:39 -07:00
.gitignore Release plist and macos_user resources, new Xcode libraries, test cookbook and documentation. (#24) 2017-12-14 11:03:03 -08:00
.kitchen.yml Minor modifications to keep awake 2018-03-12 16:55:23 -07:00
.mailmap Release 1.5 (#43) 2018-02-12 12:23:41 -08:00
Berksfile Release/1.6 (#49) 2018-02-20 13:49:51 -08:00
LICENSE rename LICENSE for foodcritic 2017-09-27 16:32:45 -07:00
README.md Release/1.9 (#73) 2018-03-21 15:20:39 -07:00
TESTING.md Address changes in PR 2018-03-12 11:32:46 -07:00
chefignore Address changes in PR 2018-03-12 11:32:46 -07:00
metadata.rb Release/1.9 (#73) 2018-03-21 15:20:39 -07:00

README.md

macOS Cookbook

The macOS cookbook is a Chef library cookbook that provides resources for configuring and provisioning macOS. Additionally, it provides recipes that implement common use-cases of the macOS cookbook's resources.

Chef Requirements

Currently, we've only tested the macOS cookbook using Chef 13. We do intend to implement better test coverage in order to support more versions of Chef. Let us know if you find issues with previous versions and we will do our best to resolve them.

Supported OS Versions

OS X El Capitan 10.11 macOS Sierra 10.12 macOS High Sierra 10.13
build-status-1011 build-status-1012 build-status-1013

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']['disk_sleep_disabled'] false
node['macos']['network_time_server'] 'time.windows.com'
node['macos']['time_zone'] 'America/Los_Angeles'

Mono

Installs Mono. Requires setting the package, version and checksum attributes in order to override.

Usage: include_recipe macos::mono

Attributes used Default value
node['macos']['mono']['package'] 'MonoFramework-MDK-4.4.2.11.macos10.xamarin.universal.pkg'
node['macos']['mono']['version'] '4.4.2'
node['macos']['mono']['checksum'] 'd8bfbee7ae4d0d1facaf0ddfb70c0de4b1a3d94bb1b4c38e8fa4884539f54e23'

Xcode

Installs Xcode 9.1 and simulators for iOS 10 and iOS 11. See the Xcode resource documentation if you need more flexibility.

⚠️ Requires a credentials data bag containing an apple_id data bag item.

Usage: include_recipe macos::xcode

Attributes used Default value
node['macos']['xcode']['version'] '9.2'
node['macos']['xcode']['simulator']['major_version'] [11, 10]

Apple Configurator 2

Installs Apple Configurator 2 using mas and links cfgutil to /usr/local/bin.

⚠️ Requires a credentials data bag containing an apple_id data bag item.

Usage: include_recipe macos::configurator

Attributes: No attributes used in this recipe.

Data Bags

Both the macos::xcode and macos::configurator recipes require 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