Где установить 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, во всяком случае), но вы все равно можете разделить их. Это не плохой компромисс, а то, что вы должны понимать.
    • Если вы помещаетесь в "домашний каталог", у вас есть права на обновление базовых двоичных файлов, установку патчей и т.д., отдельно от ИТ. В этом подходе есть хорошие/плохие/уродливые, в зависимости от организационных обязанностей.

Надеюсь, что это поможет.