New VMware Fusion backup scripts

I’ve overhauled my scripts for backing up VMware Fusion images with Carbon Copy Cloner.  Now, the currently running VMs are paused, backed up, then unpaused.  Pausing/unpausing does not save the contents of the VM’s RAM to disk, so I’ve also added support for suspend/resume.

You can get the updated scripts in my GitHub repository.

Adobe Creative Cloud 2014 and Munki

A year ago, we were first getting started with Munki – and deploying Adobe’s Creative Cloud applications was an important goal in our effort to move towards modular deployments. Using Adobe’s Creative Cloud packager, I made individual packages. For some people, we deployed individual apps, but for others, I created manifests that resembled CS6-style “suites.” It worked, and I moved onto other tasks.

We have been deploying the same Adobe CC packages from June 2014 until now. There have been requests for newer versions of these applications, but building newer packages was a significant amount of work – especially because Adobe’s installer packages are randomly broken in a number of different ways.

Recently, Nick McSpadden documented a significantly better method of deploying these apps on the Munki wiki, along with their updates (imported with Tim Sutton’s aamporter). He tested the uninstallers, too, and wrote his own when they didn’t work properly. He also wrote an excellent blog post to further assist Munki administrators in adding the proper metadata for all of the Adobe applications.

Here’s my contribution.

System Requirements

When importing these packages into Munki, I noticed most, if not all, had incorrect OS requirements set in the pkginfo files.  In the interest of simplifying things, I set all of our Adobe packages to require OS X 10.9.5.  When Creative Cloud 2015 is released, it seems that will be the requirement anyway.

PDF Browser Plugin

We’ve had some difficulty in the past with Adobe’s PDF browser plugin. Even though we have an enterprise site license for all of the CC applications, we found with Acrobat 11 that if Acrobat hadn’t ever been launched, and the user viewed a PDF file in their browser, they’d receive an error message about needing to agree to the EULA. Launching Acrobat never displayed a EULA, but it got rid of the browser plugin’s message. This is unacceptable, especially in our computer labs. Originally, our solution was to move the browser plugins to another folder – that way, the user could move them back if they wanted.  In practice, though, we found it easier to delete the plugins entirely.

We’re pushing a package called “removeadobepdfplugin” with the following postinstall script:

#!/bin/sh
rm="/bin/rm"
PDFPLUGIN1="/Library/Internet Plug-Ins/AdobePDFViewer.plugin"
PDFPLUGIN2="/Library/Internet Plug-Ins/AdobePDFViewerNPAPI.plugin"
DISABLEDPLUGINS="/Library/Internet Plug-Ins (Disabled)"
${rm} -rf "${PDFPLUGIN1}"
${rm} -rf "${PDFPLUGIN2}"
${rm} -rf "${DISABLEDPLUGINS}"
exit 0

It’s set as an update_for the Acrobat package, and also has this installcheck_script:

#!/bin/bash
PDFPLUGIN1="/Library/Internet Plug-Ins/AdobePDFViewer.plugin"
PDFPLUGIN2="/Library/Internet Plug-Ins/AdobePDFViewerNPAPI.plugin"
if [[ -e ${PDFPLUGIN1} ]] || [[ -e ${PDFPLUGIN2} ]]; then
exit 0
else
exit 1
fi

Application Descriptions

At the end of Nick’s blog post, he mentions Pepijn Bruienne’s suggestion to grab the app descriptions from MacUpdate. Since MacUpdate’s descriptions were incomplete and some needed editing, here are all of the descriptions we’re using:

Acrobat Pro DC

Adobe Acrobat Pro DC with Adobe Document Cloud services is here. Completely reimagined PDF tools let you create, edit, sign, and track PDFs from anywhere. It will change the way you work with design layouts, press-ready files, and all your important documents forever.

After Effects CC 2014

