OS X Server: How to cascade Software Update Servers from a Central Software Update Server
This article explains how to cascade Software Update Servers from a Central Software Update Server, to reduce the amount of traffic that goes to the Apple Software Update servers via the Internet.
Steps for OS X Mountain Lion
Important notes
In Mountain Lion, download the Server App from the Mac App Store before continuing
Configure a Central Software Update Server with the following settings:
Manual - Choose Updates to download and enable. Downloaded updates will be saved until explicitly deleted.
Check the option for "Automatically download new updates" under Updates
The configuration files are located in /Library/Server/Software Update/Config/
Only run the following commands on the cascaded servers, not the central server
Follow these steps on each server that will point to the central server:
If Software Update is running in the Server App, turn it off.
Open Terminal and execute this command to back up the existing plist file:
sudo cp /Library/Server/Software\ Update/Config/swupd.plist /Library/Server/Software\ Update/Config/swupd.plist.bak
Execute this command to view the current value for metaIndexURL in the swupd.plist file—be sure to include all punctuation and enter the command on a single line:
sudo /usr/libexec/PlistBuddy -c 'print metaIndexURL' /Library/Server/Software\ Update/Config/swupd.plist
Execute this command to set the value for metaIndexURL in the swupd.plist file to be your Central Apple Software Update Server—be sure to include all punctuation and enter the command on a single line:
sudo /usr/libexec/PlistBuddy -c 'set metaIndexURL http://swupdate.example.com:8088/catalogs.sucatalog' /Library/Server/Software\ Update/Config/swupd.plist
Note: Replace http://swupdate.example.com with the URL of the server you want to be the main Software Update Server.
Execute this command to ensure that the current value for metaIndexURL in the swupd.plist file is set to your Central Apple Software Update Server—be sure to include all punctuation and enter the command on a single line:
sudo /usr/libexec/PlistBuddy -c 'print metaIndexURL' /Library/Server/Software\ Update/Config/swupd.plist
Start the Software Update Service.
Execute this command to ensure that the value for metaIndexURL in the swupd.plist file is now your Central Apple Software Update Server—be sure to include all punctuation and enter the command on a single line:
sudo /usr/libexec/PlistBuddy -c 'print metaIndexURL' /Library/Server/Software\ Update/Config/swupd.plist
Open Software Update in Server App and look in the updates pane. You may need to refresh the updates pane--this can be done by navigating or clicking on Profile Manager for example.
Steps for OS X Lion and Mac OS X v10.6.3 - 10.6.8
Important notes
Do not use these instructions on your central Software Update server. The central Software Update server will continue to point to the Apple Software Update servers.
Be sure that the central Software Update Server is configured to download all available updates from Apple. Secondary servers must then be configured to either mirror the central server or to disable updates as desired.
If you are using Mac OS X Server v10.6, update to Mac OS X Server v10.6.3 or later before making these changes.
To cascade Software Update Servers from a central Software Update Server in Lion, edit a .plist file on the servers which will be connected to the central one.
Navigate to this location: /etc/swupd/swupd.plist. You may wish to make a back up copy of this .plist first.
Note: By default, the plist file contents look like this:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PurgeUnused</key> <true/> <key>autoEnable</key> <false/> <key>autoMirror</key> <true/> <key>autoMirrorOnlyNew</key> <true/> <key>limitBandwidth</key> <false/> <key>metaIndexURL</key> <string>http://swscan.apple.com/content/meta/mirror-config-1.plist</string> <key>portToUse</key> <integer>8088</integer> <key>valueBandwidth</key> <integer>0</integer> </dict> </plist>
Change the metaIndexURL key from this:
<key>metaIndexURL</key> <string>http://swscan.apple.com/content/meta/mirror-config-1.plist</string>
... to this:
<key>metaIndexURL</key> <string>http://myhost.example.com:8088/catalogs.sucatalog</string>
...where "myhost.example.com" will be replaced by the hostname of the central Software Update server at your site. The above edit assumes that you have not changed the port from the default 8088.
Stop and restart the Software Update Service.
Alternative steps via Terminal
Alternatively, you can follow these steps on each server that will point to the central server:
Open Terminal and execute this command to back up the existing plist file:
sudo cp /etc/swupd/swupd.plist /etc/swupd/swupd.plist.bak
Execute this command to change the plist file—be sure to include all punctuation and enter the command on a single line:
sudo /usr/libexec/PlistBuddy -c 'set metaIndexURL http://swupdate.example.com:8088/catalogs.sucatalog' /etc/swupd/swupd.plist
Replace http://swupdate.example.com with the URL of the server you want to be the main Software Update Server.
Stop and restart the Software Update Service.