Мне нужно развернуть код PHP и Python и соответствующую среду (веб-сервер, сервер db) в удаленных системах Windows, и я не знаю, какой набор инструментов будет эквивалентен ssh
, scp
, bash
и тому подобное.
Итак, по сути, мне нужно уметь следующее:
ssh
(Я даже не знаю, будет ли это текстовый или графический интерфейс в Windows).Главный вопрос, вероятно, в первую очередь заключается в том, как я могу безопасно попасть на машину, а остальное - это общие знания администратора Windows, которые, вероятно, слишком широки, чтобы уместиться в одном вопросе.
У меня есть многолетний опыт обслуживания боксов Linux, и я использовал для них инструменты разной сложности, от простых scp
использование файлов PHP для развертывания контейнеров приложений Java и даже полных виртуальных машин с помощью Vagrant.
В Windows я полный нуб и даже не знаю, с чего начать. Я устанавливал Apache, MySQL, PHP на настольную машину, может быть, дважды в жизни, вот и все.
Бонусные баллы за то, что работает с Linux-машины на моей стороне, но я мог запустить виртуальную машину и делать все оттуда.
PowerShell - лучший язык сценариев для администрирования Windows, локального или удаленного.
Есть несколько инструментов для вызова и использования PowerShell из * nix, например Паш. Я никогда не использовал ни один из них, поэтому не могу говорить об их способностях, полноте или полировке.
Безопасный удаленный доступ: OpenVPN + RDP? Если вы достаточно смелы, вы можете установить сервер Cygwin + OpenSSH.
Возможно, вы захотите взглянуть на марионетку для Windows, которая должна помочь вам в автоматизации и установке программного обеспечения (msi). Я считаю, что puppetmaster должен быть на Linux, а марионеточный агент будет работать на Windows.
Хм, забавно, что здесь никто не говорит о тяжеловесах.
Для меня это SCOM, SCCM - System Center Operations and Configuration Manager.
Установки, отслеживание производительности, уведомление о проблемах - все здесь.
IIS довольно хорошо запускает PHP и большинство других приложений FastCGI, если для него существует фильтр ISAPI. При этом я бы почти посмотрел на использование Фреймворк веб-фермы, модуль для IIS, а также, возможно, набор инструментов для веб-развертывания.
По сути, вы настраиваете главный сервер, который настраиваете так, как вы хотите, от настроек IIS до MySQL и PHP, а затем просто настраиваете IIS для обслуживания страниц для этого приложения. После того, как все это настроено, вы можете просто включить другие «вторичные» серверы в ферме, и они автоматически синхронизируют все настройки приложения и сервера.
Кроме того, если для определенных компонентов, таких как PHP и MySQL, существует пакет установщика веб-платформы, он также автоматически установит и исправит их для вас. И последнее, но не менее важное: система гарантирует, что на каждой машине также будет одинаковый уровень обновлений Windows, которые могут сбивать с толку здесь и там.
Одна из замечательных вещей в этом заключается в том, что @ChrisS упоминает, что PowerShell - это среда сценариев для Windows, и в этой связи Web Farm Framework также имеет командлеты PowerShell для упрощения удаленного администрирования самой службы.
Есть целая куча справочной документации Вот. Обратите внимание, что текущая версия - 2.2.
Я не уверен, подойдет ли он, но Нагои может сработать и для вас. Я знаю, что у них есть некоторые инструменты удаленного развертывания, а также мониторинг.
По сути, вы хотите запустить RDP через VPN. Поэтому установите vpn в ящик любыми способами (hamachi / open vpn и т. Д.), А затем запустите RDP-клиент для подключения к ящику.
В своих целях я использую веб-шлюз для установки vpn (Adito), а затем запускаю приложение RDP, которое я опубликовал внутри шлюза.
Хотя PowerShell является отличным инструментом для администратора Windows, ему по-прежнему требуется безопасное соединение, и установка программного обеспечения только с помощью Powershell (без рабочего стола с графическим интерфейсом) будет излишне сложной.