The new, more connected After Effects CC 2014 can make the impossible possible. Get powerful new features like a Live 3D Pipeline that brings CINEMA 4D scenes in as layers – without intermediate rendering. Share work directly from within the application and get access to new features the moment they’re released. Your entire creative world, together in one place.

Audition CC 2014

Adobe Audition CC 2014 empowers you to create and deliver beautiful audio using more connected tools and dozens of new features, including Sound Remover, which can eliminate unwanted sounds from an entire file just by analyzing a small selection. Adobe Audition CC gives you access to new features as soon as they’re released and is integrated with other Adobe video tools for smooth start-to-finish audio and video production. Your entire creative world, together in one place. Only in Creative Cloud.

Bridge CC

Adobe Bridge CC provides you with centralized access to all the media assets you need for your creative projects. Batch edit with ease, add watermarks, and even set centralized color preference — Bridge simplifies your workflow and keeps you organized.

Dreamweaver CC 2014

Adobe Dreamweaver CC 2014 allows you to design, develop, and publish for web and mobile platforms without getting buried in code. Dreamweaver provides an intuitive visual interface for website creation and editing, and offers up-to-date compatibility with web standards as well as first-class support for HTML5/CSS3 and jQuery.

Edge Animate CC 2014

Edge Animate gives web designers the tools they need to add motion to web graphics and create interactive content on their sites, while assuring that their designs display consistently across mobile devices, tablets, and modern browsers.

Edge Code CC

Adobe Edge Code CC is a lightweight code editor for web developers and designers working with HTML, CSS, and JavaScript. Edge is built to work with browsers, speeding up development time by displaying changes to the code directly on the screen.

Edge Reflow CC

Edge Reflow CC enables designers to build beautiful responsive web designs. Create on a native web surface with CSS design and layout features in a familiar and intuitive way. Preview and share your designs on-device through the integrated Edge Inspect plugin. Communicate your website’s responsive behavior and intent, ensuring your design vision isn’t compromised.

ExtendScript Toolkit CC

Access a rich JavaScript development and execution environment to use directly with scriptable Adobe desktop applications. The ExtendScript Toolkit works with many Creative Cloud applications.

Extension Manager CC

The Adobe Extension Manager provides an easy and convenient way to install and delete extensions in many Adobe applications, and to find information about extensions you’ve installed. It also provides a convenient way to navigate to the Adobe Exchange site, where you can find more extensions, get information about extensions, and rate extensions that you’ve used.

Fireworks CS6

Adobe Fireworks CS6 software helps you create beautiful designs for websites and mobile apps in a snap, without coding. Deliver vector and bitmap images, mockups, 3D graphics, and interactive content for popular tablets and smartphones.

Flash Builder Premium

Adobe Flash Builder Premium software is an Eclipse based development tool for rapidly building standout mobile, web, and desktop applications using ActionScript and the open source Flex framework. Use professional testing tools to build higher performing applications.

Flash Professional CC 2014

Flash CC 2014 lets you share work directly from within the application and get access to new features the moment they’re released. Your entire creative world, together in one place. Work faster than ever before with a 64-bit architecture, a new streamlined user interface, and more connected tools. Create HTML content and export high-definition video and audio.

Gaming SDK

Essential set of tools to rapidly build, optimize, and deliver your games to different platforms and devices. These are used by more than 3 million developers across the world.

Illustrator CC 2014

Adobe Illustrator CC 2014 is the industry standard vector-drawing environment for designing across media. Express your creative vision with shapes, color, effects, and typography. Work with speed and stability on large, complex files, and move designs efficiently among Adobe’s creative applications.

InCopy CC 2014

Adobe InCopy CC 2014, ideal for large team projects involving both written copy and design work, provides copywriters and editors with a powerful tool to style text, collaborate through track changes, and make simple layout modifications that integrate effortlessly with InDesign.

InDesign CC 2014

Adobe InDesign CC 2014 is part of Creative Cloud. That means you have access to all the latest updates and future releases the moment they’re available. Sharpen your skills and master new tools with a rich and growing library of training videos. And Creative Cloud is integrated with Behance, so you can share your projects and get immediate feedback from creatives around the world.

