osx_ci
Ansible Роль: OSX-CI
Устанавливает и настраивает программные инструменты, необходимые для сборки и развертывания приложений на OSX/iOS. Настроенная машина Mac может использоваться как агент Jenkins.
Роль создает пользователя ci user
, который может использоваться для выполнения сборок на машине Mac. Она настраивает пользователя для возможности удаленного входа через ssh. Также устанавливает:
- Homebrew
- Node.js 10 LTS
- Java 8 - требование для Jenkins. Установив Java 8, машина OSX может легко стать агентом Jenkins.
- fastlane
- CocoaPods
Требования
Роль ожидает, что инструменты командной строки Xcode будут установлены на целевой машине. Все доступные версии можно найти на странице загрузок Apple. Вы также можете установить инструменты командной строки Xcode через терминал, используя:
xcode-select --install
Обратите внимание, что эта команда требует ввода от пользователя, поэтому вы не можете выполнить ее удаленно (через ssh).
Поскольку роли необходимо настроить авторизованный ssh-ключ для пользователя ci, который позволяет удаленный вход, публичный ssh-ключ должен быть предварительно сгенерирован и предоставлен роли. Публичный ssh-ключ должен находиться на машине, которая выполняет
роль.
Переменные роли
Переменные роли и их значения по умолчанию перечислены ниже. Все значения по умолчанию можно найти в defaults/main.yml
ci_user: ci_user
ci_user_uid: 5013
ci_user_group: ci_user
Имя ci user
, uid и группа, которые будут созданы.
ci_user_public_key_location:
Расположение публичного ssh-ключа, который будет добавлен в файл авторизованных ключей для ci user
. Это позволит осуществлять удаленный вход с помощью ssh под этим пользователем.
ci_user_default_keychain: login.keychain
ci_user_default_keychain_password:
Имя и пароль стандартного ключа доступа, который будет создан для ci user
.
cask_packages: ['java8']
Пакеты brew cask, которые будут установлены.
ruby_gems: ['fastlane']
Ruby gems, которые будут установлены глобально.
homebrew_packages:
Список дополнительных пакетов brew
, которые будут установлены.
Зависимости
Нет.
Пример плейбука
- 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
Лицензия
Информация об авторе
Эта роль была создана в 2019 году MacStadium, Inc.
Сотрудники (поддержка)
Ansible role that installs common CI tools on OSX
ansible-galaxy install kenhuang/ansible-role-osx-ci