What Does Tequila Have to Do with Managing Macs? Using Open Source Tools to Manage Mac OS in the Enterprise!
Josh Schripsema Sr. Systems Engineer Expedia, Inc. Caitlin Hodgins Sr. Systems Administrator Expedia, Inc.
Managing OS X Updates Margarita https://github.com/jessepeterson/margarita Web interface to Reposado. Easy installation. Reposado https://github.com/wdas/reposado Replaces need for Apple SUS. Written in Python. Easily implement release branches. Continue offering deprecated updates.
Reposado repo_sync Downloads Apple Software Update Catalog Files. Operates in Two Different Modes: Local and Remote Local: Download all available updates from Apple, caching available packages locally and, when enabled, client machines download directly from your servers. Remote: Downloads catalog files from Apple, allowing you to customize your catalog files. Client machines pull from Apple s servers. repoutil Very flexible, command line, tool to perform operations on your catalog files.
repo_sync 0 2,14 * * * /usr/bin/solo -port=6001 /bin/sh -c '/data/reposado/code/repo_sync &>/dev/null; /data/reposado/code/repoutil --purge-product all-deprecated &>/dev/null; /data/reposado/code/repoutil --add-product all testing &>/dev/null' http://timkay.com/solo/
repoutil Usage: repoutil [options]!! Options:! -h, --help show this help message and exit! --configure Configure Reposado preferences.! --products, --updates! List available updates! --deprecated List deprecated updates! --sort=sort_order Sort list. Available sort orders are:! date, title, id! --reverse Reverse sort order.! --branches, --catalogs! List available branch catalogs! --new-branch=branch_name! Create new empty branch BRANCH_NAME.! --delete-branch=branch_name! Delete branch BRANCH_NAME.! --copy-branch=source_branch DEST_BRANCH! Copy all items from SOURCE_BRANCH to! DEST_BRANCH. If DEST_BRANCH does not exist,! it will be created.! --list-branch=branch_name, --list-catalog=branch_name! List updates in branch BRANCH_NAME! --diff=branch1_name BRANCH2_NAME, --diff-branch=branch1_name BRANCH2_NAME, --diff-branches=branch1_name BRANCH2_NAME! Display differences between two branches! --product-info=product_id, --info=product_id! Print info on a specific update.! --product-dist=product_id, --dist=product_id! Print the contents of the.dist file for a specific! update.! --add-product=product_id [PRODUCT_ID...] BRANCH_NAME, --add-products=product_id [PRODUCT_ID...] BRANCH_NAME, --addupdate=product_id [PRODUCT_ID...] BRANCH_NAME, --add-updates=product_id [PRODUCT_ID...] BRANCH_NAME, --add=product_id [PRODUCT_ID...] BRANCH_NAME! Add one or more PRODUCT_IDs to catalog branch! BRANCH_NAME. --add-product all BRANCH_NAME will add! all cached products, including deprecated products, to! catalog BRANCH_NAME.! --remove-product=product_id [PRODUCT_ID...] BRANCH_NAME, --remove-products=product_id [PRODUCT_ID...] BRANCH_NAME! Remove one or more PRODUCT_IDs from catalog branch! BRANCH_NAME.! --remove-config-data=product_id [PRODUCT_ID...]! Remove the 'type="config-data"' attribute from one or! more PRODUCT_IDs.! --purge-product=product_id [PRODUCT_ID...] [--force], --purge-products=product_id [PRODUCT_ID...] [--force]! Purge one or more PRODUCT_IDs from product! database and remove any locally replicated version.!
Margarita
Getting Started Basic Requirements and Setup A web server. Python 2.5-2.7 with plistlib. curl binary Storage space for the catalogs and update packages. If you are replicating the update packages, you'll need approximately 180GB - and growing. Reposado requires Flask, a Python web framework. git
Web Server (Apache) Setup Setup Reposado https://github.com/wdas/reposado/blob/ master/docs/getting_started.txt Setup Margarita https://github.com/jessepeterson/ margarita/blob/master/readme.md Setup Margarita to Run Through Apache http://denisonmac.wordpress.com/ 2013/02/28/running-margarita-in-apache
Updating Git makes updating easy! 1. cd (Change Directory) into your Margarita/Reposado repository. 2. sudo -u apache git pull origin! 3. Test to ensure functionality. 4. Make yourself a drink. Remember, test this on a non-production server before upgrading your production environment.
NetBoot 1. Install any linux distribution you like. 2. Install docker https://docs.docker.com/installation/ 3. Create a /nbi directory. 4. Copy NetBoot Image folders into the / nbi directory. 5. docker run --restart=on-failure:10 -d! -v /nbi:/nbi -p 67:67/udp -p 69:69/udp! -p 80:80 -e BSDPY_IP=YourLinuxServerIP --name netboot_server hunty1/bsdpydocker!
Troubleshooting Logs are the first place you should look if you re running into issues. Apache, in particular, is very sensitive to any syntax errors in the configuration files. The apache error logs, or the general logs, will usually indicate where the issue is.. Ask for help! Most Open Source projects have discussion boards, or places where you can post issues. If you run into a problem, ask others for help, being as descriptive about the problem you re having as possible. I ve found that the volunteer support is often better than the assistance I ve gotten from vendors.
What Does Tequila Have to Do with Managing Macs? Using Open Source Tools to Manage Mac OS in the Enterprise! https://github.com/expedia-it-cte/macit-2015 Questions?