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.