• Mac OS X Server

    Demote Open Directory Servers Using The Command Line

    The command to create and tear down an Open Directory environment is slapconfig. When you disable Open Directory from the Server app you aren’t actually removing users. To do so, you’d use slapconfig along with the -destroyldapserver. When run, you get a little insight into what’s happening behind the scenes. This results in the following: bash-3.2# slapconfig -destroyldapserver Note: Currently the system is not working as intended on replicas. The replica will remove, but the Open Directory Master will not remove the replica from the Open Directory list. The process will fail in 10.12 and above. I’ve filed a radar on this. You can archive and restore the master and then rebuilt…

  • Xsan

    Xsan Command Line Options In macOS Sierra

    Let’s start out with what’s actually available in the Server Admin CLI: serveradmin. The serveradmin command, followed by settings, followed by san shows a few pieces of information: bash-3.2# serveradmin settings san
san:computers = _empty_array
san:primaryController = "95C99FB1-80F2-5016-B9C3-BE3916E6E5DC"
san:ownerEmail = "krypted@me.com"
san:sanName = "krypted"
san:desiredSearchPolicy:_array_index:0 = ""
san:serialNumbers = _empty_array
san:dsType = 0
san:ownerName = "Charles Edge"
san:managePrivateNetwork = yes
san:metadataNetwork = "10.0.0.0/24"
san:numberOfFibreChannelPorts = 2
san:role = "CONTROLLER" Here, we see the metadata network, the GUID of the primary (active) MDC, the name of the SAN, an array of serial numbers (if applicable – in a purely Mountain Lion/Mavericks SAN they aren’t), the owner info plugged in earlier and the metadata network interface being used. Next, we’ll take a peak at…

  • Mac OS X Server

    Profile Payload Best Practices

    Apple has defined some best practices to be taken when using Profiles. Obviously these don’t cover every situation, but they cover all but edge cases and lay out a pretty good description of why you should do the things we’ve mostly figured out to do by trial and error thus far. Great job to the OS X Server documentation team! https://help.apple.com/profilemanager/mac/5.1.5/#/apdE3493-C50A-4E9E-A1B6-CBCBC8C73507

  • Mac OS X Server

    Reset Apache In OS X Server To Factory Defaults

    The serveradmin command can also be used to run commands. For example, to reset the service to factory defaults, backup then delete the configuration files for each site and then run the following command: sudo serveradmin command web:command=restoreFactorySettings This is pretty timely as I’ve seen a very high rate of pretty messed up configurations from the Server 4 to Server 5 upgrades. Basically, what seems to happen is that older servers, that were running let’s say Server 2 and Server 3 and Server 4 and now Server 5 will have a little cruft. Sites with older configurations that are incompatible with the latest proxy-based config. And finding the specific problem vs the…

  • Apple TV,  iPhone,  Mac OS X,  Mac OS X Server,  precache

    Precache Now Supports AppleTV

    Precache, available at https://github.com/krypted/precache, is a script that populates the cache on an OS X Caching server for Apple updates. The initial release supported iOS. The script now also supports caching the latest update for an AppleTV. To use that, there’s no need to include an argument for AppleTV. Instead, you would simply  run the script followed by the model identifier, as follows: sudo python precache.py AppleTV5,4

  • Apple TV,  Mac OS X,  Mac OS X Server,  Mac Security

    The AppleTV Software Update Feed

    AppleTVs automatically update. They do so using a process similar to how iOS updates, but instead of looking at the feed I posted in https://krypted.com//mac-security/how-the-os-x-caching-server-caches-updates/, they look at http://mesu.apple.com/assets/tv/com_apple_MobileAsset_SoftwareUpdate/com_apple_MobileAsset_SoftwareUpdate.xml. The AppleTV feed is similar to that available for iOS updates, with each dictionary having roughly the same data: <key>ActualMinimumSystemPartition</key> <integer>1482</integer> <key>Build</key> <string>13Y6234</string> <key>InstallationSize</key> <string>0</string> <key>MinimumSystemPartition</key> <integer>1534</integer> <key>OSVersion</key> <string>9.2</string> <key>ReleaseType</key> <string>Beta</string> <key>SUDocumentationID</key> <string>PreRelease</string> <key>SUInstallTonightEnabled</key> <true/> <key>SUMultiPassEnabled</key> <true/> <key>SUProductSystemName</key> <string>iOS</string> <key>SUPublisher</key> <string>Apple Inc.</string> <key>SupportedDeviceModels</key> <array> <string>J42dAP</string> </array> <key>SupportedDevices</key> <array> <string>AppleTV5,3</string> </array> <key>SystemPartitionPadding</key> <dict> <key>1024</key> <integer>1280</integer> <key>128</key> <integer>1280</integer> <key>16</key> <integer>160</integer> <key>256</key> <integer>1280</integer> <key>32</key> <integer>320</integer> <key>512</key> <integer>1280</integer> <key>64</key> <integer>640</integer> <key>768</key> <integer>1280</integer> <key>8</key> <integer>80</integer> </dict> <key>_CompressionAlgorithm</key> <string>zip</string> <key>_DownloadSize</key> <integer>856434408</integer> <key>_EventRecordingServiceURL</key> <string>https://xp.apple.com/report</string> <key>_IsZipStreamable</key> <true/> <key>_Measurement</key> <data>cm8k41In38EOJEj20IwJp5Suskw=</data>…

  • Apple Configurator,  Mac OS X,  Mac OS X Server,  Mac Security

    Scripting The OS X Caching Server To Cache Updates

    The Caching Server in OS X is a little bit of a black box. But, it’s not all that complicated, compared to some things in the IT world. I’d previously written about command line management of the service itself here. When you enable the caching service, the server registers itself as a valid Caching Server. Nearby devices then lookup the closest update server with Apple and register with that update server using a GUID: /Applications/Server.app/Contents/ServerRoot/usr/sbin/serveradmin settings caching:ServerGUID Then, each time the device looks for an update, it does so against http://mesu.apple.com/assets/com_apple_MobileAsset_SoftwareUpdate/com_apple_MobileAsset_SoftwareUpdate.xml using the device model. Noticed this with this line in my proxy logs: "GET http://mesu.apple.com/assets/com_apple_MobileAsset_SoftwareUpdate/com_apple_MobileAsset_SoftwareUpdate.xml HTTP/1.1" 200 - "-"…