Chef - кулинарная книга / ролевой менеджмент

Я работал с Opscode Chef пару лет назад, и я думаю об использовании его снова в моей новой компании - но мне интересно, были ли решены некоторые из моих проблем с Chef в то же время, или я должен ожидать использовать Те же обходные пути.

Хотя мне нравились многие функции сервера, мне не нравился тот факт, что управление версиями наших кулинарных книг и ролей было отделено от фактического добавления элементов на сервер chef. По-моему, эти два разных шага просто вызывали проблемы, когда кто-то создавал список запуска из файла, а затем пренебрегал фиксацией этих изменений в управлении версиями. В конце концов я пошел с chef-solo, запустил задание cron и извлек изменения из нашего репозитория, а затем запустил сценарий оболочки, который указывал на нашу конкретную конфигурацию node.json. Таким образом, единственный способ получить предметы в Chef - это иметь их в Git. Честно говоря, это кажется единственным разумным способом решения проблем: вы не используете контроль версий для своего проекта, а отправляете свои файлы по FTP на рабочий сервер.

Есть ли у более новой версии Chef возможность читать только обновления конфигурации из вашего хранилища с управлением версиями? Если нет, существуют ли какие-либо инструменты, которые используют зацепки фиксации в хранилище для обновления конфигурации Chef? У кого-нибудь было подобное беспокойство, и как вы справились с этим?

Я также открыт для использования Puppet (или любого другого инструмента на основе pull), у меня просто нет никакого опыта с ним, так что это не мой первый выбор. Ansible / любой инструмент на основе push не будет работать. Мы управляем машинами за брандмауэрами, иногда с непредсказуемыми сетевыми подключениями.

2 ответа

Решение

Посмотрите на шеф-охранника. Это инструмент среднего уровня, который имитирует интерфейс шеф-повара, но перехватывает команды ножа и вводит управление исходным кодом в микс. Таким образом, когда вы загружаете новый список выполнения, или кулинарную книгу, или среду, или НИЧЕГО, он гарантирует, что находится под контролем исходного кода (и помечен в случае кулинарных книг), прежде чем пересылать его на сервер chef. Должен делать именно то, что вы ищете.

К сожалению, шеф-повар до сих пор не убежден ни в каких рабочих процессах. Я бы сказал, что предложенный способ - это реализация где-нибудь конвейера непрерывной доставки (например, в Jenkins), который выполняет загрузку на сервер chef.

Другие вопросы по тегам