Где установить GlassFish на Linux?
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я относительно не знаком с Linux. Я обсуждал это на SuperUser или ServerFault, потому что ответ требует объяснения Linux как системы (а не конкретной проблемы программирования), однако я заинтересован в этом с точки зрения Java-разработчика, и я утверждаю, что это конкретный проблема, потому что, когда я устанавливаю GlassFish, это сильно влияет на мою конфигурацию Java и, в конечном счете, на конфигурацию приложения. Не говоря уже о том, что публикация этого вопроса на этих других сайтах, вероятно, не украсит никакого внимания со стороны разработчика Java, более системных администраторов, которые могут не знать достаточно о Java, чтобы полностью взвешивать это решение.
Я пытаюсь решить, где установить GlassFish, и мне кажется, что у меня есть (реалистично) 4 жизнеспособных варианта:
-
/opt/glassfish/
-
/usr/local/glassfish/
-
/home/myUsers/glassfish/
(это то, что все документы OGS показывают в своих примерах)
-
/home/ogs/glassfish
(как его собственный пользователь, похожий на то, как иногда устанавливается веб-сервер Apache)
Мне интересно, какие плюсы (с учетом характера того, как Linux относится к этим каталогам по-другому, FHS и т.д.) и минусы каждого подхода.
Я читал, что для установки в разделе opt/
есть возможности для установки/пассирования. Тем не менее, я обычно устанавливаю стороннее программное обеспечение на usr/local/
, поэтому я немного не уверен в этом как стратегия.
Oracle GlassFish Server (OGS) доказывает, что все демонстрируют (но никогда не рекомендуют) GlassFish, установленный в вашем домашнем каталоге (home/myUser/
).
Затем снова я прочитал, что довольно просто установить службы типа daemon (что я бы предположил, что я буду использовать GlassFish as - где я его запускаю один раз, и это сводится только к текущему обслуживанию или сбоям ) в качестве собственного пользователя (home/ogs/glassfish/
).
Я уверен. На это решение также влияет то, как я собираюсь использовать GlassFish, поэтому позвольте мне ответить на этот вопрос несколькими ограничениями:
- Я намерен развернуть 4 экземпляра OGS на 4 виртуальных машинах на одном физическом компьютере и сгруппировать их в один домен (1 из 4 экземпляров сервера будет сервером администратора для домена)
- Несколько приложений будут развернуты в этом кластере (все 3 неадминистративных узла) одновременно и должны работать 24/7/365, за исключением случаев, когда они сбой (надеюсь, не часто!) или когда мне нужно обслуживание или настроить их
- Каждое приложение будет значительно большим, и я хотел бы настроить их с помощью реального администратора, а не "голые кости" de minimis, настройки по умолчанию
Если они не предоставляют достаточно подробной информации, чтобы помочь сделать этот выбор, спросите, и я могу быть более конкретным.
Я думаю, когда пыль оседает в конце дня, я ищу (более или менее) матрицу с каждой из четырех опций каталога (плюс любые другие очевидные, которые я пропустил) по сравнению с их соответствующие плюсы и минусы.
Ответы
Ответ 1
Также можно использовать вашу систему управления дистрибутивом Linux для установки Glassfish. Например, на Ubuntu вы можете установить его с помощью
sudo apt-get install glassfish-appserv
и пусть он будет установлен там, где владелец пакета считал, что он должен быть установлен.
Я сам склонен избегать вышеуказанного варианта, так как мне нравится сам контролировать, какая именно версия Glassfish (или любой другой сервер/программное обеспечение Java) установлена и где, но я просто хотел ее выбросить там, поскольку это одна из вещей, которые вы могли бы сделать.
Теперь для отдельных параметров, которые вы предоставили:
/Opt/GlassFish/
Это самый предпочтительный вариант, насколько мне известно. Он хранит программное обеспечение в отдельном каталоге за пределами обычной установки Linux и позволяет использовать преимущества монтажа и разметки.
/USR/локальные/GlassFish/
Мне это не очень нравится, потому что /usr/local обычно используется сторонним программным обеспечением, которое устанавливается с помощью программного обеспечения для управления пакетами дистрибутива (apt/yum/etc), а на большинстве дистрибутивов есть каталоги, такие как bin, etc и lib под ним. Помещение каталога для стеклянной рыбы под ним, сделало бы это неуместным.
Также я предпочитаю, чтобы системные каталоги были отделены от пользовательского программного обеспечения, которое не использует инструменты управления пакетом дистрибутива.
/home/myUsers/glassfish/, /home/ogs/glassfish
Эти 2, я бы не рекомендовал.
Они описаны только в большинстве мест, потому что автор не хочет предполагать, что у пользователя есть root-доступ к этим полям, и в этом случае домашний каталог будет единственным, с которым вам гарантировано будет принадлежать. Если вы владеете системой и управляете ею, эти ограничения не применяются.
Помните, что домашние каталоги предназначены для определенных пользователей. Я всегда рекомендую серверное программное обеспечение управляться с учетными записями отдельных пользователей, которые имеют необходимые привилегии. Помещение программного обеспечения в какой-либо домашний каталог означало бы, что вы либо
- Предоставьте всем, кому необходимо управлять Glassfish, пароль к этой учетной записи пользователя
- Предоставление нескольким пользователям доступа для чтения/записи к домашнему каталогу конкретного пользователя.
В любом случае, это не очень хорошая политика администрирования системы.
Здесь не так много перспективы Java, но если вы спросите меня, не обязательно.
Ответ 2
В отношении предыдущей рекомендации некоторые компромиссы остаются:
- Если вы помещаете в /opt или/usr/local, вам придется иметь доступ для чтения/записи к этим каталогам, а это значит, что вам нужно будет иметь доступ root к ящику. В некоторых средах (где ИТ-платформа управляет платформой) ИТ не позволит вам получить доступ root. Вы должны делегировать IT ответственность за установку, исправление и обновление двоичных файлов GlassFish.
- Если вы помещаете в /opt или/usr/local, вам также нужно будет поместить каталоги домена (--domaindir) в отдельное место, если вы не хотите, чтобы они принадлежали root (маловероятно). Это было по умолчанию в установках GlassFish 2.x RPM для Linux. GlassFish 3.x не имеет установки RPM (от Oracle, во всяком случае), но вы все равно можете разделить их. Это не плохой компромисс, а то, что вы должны понимать.
- Если вы помещаетесь в "домашний каталог", у вас есть права на обновление базовых двоичных файлов, установку патчей и т.д., отдельно от ИТ. В этом подходе есть хорошие/плохие/уродливые, в зависимости от организационных обязанностей.
Надеюсь, что это поможет.