13 Production macOS Build
Vanessa White редактировал(а) эту страницу 2018-12-27 12:37:13 -08:00

Production macOS Build Contents

This is a walkthrough of the steps taken by dinobuildr to configure a client system.

Software Versions

A quick table of the current versions of the software we deploy in our build.

Name Version
Code42 CrashPlan 6.9.0
Firefox 63.0.3
Vidyo 3.6.14

Build Steps

Check macOS Version (Shell Script)

Associated shell script: macos-versioncheck.sh

This action executes the macos-versioncheck.sh shell script on the machine, which queries the expected major and minor release version of macOS running on the target system (the system to be built) and checks against a minimum acceptable version. This check is important, since dinobuildr cannot automatically upgrade a system from one major version to another (from 10.12.x [Sierra] to 10.13.x [High Sierra] for example). It is important that we deploy systems with all the latest security updates running the latest version of macOS, so if the target system is below the minimum supported level, the build will fail to execute and will display an error message.

Configure Screensaver (Shell Script)

Associated shell script: screensaver.sh

This action executes the screensaver.sh shell script on the machine, which temporarily disables the screensaver and then creates a self-deleting launchagent to set the screensaver to activate after 5 minutes of activity. The screensaver is disabled during the course of the build so that an EUS tech can easily see the progress of the build and can quickly determine when a build is complete.

Configure ComputerName (Shell Script)

Associated shell script: set-computername.sh

This action executes the set-computername.sh shell script on the machine, which sets the LocalHostName and the ComputerName on a machine using the following naming convention:

[username]-[last 6 digits of the serial number]

The script obtains the username from the name of the logged in user that the script is being run on, and doesn't reach out to any external service to verify.

Download Crashplan deploy.properties (File)

Associated file: deploy.properties

Downloads a config file to stop the Crashplan app from auto-opening once it's installed

Run Crashplan Preflight (Shell Script)

Associated Shell Script: crashplan_preflight.sh

Runs the crashplan_preflight.sh script which creates the /Library/Application Support/CrashPlan folder, then moves the config file downloaded in the previous step into /Library/Application Support/CrashPlan

Install Crashplan (DMG Installer)

This action downloads CrashPlan client from vendor source and installs the application after verifying the SHA256 hash of the downloaded file matches the expected value.

Install Firefox (DMG Installer)

This action downloads Firefox from Mozilla source and installs the application after verifying the SHA256 hash of the downloaded file matches the expected value.

Configure Firefox Bookmarks (Shell Script)

Associated shell script: firefox-bookmarks.sh

This action executes the firefox-bookmarks.sh shell script, which creates a distribution.ini and places it in /Applications/Firefox.app/Contents/Resources/distribution. We currently use this file to define default bookmarks that are helpful for new hires.

Install Vidyo (DMG Installer)

This action downloads the Vidyo client from v.mozilla.com and installs the application after verifying the SHA256 hash of the downloaded file matches the expected value.

Configure Firewall (Shell Script)

Associated shell script: firewall.sh

This action executes the firewall.sh shell script, which enables the macOS firewall.

Configure Wallpaper (Shell Script)

Associated shell script: wallpaper.sh

This action executes the wallpaper.sh shell script, which copies the wallpaper that was downloaded in a previous step to the /Users/Shared directory and tells macOS to change to that wallpaper.

Configure Dock (Shell Script)

Associated shell script: dock-config.sh

This action uses curl to load a specific commit of the python script called Dockutil into memory, then execute that script several times to configure the macOS dock.

Note: This script references a 3rd party script, and is designed to pull down a very specific commit of that script which is verified by a SHA256 hash. The specific commit of the script has been read and approved by Mozilla IT, however we recognize that this is not an ideal situation.

Disable Analytics Settings (Shell Script)

Associated shell script: analytics_settings.sh

This action executes the analytics_settings.sh shell script, which disables automatic submission of diagnostic data to Apple.

Enable Automatic Updates (Shell Script)

Associated shell script: app-store-updates.sh

This action executes the app-store-updates.sh shell script, which enables automatic macOS software updates in the macOS App Store.

Update macOS (Shell Script)

Associated shell script: update-macos.sh

This action executes the update-macos.sh shell script, which updates and installs the latest macOS software updates on the machine.