Я в основном разработчик, работаю неполный рабочий день; и управляю серверами здесь и там для моих проектов.
Я кратко рассмотрел исследованные Chef / Puppet / Ansible; и я хочу найти что-то, что:
Есть ли у кого-нибудь совет, какой инструмент лучше всего подходит?
Спасибо
У меня почти те же требования, что и у вас, и я много исследовал эту тему. Вы определенно можете использовать Puppet / Chef, но кривая обучения высока. Кроме того, очень немногие рецепты для Puppet / Chef, которые я видел, на самом деле полностью поддерживают Windows, поэтому ожидайте, что вам придется писать свои собственные для Windows, которые в противном случае были бы доступны для Linux.
Для управления Linux Ansible удовлетворит все ваши потребности. Он чрезвычайно прост в использовании, установке и не требует центрального сервера. Мне удалось успешно использовать Ansible с Windows, установив Cygwin с OpenSSH. Вы можете автоматизировать установку и настройку Cygwin с помощью некоторых простых сценариев пакетной обработки / PS, чтобы загрузить свой сервер. После этого вы сможете использовать с ним Ansible, если он запускает Python из установки Cygwin. Windows на самом деле не поддерживается в Ansible, и, конечно, могут быть ошибки, но я смог успешно ее использовать. Если вы разработчик, довольно легко понять исходный код Ansible, если у вас возникнут какие-либо проблемы. Разработчики также очень отзывчивы, когда дело касается ошибок. Я отправил обнаруженную ошибку, связанную с путями, и она была исправлена за день. Вы обязательно столкнетесь с некоторыми проблемами в Windows, но я думаю, что в конце концов все еще проще, если у вас нет времени и денег, чтобы инвестировать в Chef / Puppet.
Изменить: похоже, что SaltStack теперь поддерживает Windows. Кажется, он работает с файлами YAML, что похоже на Ansible. Определенно стоит проверить сейчас на Windows.
Я использовал и Puppet, и Chef (извините, без возможности). Могу с уверенностью сказать, что Puppet будет соответствовать перечисленным вами требованиям.
Я использовал puppet для обработки как физических серверов, так и облачных развертываний (AWS), и это довольно просто и надежно.