![Mac OS X Server Open Directory 不会将软件更新设置推送到客户端](https://linux22.com/image/536490/Mac%20OS%20X%20Server%20Open%20Directory%20%E4%B8%8D%E4%BC%9A%E5%B0%86%E8%BD%AF%E4%BB%B6%E6%9B%B4%E6%96%B0%E8%AE%BE%E7%BD%AE%E6%8E%A8%E9%80%81%E5%88%B0%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
我有一台运行 Mac OS X Server 10.5.8 的 Xserve G5,配置为 Open Directory 主服务器。我还在机器上启用并配置了软件更新服务。SUS 配置为服务 Tiger、Leopard 和 Snow Leopard 客户端(请参阅http://discussions.apple.com/message.jspa?messageID=10297359#10297359)
绑定到 OD 的客户端是运行 OS X 10.4、10.5 或 10.6 的各种 Mac。在 Workgroup Manager 中,我为每个客户端操作系统创建了 3 个计算机组。每个组都配置了一个自定义 SUS URL,并且管理的客户端计算机是相应的成员(请参阅http://discussions.apple.com/thread.jspa?messageID=10493154#10493154)
我的问题是服务器将 SUS 设置推送到部分客户端计算机,但不是全部。当我第一次在服务器上配置所有这些内容时(几周前),我密切监视了一些客户端计算机,以确认它们已收到自定义设置。我注意到一些客户端(10.4/5/6 都一样)似乎立即获得了设置,而其他客户端直到重新启动后才显示新设置。正如我所说,结果在不同的操作系统上有所不同,但有些客户端根本不会“同步”。
我立即想到的是解除/重新绑定有问题的机器。我在几台客户端计算机上都这样做了,但没有成功。
例如,今天我正在处理一个 Tiger 客户端。我注意到它没有指向我的本地 SUS,所以我检查了 OD 绑定;一切正常。为了确保万无一失,我解除了机器的绑定。接下来,我检查了 WM 并确认计算机记录已消失。我注意到机器组仍然有一个来自未绑定客户端的残留(损坏?)成员;我手动将其删除。最后,我将客户端重新绑定到 OD,并将机器重新添加到 WM 中的正确组中。不幸的是,客户端仍在 ping 苹果的 SUS 以获取更新。为了安全起见,我重新启动了客户端,但无济于事,它看不到我的本地 SUS。
为了确认服务器或客户端与服务器的连接没有问题,强制将机器指向我的 SUS:
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL "$LOCAL_SUS_URL"
并且该机器已成功从我的本地服务器更新。
很好,更新成功,但问题没有解决。
我在 discussions.apple.com 上进行了详尽的阅读(并不是说我读过一切我只是说我读过很多) 而得不到好的答案。令人沮丧的是,我读到的很多 OD 问题只会导致系统管理员完全重新安装服务器或 OD,或者其他类似的繁琐操作。目前,我不愿意走那条路。我仍然希望能够找到这种不稳定行为的原因。
如果有人能给我指明有用的方向,我将不胜感激。
编辑:
的确,一些文件正在推送至客户端:
# from client machine:
$ sudo find /Library -type f -name com.apple.SoftwareUpdate.plist
/Library/Managed Preferences/com.apple.SoftwareUpdate.plist
/Library/Managed Preferences/username/com.apple.SoftwareUpdate.plist
/Library/Preferences/com.apple.SoftwareUpdate.plist
几周前,在我进行(前面提到的)修改之前,SUS 仍在运行“原版”。这意味着它无法为 SL(10.6)机器提供服务。当时,软件更新设置在 WM 中设置,位于用户组。这没有任何意义,因为有些用户在具有不同操作系统的多台机器上工作。
创建之前机器组在 WM 中,我从“用户组首选项”中删除了所有 SU 设置。这只会让整个事情变得更加混乱,因为当我在这里看到一个文件时:
/Library/Managed Preferences/username/com.apple.SoftwareUpdate.plist
我认为它仍然保留了“旧”设置,因为我不认为机器设置属于那里。
尽管com.apple.SoftwareUpdate.plist
在“管理偏好设置”下有所有内容,为什么客户端机器仍然呼叫 Apple 而不是我的 SUS?
# on client machine:
$ date
Tue Jan 25 17:01:46 EST 2011
$ softwareupdate --list
Software Update Tool
Copyright 2002-2005 Apple
No new software available.
开关端子...
# on server:
$ tail -n1 /var/log/swupd/swupd_access_log
10.x.x.x - - [25/Jan/2011:15:54:29 -0500] XXXX POST "/cgi-bin/SoftwareUpdateServerStats" 200 13 ...
注意客户端的日期softwareupdate
和对 SUS 服务器的最新访问;服务器从未听到过来自该客户端的任何声音。
答案1
管理的偏好设置文件实际上是从服务器推送的吗?它应该位于
/Library/Managed Preferences/_username_/com.apple.SoftwareUpdate.plist