Lightroom CC 2015

Adobe Lightroom software helps you bring out the best in your photographs, whether you’re perfecting one image, searching for ten, processing hundreds, or organizing thousands.

Create incredible images that move your audience. Experiment fearlessly with state-of-the-art nondestructive editing tools. Easily manage all your images. And showcase your work in elegant print layouts, slide shows, and Web galleries, as well as on popular photo-sharing sites. All from within one fast, intuitive application.

Media Encoder CC 2014

Adobe Media Encoder CC software automates the process of creating multiple encoded versions of source files, Adobe Premiere Pro sequences, and Adobe After Effects compositions. An intuitive interface, background encoding, and convenient presets help you quickly output for virtually any screen. Adobe Media Encoder is included in Adobe Premiere Pro, After Effects, and Adobe Prelude software.

Muse CC 2014

Adobe Muse enables designers to create websites as easily as creating a layout for print. Design and publish original HTML pages using the latest Web standards, and without writing code. Now in beta, Muse makes it a snap to produce unique, professional-looking websites.

Photoshop CC 2014

Adobe Photoshop CC, the industry standard for digital image processing and editing, delivers a comprehensive package of professional retouching tools, and is packed with powerful editing features designed to inspire.

Prelude CC 2014

Adobe Prelude CC software streamlines your production tasks. Ingest nearly any file-based format and begin logging immediately, creating searchable markers and other temporal metadata that flow through post-production, so you can work faster and stay organized. Adobe Prelude is included in Production Premium, Master Collection, and Creative Cloud.

Premiere Pro CC 2014

Adobe Premiere Pro CC 2014 lets you edit video faster than ever before. Dozens of brand-new features include a redesigned timeline, improved media management, and streamlined color grading. And it’s just the beginning: You’ll get access to new features the moment they’re released. Your entire creative world, together in one place. Only in Creative Cloud.

Scout CC

Adobe Scout is a lightweight but comprehensive SWF profiling tool designed for Flash game developers. Any SWF file, regardless of whether it runs on mobile devices or in browsers, can be quickly profiled with no change to the code, and Adobe Scout quickly and efficiently detects problems that could affect performance.

SpeedGrade CC 2014

Adobe SpeedGrade CC 2014 lets you deliver balanced color and distinctive, vibrant looks for any type of video production. Grade faster with more connected tools, over a dozen powerful new features, and a redesigned interface that’s both intuitive and familiar for Adobe Premiere Pro users. SpeedGrade CC gives you access to ongoing updates as soon as they’re released, and integrates with other Adobe video tools for smooth start-to-finish video production. Your entire creative world, together in one place.

Adobe Utilities

When reading about Extension Manager, Media Encoder, and ExtendScript Toolkit, I found that they’re typically bundled with particular apps. Great! I can use Munki’s ‘requires’ key, rather than including these utilities in manifests.

Per Adobe’s article on Extension Manager, I’ve set these apps to require it:

Dreamweaver
Flash Professional
Illustrator
InCopy
InDesign
Photoshop
Prelude
Premiere Pro

Per the MacUpdate description for Media Encoder, I’ve set these apps to require it:

After Effects
Prelude
Premiere Pro

Per Adobe’s page on ExtendScript Toolkit, I’ve set these apps to require it:

After Effects
Bridge
Illustrator
InDesign
Photoshop

Since Extension Manager is related to ExtendScript Toolkit, I’ve also added these apps to the previous list:

Dreamweaver
Flash Professional
InCopy
Prelude
Premiere Pro

Now, when any of these apps are installed, they’ll automatically have the appropriate utilities installed along with them.

Edge Code

After packaging it up, I launched Edge Code to see a message that it’s been replaced by Adobe Brackets as of November 2014. Thanks to Jason Stanford, there’s already an AutoPkg recipe for Brackets – that’s one fewer Adobe package you’ll need to create.

