Это скорее вопрос рабочей станции, чем самого сервера, но я считаю, что лучше всего подходит для этого сайта:
Я хочу автоматизировать настройку конфигурации рабочей станции Windows 10 Pro. Я хочу иметь возможность автоматизировать установку нескольких инструментов на машины с Windows, без необходимости делать это вручную на каждом из них. Мне нужен автоматический процесс, который может занять целый день, если мне не нужно присутствовать и смотреть на него.
Я хочу иметь возможность устанавливать такие вещи, как:
Pycharm
Visual Studio
Notepad++
Android Studio
Docker
Sublime
Netbeans
Firefox
Chrome
И другие инструменты, связанные с работой.
Я слышал и читал о Ansible
, Puppet
, Chef
, Salt
, и они, похоже, именно то, что мне нужно , но такими инструментами я никогда не пользовался. Я использую докер
ежедневно, но это не то, что я ищу.
Я также видел другие инструменты, такие как Ninite
и SilentInstall
.
Я ищу что-то предпочтительно с открытым исходным кодом или, по крайней мере, с каким-нибудь бесплатным уровнем, который я могу использовать. Было бы хорошо иметь веб-интерфейс для централизованного управления, хотя я предпочел бы что-то бесплатное и иметь это в качестве возможного обновления в будущем по мере роста количества рабочих станций.
Я не использую AD (по крайней мере, в настоящее время), поэтому я бы предпочел что-то, что позволяло бы мне подключаться к машинам и позволять им запускать что-то из удаленного места или даже подключать USB-устройство для настройки.
Присутствие на месте - не проблема, но чем гибче, тем лучше.
Что мне использовать? Есть предложения или ограничения по вышеупомянутым продуктам? Или я смотрю не на тот набор инструментов, и мне нужно использовать что-то еще для этих задач?
У меня недостаточно репутации, чтобы просить разъяснений, поэтому Я собираюсь предположить две вещи.
Я не использую AD (по крайней мере, в настоящее время), поэтому я бы предпочел что-то, что позволило бы мне подключиться к машины и заставляют их запускать вещи из удаленного места, или даже подключение USB-устройства для настройки.
Я не уверен, что можно назвать «запущенными». Вы не упоминаете операционную систему для рабочих станций, хотя упоминаете Active Directory. Если мои предположения ниже неверны, дайте мне знать, и я посмотрю, смогу ли я изменить ответ, чтобы он соответствовал.
Вы бы согласились на решение, которое позволяет вам подключить USB-устройство к рабочей станции и запустите файл для развертывания вашей «конфигурации». Если этот же процесс может быть выполнен удаленно, это даже лучше.
Вам необходимо поддерживать несколько различных операционных систем, включая некоторые варианты Windows, MacOS X и Linux.
Редактировать: Я вижу что вы несколько раз упоминаете Windows, не знаю, как я это пропустил. Я упоминаю поддержку Windows в своих сравнениях ниже, поэтому считаю, что они все еще актуальны.
Вы задаете несколько вопросов, и я не могу ответить на них все, поэтому я разделю их и отвечу на них по отдельности, а также Я могу.
Что мне следует использовать?
Это очень субъективный вопрос, на который я не могу ответить.
Или я смотрю не на тот набор инструментов и должен использовать что-то другое для этих задач?
Думаю, вы ищете подходящие наборы инструментов.
Есть ли предложения или ограничения по вышеупомянутым продуктам? (Ansible, Puppet, Chef and Salt)
У меня есть только опыт работы с Puppet. Я слышал о других, но не очень хорошо их знаю. Я пройдусь по ним один за другим и сравню их, насколько смогу, с Puppet, используя внешние источники.
Puppet
Версия Puppet с открытым исходным кодом делает в значительной степени именно то, что вы просите, после установки на На рабочей станции вы можете удаленно изменять конфигурацию (вы также можете применить один манифест локально, например, с USB-устройства).
Марионеточный агент на рабочей станции будет связываться с удаленным сервером через определенные промежутки времени, чтобы загрузить «манифест», который определяет желаемое состояние списка ресурсов, который может включать пакеты программного обеспечения, файлы конфигурации, принтеры и т. Д.
Вместе с тем Вместе с Puppet идет «puppetdb» - база данных, в которой хранятся «факты» о рабочих станциях. Вы можете написать свои собственные пользовательские факты, но это такие вещи, как имя хоста, IP-адрес, какой у него процессор и т. Д.
Для Puppet доступно множество бесплатных высококачественных «модулей» от так называемого Puppet Forge .
Это в значительной степени то, что делает Puppet, ни меньше, ни больше.
Ansible
Насколько мне известно, Ansible делает почти все, что делает Puppet, предположительно немного проще - в дополнение к этому он также фокусируется на обеспечении и развертывании, о которых я действительно не знаю.
Как и Puppet, у Ansible также есть отличный источник модулей, доступных для бесплатной загрузки с Ansible Galaxy . Предположительно, модули не так хороши, как те, что доступны для Puppet, но они все равно хороши.
Источник: https://www.devopsgroup.com/2018/01/10/puppet-vs-ansible/
Технически он не поддерживает Windows, но в любом случае его будет легко настроить : http://www.oznetnerd.com/installing-ansible-windows/
Chef
Предположительно Chef гораздо больше сравнивает напрямую с Puppet, хотя он больше ориентирован на облако, чем Puppet. Предполагается, что Chef более «продвинутый» из двух, а Puppet - более простой. Puppet поддерживает более широкий спектр операционных систем, а Chef имеет очень обширный API.
Источник (который также включает удобную матрицу для сравнения): http://www.cyberphoton.com/questions/question/what -is-the-difference-between-chef-and-puppet-in-configuration-management-software
Salt
Этот, кажется, наименее используемый из четырех, и я не смог найти очень хорошее сравнение с Марионеткой. Кажется, что это гораздо более похоже на Ansible, чем на Salt. Предполагается, что он масштабируется лучше трех других, но, хотя он поддерживает Windows, ему это не очень нравится.
Другие сравнения четырех:
https://www.reddit.com/r/linuxadmin/comments/9ljveg/puppet_vs_salt_vs_chef_vs_ansible_which_to_choose/ https://www.intigua.com/blog/puppet-vs.-chef-vs.-ansible-vs.-saltstack