Homebrew Cask mit Ansible
Table of Contents
Paketmanager auf modernen Betriebssystemen sind ein wahrer Segen: Programme können einfach installiert, auf den aktuellsten Stand gebracht und restlos deinstalliert werden. Auch können mit einfachen Mitteln definierte Installationen bzw. Systemkonfigurationen erstellt werden.
Unter OS X steht derzeit Homebrew als Paketmanager mit tausenden von (zumeist vorkompilierten) Paketen hoch in der Gunst der Nutzer.
Doch was, wenn Benutzer Software wie Photoshop, Omnigraffle oder Pycharm installiert brauchen? Auch hier hilft Homebrew weiter: Mit der Erweiterung HomebrewCask kann Software aus externen Installern auf das eigene System gebracht werden - automatisiert und nachvollziehbar.
Hierzu ist nach der Installation von Homebrew lediglich ein Einbinden des Homebrew Cask Repository notwendig:
brew tap caskroom/cask
Schon ist mit dem Befehl brew cask install firefox
der Firefox Browser im
eigenen System installiert werden.
Ist man auf nightly builds oder alte Versionen einer Software angewiesen,
hilft zu dem das optionale Repository caskroom/versions
.
brew tap caskroom/versions
Mit der Hilfe von Ansible kann dieser Prozess (sowie die Installation der Software) nun zentral erfolgen.
Wir legen uns eine Konfiguration an.
Hierzu erstellen wir einen Tasks zur Installation von Homebrew Cask und allen Applikationen:
roles/apps/tasks/main.yml
- name: Check if homebrew cask installed
homebrew: name=cask state=present
- name: Check if caskroom/versions is installed
homebrew_tap: tap=caskroom/versions state=present
- name: Install applications
homebrew_cask: name={{ item }} state=present
become: yes
with_items:
- firefox
- vivaldi
- gimp
Ansible installiert beim Aufruf nun alle aufgezählten Applikationen.
Aber Achtung: Da Homebrew als Nutzer ausgeführt werden sollte, die Installation
mancher Applikationen jedoch Administrator-Rechte verlangt, ist es hier
sinnvoll, die beiden Tasks homebrew
und homebrew_tab
als Nutzer laufen zu
lassen, den homebrew_cask
Prozess jedoch als Administrator (Siehe
become).
Nun haben wir die Möglichkeit zentral, dokumentiert und nachvollziehbar Software zu installieren, die aus Installern stammt.