Od roku 2014 spravuji na FITu Apple učebnu určenou k výuce vývoje aplikací pro Apple platformy. Projekt pokrývá moje bakalářská práce Případová studie Apple učebny na ČVUT FIT a diplomová práce Provoz Apple laboratoře pro FIT ČVUT.
Vzhledem k nepodpoře macOS Big Sur na Mac mini 2012 se život původní učebny se chýlí ke konci. Je však zájem pokračovat ve výuce. Učebna možná bude pokračovat s Apple Silicon Macy. Pojďme se podívat, jak to bylo před lety.
Kromě programování pro iOS v učebně probíhá výuka dalších předmětů. Starat se o učebnu znamená dostat na všechny počítače macOS a hromadu software. Obojí je občas potřeba aktualizovat. Konfiguraci musíme uzpůsobit prostředí učebny a zabránit uživatelům dělat nepěkné věci. Ideálně vše řešit centrálně a silně automatizovat. A co takhle další operační systémy? Není problém. Při startu Mac mini si vybíráte mezi macOS, Linux a Windows. Jak jsem to vyřešil?
Správa macOS
Jednou za rok na podzim vyjde nová verze macOS. Nedlouho na to ji nasazuji v Apple učebně. Z instalátoru macOS pomocí AutoDMG vytvořím image s nikdy nenastartovaným systémem a rovnou k němu přibalím objemný software typu Mathematica nebo MATLAB. Všechny počítače v učebně nastartují macOS přes síť pomocí NetBoot. Automatizovanými akcemi nástroje DeployStudio proběhne nasazení. Obraz s macOS všichni klienti obdrží z ASR multicast přenosu.
Manuální správa 40ti kousků software je děsná otrava. K záchraně spěchá AutoPkg schopný stahovat nově vyšlé verze z webů vývojářů a importovat je do systému hromadné instalace. Systémem není nic jiného než Munki. Klient na každém Macu si stáhne a nainstaluje všechny potřebné programy. Rovněž umí instalovat aktualizace systému. Abych nad nimi měl kontrolu, přijde vhod schopnější variace na téma Apple Software Update Server – Reposado. Vedle klasického software instalujeme mnoho vlastních balíčků vytvořených skrz luggage. Nelze opomenou ani řadu dalších shell a Ruby skriptů společně s dokumentací verzovaných gitem.
macOS je propojený s několika fakultními službami. Uživatelé se na libovolném Macu přihlásí svým školním účtem získaným z LDAP serveru. Domovskou složku jim připojí automount přes síť protokolem NFSv3. K datům mají přístup z jakékoliv učebny a libovolného operačního systému. Pokud by na některém z počítačů padal systém, příliš topil nebo docházelo místo na disku, dozvíme se to v systému Nagios, kam Macy posílají informace o aktuálním stavu.
Server pro učebnu
V serverovně sedí jeden Mac mini, na kterém provozujeme VMware ESXi. Toto řešení umožňuje běh více instancí macOS zároveň bez příliš velké režie. Vedle produkční virtuálky můžeme zapnout několik dalších testovacích. Jednou denně automaticky probíhá záloha skriptem ghettoVCB.
Hlavní virtuální stroj obsahuje macOS s nainstalovaným modulem Server. Pod ním běží již zmíněný NetBoot a Profile Manager určený ke konfiguraci klientů. Administrátorovi jsou po ruce nástroje pro správu služeb jako DeployStudio Admin, MunkAdmin, AutoPkgr nebo Margarita.
Podpora více operačních systémů
První, co uvidí uživatel po startu Macu v učebně, je EFI boot manager rEFInd. Vedle macOS, Linux nebo Windows lze nastartovat i do systému pro instalaci učeben běžně používaném na školních PC. To zajišťuje program iPXE suplující chybějící PXE podporu ve firmware Macu. Přes síť proto může nastartovat diskless systém a nasadit Windows a Linux na druhý disk počítače.
Poděkování
Děkuji ICT oddělení za spolupráci při realizaci učebny. Zejména Tomáši Kadlecovi, Marinu Bílému, Milanu Václavíkovi a Lukáši Kudrnovi. Rovněž děkuji doktorům Rudolfu Blažkovi a Tomáši Zahradnickému, bez nichž by učebna nevznikla.