Setting preferences on OS X

There are a number of ways to set preferences on OS X. To name a few:

  1. Local MCX
  2. Modifying the User Template
  3. Configuration Profiles (.mobileconfig files)

However, each has a drawback:

  1. Local MCX is rumored to be deprecated in favor of Configuration Profiles.
  2. The User Template exists in /System, which is generally understood to be owned by Apple. OS updates can (and will) replace files in the User Template folder, potentially breaking your changes or causing login issues.
  3. Although useful, Configuration Profiles can be extraordinarily difficult to work with.

Enter: scriptRunner, by Nate Walck. We’ve been deploying this for a couple of months, and it’s helped significantly. Just script what you want to happen at login, decide if you want it to happen once or at every login, then install your script in a specific location. Combined with dockutil, we’ve managed to transition most of our Local MCX settings to Bash scripts (which are pushed out via Munki).

Some settings were difficult to reimplement, though: for example, we wanted to disable Wi-Fi on our lab iMacs – they’re already connected via Ethernet, so there’s no reason for Wi-Fi to be enabled. With Local MCX, we had the ability to disable specific network interfaces, but that’s not possible with Configuration Profiles. What do we do?

Joe Chilcote’s outset proved to be exactly what we needed. Besides adding logging functionality, outset improves upon scriptRunner in that it can:

  1. Install packages at first boot
  2. Run scripts at first boot
  3. Run scripts at every boot
  4. Run scripts at first login
  5. Run scripts at every login

Therefore, our solution was to run a script at every boot that disabled Wi-Fi.

At the moment, the Macs on campus are running a range of 10.6.x to 10.9.x. Since outset has only been tested on 10.9.x, we’re pushing scriptRunner to Macs running 10.6.x to 10.8.x, and outset to Macs running 10.9.x. scriptRunner’s paths have been changed to match outset’s, so we can push the same scripts to both.

Tested with: 10.6, 10.7, 10.8, 10.9, 10.10

Deleting all printers

As I’m building new printer installers with The Luggage (there’s a great tutorial on the Munki wiki), I’ve often come across the need to delete all installed printers first. Maybe the printers are being replaced with a different model, or maybe the existing print queues were created by hand and have subtile naming differences.

I created a script (on my GitHub repository) and have been running it as part of Apple Remote Desktop, but it should work anywhere.

Tested with: 10.6, 10.8, 10.9

Setting the Software Update Server

Several years ago, I submitted a post to Mac OS X Hints. At the time, I worked for an Apple authorized service provider, and wanted an easy way to switch a customer’s computer to our Software Update Server temporarily, then switch back afterwards. Two users in the Mac OS X Hints forums helped me build an AppleScript application for this purpose.

I have since made significant improvements to the script, and still use it today. The code can be found in my GitHub repository.

Tested with: 10.4, 10.5, 10.6, 10.7, 10.8, 10.9

Customizing the login window in Mavericks

Before 10.9 Mavericks, customizing the login window was a sometimes complicated process. Apple has changed the resources for the login window several times over the years.

If possible, it’s generally a good idea to stay away from altering system files. However, our Windows PCs are branded, so we’d like to do the same for our Macs. With 10.9, we’ve settled upon replacing the Apple logo with our own.

We started off using this tutorial from OS X Daily – however, we found that the results weren’t consistent when replacing the Apple logo images with full-sized backgrounds as the tutorial recommends. With so many resolutions to support, we found that our custom background didn’t always cover the default gray Apple background.

Instead, after much testing, we came up with this:

  1. In the Finder, type Command-Shift-G and open /System/Library/PrivateFrameworks/LoginUIKit.framework/Versions/A/Frameworks/LoginUICore.framework/Resources/
  2. Make backups of these files: “apple_s1.png”, “apple_s1@2x.png”, “apple.png”, and “apple@2x.png”.
  3. Open each file in an image editor (I like Acorn), and double the size of each image.  Delete the Apple logo and replace it with a transparent version of your own.
  4. Copy your modified versions of these files back to their original folder, replacing Apple’s versions.

