Setting up Reposado and Margarita on Linux – Part 1

by on May 25, 2012 » Add more comments.

About Reposado and GUI Options

What is Reposado you ask? Reposado is an open-source replacement for the Apple Software Update Service (SUS) by Greg Neagle of Walt Disney Animation Studios. Reposado addresses many of the limitations of Apple’s SUS such as giving the ability to create branches so you can release updates only to a group of machines. It also allows you to continue to offer deprecated updates to your Macs, whereas Apple’s SUS will stop offering previous updates, even if you haven’t yet approved its’ replacement.

This three part series will explain the steps needed to get Reposado and Margarita running on Red Hat Enterprise Linux completely from the command line via ssh, since this might be the only type of access you have (and all that is needed!).

  • Part 1 – About Reposado and GUI Options (this page)
  • Part 2 – Setting up Reposado on Red Hat
  • Part 3 – Setting up Margarita on Red Hat

Reposado by itself, is a command line only. Which isn’t necessarily bad, but there are definite benefits to have a GUI to perform tasks. Especially if you’re the only one on your team familiar how to manage it from the CLI. Hopefully you get to go on vacation once in a while and with a GUI you can have coworkers manage software updates while you’re gone.

There are currently two options available for managing reposado with a web interface:

  1. NetSUS from JAMF Software
  2. Margarita from Jesse Peterson


The first to the reposado GUI scene was JAMF with their release of NetSUS, which is provided as a complete Ubuntu based appliance. This has a very attractive interface and is easy to setup. It can also act as a netboot server (however limited to a single NBI). The downside to this appliance is that you’re locked into Ubuntu and might have difficulty getting this into your enterprise VM environment depending on your company/school’s VM infrastructure (Ubuntu is not supported on Hyper-V from what I hear). When JAMF came out with the 1.01 update, you had to re-download the entire appliance. However, since then they have made their software available on GitHub. This means you could potentially build your own VM and provision reposado from git, though it is likely still dependent on Ubuntu 10.04 (or possibly any Debian based distro).
Related Links:


A couple months later Margarita came out. Margarita is a web front end that uses Flask, a python web framework. I decided to go with this option because it is a more versatile option since it can run on any platform that meets the requirements. Margarita (and Reposado) can run on any platform that can run a compatible version of Python with Flask. The most common and documented way to setup Margarita is on a Mac system. However, many shops are moving away from Mac servers since Apple has discontinued the Xserve. In my area, we’re working on moving all servers to VM’s so I had a choice of Windows and Linux. I wasn’t crazy about the idea of running a python CLI tool on a Windows system (just feels dirty to me) so I chose to go with Red Hat since that is provided as an option on our VM infrastructure and we have Red Hat Satellite server (and Linux is cooler!).


If you’re not already running Reposado and/or you’ve been running Apple’s SUS, I hope this intro has given you enough information to decide which direction to go. If you manage a significant number of Macs, I feel it’s important to have control over which updates your managed machines have access to. Especially if an update can cause application compatibility problems, or worse, brick a system as has been the case with tools such as PGP.

The next couple posts will detail how I installed Reposado and Margarita on RHELThese instructions should also apply to CentOS, Fedora, Scientific Linux and other RedHat based distributions. However I only tested on RHEL 5.8 x86_64.

Disclaimer: I am far from a Linux or Python expert. My Linux experience basically boils down to a couple Red Hat classes a few years ago and sporadic usage. It is not part of my daily job and I don’t run linux regularly. So there may be better/easier ways to do some of the things I’ve done. If any of these steps could be improved, please comment and I’ll update this guide.
Stay tuned.

Find more like this: Linux, Mac, Scripting, Server Administration, Software, Unix , , , , , , , ,

5 Responses to Setting up Reposado and Margarita on Linux – Part 1

  • FTBZ says:

    Hi Patrick, can you tell me if you’re able to start correctly Margarita on startup as service on Red Hat ?

  • Andrew says:


    add the command to start to a startup script like /etc/rc.local

    # This script will be executed *after* all the other init scripts.
    # You can put your own initialization stuff in here if you don’t
    # want to do the full Sys V style init stuff.

    python /path/to/margarita/source/ &

  • FTBZ says:

    I’ve found my problem, when you edit a service, you need to remove the old and to re-add the modified file. Otherwise the changes will not be applied.

    To add this as a service in RHEL6, I do this :

    Create the launching script here (with custom informations) :
    vi /etc/init.d/margarita

    Add the script to the services :
    /sbin/chkconfig –add margarita

    Activate the service :
    /sbin/chkconfig margarita on

    Check the service activation :
    /sbin/chkconfig –list

  • Sverre says:

    IIRC, the only obstacle to running Ubuntu on Hyper-V was that graphics doesn’t work on the VM console. The “easy” workaround for this was adding this kernel option:

    This can be done at boot by pressing some function key (F6, I think) and appending it to the list of kernel options (the boot loader screen, which comes up before the graphics mode switch, has working graphics). To make the change stick, edit “default kernel options” in the appropriate file under /etc/grub/ (something-something-options, methinks) and run “sudo update-grub”.

    Sorry for the vague instructions, this is all from memory. If you want step by step instructions, I’m sure Google would be more helpful. Just thought I’d let people know that it’s possible, and give enough info for seasoned freetards. 😉

    Mind you, it’s been over three years since I did this, I’d think Ubuntu works out-of-box by now.

  • Riley Shott says:

    Great writeup!

    I have a Margarita startup script that you may be interested in. I wrote it for our RHEL 6 server and it should work on CentOS as well (without major modification). I’ve detailed how to install it on my site, and I also have the logs for Margarita rolling on a weekly basis. Instructions below:

    If you have any questions let me know!

Leave a Reply

Your email address will not be published. Required fields are marked *