nick_fields.osx_ci
Ansible Rolle: OSX-CI
Installiert und konfiguriert Softwaretools, die zum Erstellen und Bereitstellen von OSX/iOS-Anwendungen benötigt werden. Der konfigurierte Mac-Computer kann als Jenkins-Agent verwendet werden.
Die Rolle erstellt einen ci Benutzer
, der verwendet werden kann, um Builds auf dem Mac-Computer auszuführen. Der Benutzer wird so konfiguriert, dass er sich remote über SSH anmelden kann. Es werden auch folgende Softwarepakete installiert:
- Homebrew
- Node.js 10 LTS
- Java 8 - Voraussetzung für Jenkins. Durch die Installation von Java 8 kann der OSX-Computer leicht als Jenkins-Agent eingesetzt werden.
- fastlane
- CocoaPods
Anforderungen
Die Rolle erwartet, dass die Xcode Command Line Tools auf dem Zielcomputer installiert sind. Alle verfügbaren Versionen findest du auf der Apple Downloads Seite. Du kannst die Xcode Command Line Tools auch über das Terminal mit folgendem Befehl installieren:
xcode-select --install
Beachte, dass dieser Befehl eine Benutzereingabe erfordert, daher kann er nicht remote (über SSH) ausgeführt werden.
Da die Rolle einen autorisierten SSH-Schlüssel für den ci Benutzer einrichten muss, der die Remote-Anmeldung ermöglicht, muss ein öffentlicher SSH-Schlüssel vorher erstellt und der Rolle zur Verfügung gestellt werden. Der öffentliche SSH-Schlüssel muss sich auf dem Computer befinden, der die Rolle ausführt.
Rollenvariablen
Rollenvariablen und ihre Standardwerte sind nachfolgend aufgeführt. Alle Standardvariablen findest du in defaults/main.yml
.
ci_user: ci_user
ci_user_uid: 5013
ci_user_group: ci_user
Der Name, die UID und die Gruppe des zu erstellenden ci Benutzers
.
ci_user_public_key_location:
Der Speicherort des öffentlichen SSH-Schlüssels, der zu den autorisierten Schlüsseln für den ci Benutzer
hinzugefügt wird. Dies ermöglicht die Remote-Anmeldung mit SSH mit diesem Benutzer.
ci_user_default_keychain: login.keychain
ci_user_default_keychain_password:
Der Name und das Passwort der standardmäßigen Schlüssel-Kette, die für den ci Benutzer
erstellt wird.
cask_packages: ['java8']
Die brew cask Pakete, die installiert werden sollen.
ruby_gems: ['fastlane']
Die Ruby Gems, die global installiert werden sollen.
homebrew_packages:
Eine Liste zusätzlicher brew
Pakete, die installiert werden sollen.
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: localhost
vars:
homebrew_packages: ['git']
ci_user_public_key_location: '/path/to/public_key'
ci_user_default_keychain_password: 'keychain_pass'
roles:
- osx-ci
Lizenz
Autoreninformation
Diese Rolle wurde 2019 von MacStadium, Inc erstellt.
Wartung
Forked Ansible role that installs common CI tools on OSX with arm64/M1 support
ansible-galaxy install nick_fields.osx_ci