About the Integration of Mac OS X Devices Into a Centrally Managed UNIX Environment Anton Schultschik – ETH, Zurich, Switzerland
Total Page:16
File Type:pdf, Size:1020Kb
About the Integration of Mac OS X Devices into a Centrally Managed UNIX Environment Anton Schultschik – ETH, Zurich, Switzerland ABSTRACT The UNIX flavors in use today have so much in common that centralized management of UNIX systems has become almost standard. Since Mac OS X is based on BSD-UNIX it is a promising candidate for integration into a centrally managed UNIX environment. Starting from generic administration concepts, this paper develops an integrated management concept that handles fully automated installation and configuration of hosts. The concept includes a centralized application management system for console and graphical Mac OS X applications. The management concept is then implemented based exclusively on standard UNIX tools. The necessary extensions of these tools to make Mac OS X conform to UNIX standards are presented, including a proxy tool to forward AppleEvents which facilitate the interprocess communication for centrally managed graphical Mac OS X applications. Introduction implementation and deployment of such a system will be layed out built on some basic principles. The result will The increasing diversity of hardware and soft- be a management system for UNIX systems that can be ware makes system management more difficult. Shorter life-cycles of computer systems require more used to manage network-based as well as stand-alone sys- frequent upgrades or replacement of hardware and as a tems. consequence, the installed computers on a large site In system management three basic principles rarely are uniform in hardware but rather split into sev- keep appearing in tools and methods [1], and these eral uniform clusters. Automated management of such shall be used as orientation for our integrated manage- an environment is challenging as complexity grows ment system: with each new configuration of hardware and software. • Reproducibility ensures that the same action produces identical results. Automation, a way to implement reproducibility, helps to exclude human error in repetitive tasks. • Comprehensibility of all actions is necessary for the administrator especially when troubleshoot- ing or modifying the configuration. • Avoidance of Redundancy helps to keep data consistent and thus easier to manage. Mac OS X is UNIX Plus . Mac OS X unites the strengths in UI and applica- tion design of previous Macintosh operating systems with the stability and flexibility of a modern UNIX platform. Integrating Mac OS X into a general UNIX environment requires a closer look at the operating Figure 1: Structure of the Mac OS X operating sys- system since not all parts in Mac OS X have their ori- tem (from [2]). gin in the UNIX world: • Darwin: Darwin is based on Free-BSD includ- Through integrated management of the clusters ing the standard UNIX network clients and common tools and common configuration information servers as well as the usual user space utilities. can be reused across the clusters thus reducing the amount The appearance of some daemons and configu- of information required to fully understand the entire site. ration files have been modified to match with Wi t h Mac OS X being a member of the UNIX family the rest of Mac OS X. integrated management of Mac OS X in a UNIX environ- • Quartz, OpenGL, QuickTime: Instead of ment comes within reach. In this paper, design, relying on the UNIX X11 standard, Apple 19th Large Installation System Administration Conference (LISA ’05) 63 About the Integration of Mac OS X Devices into a Centrally Managed UNIX Environment Schultschik decided to build an alternative graphic system. images are required when managing multiple host con- • Classic: The Classic environment provides figurations. Consequently, each image would redun- emulation support for native pre-OSX applica- dantly contain commonly installed packages making tions. These applications only work with the management of NetInstall a difficult task in a het- Apple’s HFS/HFS+ filesystem. erogeneous environment. • Carbon: The Carbon library framework pro- Net-Restore vides compatibility to pre-OSX system calls at Mike Bombich’s NetRestore [5] is a suite of GUI source code level. Carbonized applications also tools that are based on ASR, Apple’s image manage- run on non-HFS filesystems through Carbon’s ment tool [6]. An installation is started by net-booting HFS emulation although with reduced stability. a target host into the NetRestore installer in which the Cocoa: Providing an entire new standard for • administrator selects the image to be restored to the application development, Cocoa is based on local disk. The individual images are supplied through modern, UNIX compatible technologies like a network share along with post-installation scripts for XML and Java. the individual configuration of the installed host. • Aqua: The top layer of Figure 1 represents the graphical user interface on which the different Since the restored system is identical with the GUI applications run. source image the installation itself clearly is repro- ducible. However creation and maintenance of the Looking at the entire operating system, the Dar- source image is done by hand and the final system can win roots as well as modern Cocoa-based applications not be comprehensible as a whole. An administrator nei- are fully compatible with the rest of the UNIX world ther explicitly sees why a system is in the current state even though Apple did not use the X11 standards in nor completely understands the consequences of each their graphics system. Thus the key challenge in man- manual step during assembly. As with NetInstall in the aging a Mac OS X system as a UNIX is the handling previous section the management of several configura- of legacy applications and their specialties. tions implies the use of multiple disk images introducing Review of Available Tools redundancy between the manually maintained images. Sun Solaris Jumpstart Several system management tools are available under Mac OS X that focus on three different manage- Network based installation is done by net-boot- ment areas: ing an installation target into the Sun Solaris Jumpstart • Installation of the operating system [7] system. Once booted Jumpstart uses DHCP and • Configuration of operating system and appli- DNS to determine the correct configuration list of cations packages and appropriate pre/post-processing scripts. • Software distribution or installation onto an The Jumpstart configuration concept is simple installed host and yet capable of comprehensibly handling individual The management tools need to be applicable on classic configurations. Its design for completely unattended UNIX flavors while supporting the Mac OS X specific installation makes the Jumpstart system reproducible. extensions, e.g., legacy application support. Several Configuration Tools candidate tools were considered, and their strengths and To reproducibly maintain the configuration of weaknesses will be discussed in the following sections. systems, especially in a heterogeneous environment, Installation Tools automated tools are essential. However to provide the Several strategies can be chosen to install an necessary comprehensibility, configuration information operating system onto a target host. Network-based consisting of a large number of modifications for a tar- installation allows access to centralized services and is get system must be structured into modules. By postu- logistically efficient. Therefore only network-based lating module integrity, i.e., that no module destroys installer methods are considered in the choice of tools. the modifications of another, reuse of modules becomes NetInstall possible, thus controlling unwanted redundancy. The following three tools fulfill this basic requirement. Apple provides a native mechanism [3] to install multiple client machines based on the installation of Cfengine packages (.pkg bundles [4]). The target host of an One of the best known tools comes from Mark installation is net-booted from a modified disk image Burgess of Oslo University College. Cfengine [8] is a that will start an installer system. The installer then highly flexible scripting system that deducts its configu- installs packages supplied on the booted image. ration based on the context of a managed host. Cfengine The package-based approach of NetInstall yields supports various UNIX flavors including Mac OS X reproducible and certainly comprehensible results since and is equipped with its own file sharing mechanism. all changes on the installed system have their source in Provided that Cfengine is run in the same con- one of the installed packages. As the installer image can text, reproducible results can be expected, and modu- only contain a single configuration several NetInstall larization is provided through the classes construct. 64 19th Large Installation System Administration Conference (LISA ’05) Schultschik About the Integration of Mac OS X Devices into a Centrally Managed UNIX Environment However, since Cfengine does not enforce integrity of installing applications file by file into an existing actions or classes, configuration scripts can easily installation each SEPP-package encapsulates a ready- exceed the state of comprehensibility. to-use application within a separate directory. Once Radmind this package directory has been copied or mounted Radmind [9] is available on various UNIX over NFS the packaged applications are made accessi- dialects including Mac OS X. Designed for ease of ble to the user using stub scripts. By design SEPP sup- use, Radmind implements