Log out, and you should see your logo just above the username and password fields. I have not tested against a login window using names and pictures, but it should be fine.

If Apple modifies these files in a future OS X update, you might need to replace them again. I’d recommend packaging them up for easy reinstallation.

Tested with: 10.9

Backing up VMware Fusion images

Traditionally, VMware Fusion has not supported using Time Machine to backup your virtual machines. Although this changed with version 4, I’d rather not enable AutoProtect. Instead, I use Carbon Copy Cloner to backup my ‘Virtual Machines’ folder to the root of my Time Machine drive.

Just one catch – if VMware Fusion is open during the copy, eventually CCC will fill up the destination drive, as it’s repeatedly copying data that’s in use. The solution? A preflight script that checks for the VMware Fusion process, and aborts the backup if the program is currently running.

The scripts are available in my GitHub repository.

Disable “Use this disk?” Time Machine prompt

With a diagnostic OS, you’ll likely find yourself mounting many hard drives – either while NetBooted, or booted from an external hard drive. If Time Machine is not enabled, it will offer to backup to any reasonably-sized hard drive connected to your machine.

To disable this, run this command in the Terminal:

defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool YES

This will prevent the Time Machine prompts from appearing.

Tested with: 10.5, 10.6, 10.7, 10.8, 10.9, 10.10

Testing the built-in iSight camera

Sometimes, when building a diagnostic OS, you need to optimize for space – you might be trying to fit the OS onto a small USB flash drive, or you want to decrease NetBoot times.

Once you’ve thrown away the obvious culprits – thanks to something like GrandPerspective – you might decide to trash the contents of /System/Library/Compositions/. I did. Unfortunately, this will break Photo Booth.

We relied on Photo Booth to test the iSight camera, so I came up with an alternative. Save this script as an application and put it in the Dock. Heck, I gave it the Photo Booth icon. It opens a new “movie recording” window in QuickTime Player, but it’s not actually recording. Good for a quick test, and faster than Photo Booth.

Tested with: 10.7, 10.8, 10.9, 10.10

Enabling and configuring NFS

This weekend, I had a need to get NFS working on my Mac. My reasoning? I have a WDTV Live, and found that streaming video through NFS adds less overhead than using (the excellent and free) PS3 Media ServerWestern Digital’s instructions are GUI-heavy and somewhat incomplete, though, so I decided to write my own.

To configure NFS, you’ll need to create a file in /etc/exports:

sudo nano /etc/exports

If the file doesn’t already exist, it should be empty. This file contains your list of shares. Here’s an example of a share from my machine:

/Users/mike/Downloads -ro -network 192.168.1.0 -mask 255.255.255.0

Breaking it down – first, you’ve got the path to the folder you want to share. Next, it’s set so that anyone connecting has read-only access. And finally, the two last sections detail the IP range that’s allowed to access shares on your NFS server. There are many more options you can add – see this for a full listing:

man exports

Add one share per line. Once you’re happy with your exports file, all you need to do is enable NFS:

sudo nfsd enable

This will start the NFS service and keep it running, even after a reboot. You can also start and stop it on an as-needed basis:

sudo nfsd start
sudo nfsd stop

If you make changes to your exports file, you might need to restart the NFS daemon for your changes to take effect:

sudo nfsd restart

If you’d like to verify that your exports file is properly formatted, this will be useful:

nfsd checkexports

And finally, if NFS is running, you can get a listing of all of your shares (‘mounts’ in NFS terminology) via this:

showmount -e

Hope this is useful to someone! If you’d prefer a GUI anyway, NFS Manager looks to be very well done.

Tested with: 10.7, 10.8, 10.9

Page 4 of 5

Powered by WordPress & Theme by Anders Norén