Лучшие практики для обмена доступными игровыми книгами в частной команде?
Я изучаю миграцию нашего текущего управления конфигурацией на основе шеф-повара на доступную.
Мы создаем множество приложений с рельсами, которые имеют похожие зависимости (ruby, unicorn, nginx, monit, MySQL и т.д.).
Итак, в настоящий момент мы используем сборщик библиотек и частных github для обмена нашими общими рецептами между различными проектами.
Я новичок в вопросе, самая близкая вещь, которую я обнаружил, - это незаменимая галактика, но это похоже на вещь "в открытом" стиле.
Какая общая/лучшая практика для этого в частной среде?
Git Subodules - единственный ответ, который приходит на ум, но было бы неплохо иметь что-то более автоматическое, как мы привыкли в мире шеф-повара.
Ответы
Ответ 1
Два основных решения: roles_path
и ansible-galaxy
.
roles_path
Сначала конфигурация roles_path
ansible.cfg
:
В Ansible 1.4 и более поздних версиях вы можете настроить role_path для поиска ролей. Используйте это, чтобы проверить все ваши общие роли в одном месте и легко делиться ими между несколькими проектами в виде плей-листов. Подробнее о том, как установить это в файле ansible.cfg, см. В файле конфигурации Ansible.
Итак, вы должны поместить свои общие роли в некоторые папки, например:
roles_path = /opt/ansible/common_roles/:/opt/ansible/other_roles/
from: http://docs.ansible.com/playbooks_roles.html#introduction
анзибль-галактика
Во-вторых, вы можете использовать командную строку ansible-galaxy
:
ansible-galaxy install -r requirements.yml
Со следующими требованиями .yml:
# from github, overriding the name and specifying a specific tag
- src: https://github.com/bennojoy/nginx
version: master
name: nginx_role
# from a webserver, where the role is packaged in a tar.gz
- src: https://some.webserver.example.com/files/master.tar.gz
name: http-role
Таким образом, вы можете размещать свои общие роли через zip файлы.
from: http://docs.ansible.com/galaxy.html#the-ansible-galaxy-command-line-tool
Ответ 2
Ansible находится на более ранней стадии, чем Chef, Puppet и другие инструменты там, когда дело доходит до поддержки сообщества.
Итак, я считаю, что вам пока не повезло. Самое близкое к librarian-chef
- Ansible Galaxy
и что все еще выполняется работа (бета-версия). И, как вы сказали это на открытом воздухе. Сказав это, это не означает, что нечто вроде Ansible playbook team packager не будет доступно позже, либо от Ansible, либо от стороннего разработчика.
В настоящее время мы просто придерживаемся простого хранилища git, разделяющего проигрыватели в разных каталогах или разных ролях. В конце концов, git был разработан для использования с несколькими разработчиками. Я предполагаю, что вы можете использовать несколько суб-репозиториев git для выполнения чего-то вроде частной Ansible Galaxy, но управление суб-репозициями git не так просто для задачи, особенно если у вас много git sub-repos.