Index

Introduction

Apple provides a way to host its own update server‘s for Mac OS X patches. This server will keep a local copy of all updates from the official servers, this is a quick method to control the deployment of patches inside a large network.

The first problem with this tool is that if a patch is removed by Apple, it will also be deleted from your server. In a few cases it can be a problem. Recently Apple has removed the update iPhoto 9.1 (by accident probably) and system administrators were unable to update iPhoto from the retail DVD to the last version without this update. The second problem is that Apple is no longer providing a server to host conveniently this kind of service (Xserve is dead and that’s fine), so it’s necessary to use alternate methods without using Mac OS X Server if possible.

A project hosted on github and owned by Gred Neagle replicates the functions of the Apple Software Update Server with Python scripts and allows to use any kind of servers (CentOS or Red Hat Enterprise Linux in our case). This software, named Reposado, goes a little further than the Apple solution. It can be used to manage the updates and to keep old version that Apple has removed. One of the greatest advantages is the ability to create different branches where you can publish your patches. You can create a lab group where you push patches for testing purpose and and second branch for all final clients. With this system you can test the impact of new patches on your environment and refuse problematic updates.

The problem of Reposado is that needs to be managed by the command line and sometimes we’re too lazy to remember the commands (or our support team will not be faced with a terminal). So a second project was published by Jesse Peterson to add a web interface to manage Reposado : Margarita. This tool is written in Python and use Flask as a fast web publishing tool.

This post will help you to setup a CentOS or Red Hat Enterprise Linux from scratch and to install Reposado and Margarita. CentOS and Red Hat are globally the same OS with the same sources, the difference is the kind of support given to users (CentOS is based on community support and Red Hat on paying enterprise support). The method described will help you to prepare a minimal appliance that can be used with VMware ESXi or with VMware Fusion. The minimal installation will be used to minimize the security risks and the size of the installation.

so as i only needed to put the catalogURL as http://example.com/index.sucatalog on client machines and the apache2 mod_rewrite engine on the reposado box figured out which index to send it to regardless of version of the macosx client