- PVSM.RU - https://www.pvsm.ru -
Последнее время на Хабре стали появляться статьи про OpenShift, что привлекло моё внимание, ведь платформа действительно интересна и грех в ней не поковыряться, да и так совпало, что я начал задумываться найти альтернативу моему уютному Dropbox-репозиторию Maven в связи с отменой возможности иметь прямые ссылки и папки Public в целом ( пруф: habrahabr.ru/post/145864/ [1] ).
Итак, сегодня мы с Вами будем устанавливать Maven-репозиторий под управлением Nexus под собственные нужды, а Ваш покорный слуга поделится костылями знаниями, приобретёнными будучи первопроходцем в этом деле.
Первым делом нам необходимо зарегистрироваться и создать приложение, этот процесс хорошо описан в статье habrahabr.ru/post/145203/ [2], я лишь проведу краткое изложение:
$ git clone ssh://a3cf48bc92174721a2c49fd823243b3a@habr-trylogic.rhcloud.com/~/git/habr.git/
Обратите внимание на адрес, указаный в ссылке для клонирования ( что-то-похожее-на-хеш@app_name-namespace.rhcloud.com ), он нам пригодится для дальнейшего доступа к приложению по ssh.
Почему я выбрал Tomcat, спросите Вы, а не стал пользоваться уже настроенным за нас командой OpenShift контейнером JBoss? Да потому что Nexus в нём не работает:)
Не смотря на наличие статьи на Хабре, описывающей процесс установки Tomcat, я решил воспользоваться статьёй на сайте OpenShift [5], там и разжевали лучше, и есть шаги по установке IP и портов для тех, кто с Tomcat-ом работает посредственно.
Для тех, кто не владеет английским (или просто кому лень :)) попытаюсь опять же в кратце:
ssh a3cf48bc92174721a2c49fd823243b3a@habr-trylogic.rhcloud.com
sh ~/habr/repo/.openshift/action_hooks/stop
# Где habr - имя Вашего инстанса.
cd ~/habr/data
wget http://www.bizdirusa.com/mirrors/apache/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27.tar.gz
tar zxvf apache-tomcat-7.0.27.tar.gz
rm apache-tomcat-7.0.27.tar.gz
env |grep INTERNAL_IP
$ vim apache-tomcat-7.0.27/conf/server.xml
<Server port="8005" shutdown="SHUTDOWN">
на
<Server port="15005" shutdown="SHUTDOWN">
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
на
<Connector port="15009" protocol="AJP/1.3" redirectPort="8443" />
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
на
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
address="IP_АДРЕС_ПОЛУЧЕННЫЙ_ВЫШЕ”
redirectPort="15443" />
<Engine name="Catalina" defaultHost="localhost">
на
<Engine name="Catalina" defaultHost="IP_АДРЕС_ПОЛУЧЕННЫЙ_ВЫШЕ">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
на
<!-- Не забудьте поменять здесь habr-trylogic.rhcloud.com на ВАШ адрес -->
<Host name="habr-trylogic.rhcloud.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<role rolename="manager-gui"/>
<user username="admin" password="mySupaPass" roles="manager-gui"/>
После чего менеджер будет доступен по ссылке http://YOUR_APP_LINK/manager/
# не забываем заменить habr на ваше имя приложения
habr/data/apache-tomcat-7.0.27/bin/startup.sh
А так же файл stop:
repo/data/apache-tomcat-7.0.27/bin/shutdown.sh
Это позволит Вам запускать и останавливать сервер через
rhc app start -a habr
Не так уж и кратко получилось, конечно, но лучше так, чем никак:)
Наконец-то мы подошли к герою нашего рассказа — продукту компании Sonatype по имени Nexus.
Казалось бы, что может быть сложного в простой установке приложения в JavaEE контейнер, подумал я и, не долго думая, задеплоил Nexus в свежий Tomcat. Естественно ничего не заработало $) Чтение логов показало, что Nexus пытается создать папку ${user.home}/sonatype-work, но у OpenShift другое мнение на этот счёт, и прав писать в USER_HOME она не даёт, а для записи у нас доступны только 3 папки: data, repo and tmp. NE GUSTO, подумал я, могли бы хотя бы Java Property «user.home» подменять на какую-нить data, но ведь платформа совсем свежая, авось прикрутят.
Держа в уме полученную информацию, которая, между прочим, полезна не только для Nexus, но и для других Java-приложений, которые используют USER_HOME, приступим:
OK - Deployed application at context path /
# сами знаете, что там про замену habr на ваше имя приложения ;)
vim habr/data/apache-tomcat-7.0.27/webapps/ROOT/WEB-INF/plexus.properties
где надо поправить параметр nexus-work
nexus-work=${user.home}/habr/data/sonatype-work/nexus
Таким образом, мы научились корректно запускать наши приложения в контейнере Tomcat на примере Nexus. Какие у меня впечатления от OpenShift, скажите Вы? Исключительно положительные! Машинки очень отзывчивые, есть доступ по ssh, есть возможность самому устанавливать туда что душе угодно (лишь бы угодники души корректно работали с окружением ;)), 1Гб вполне достаточно для обыденных нужд программиста, плюс канал у них, судя по всему, около 10мбит на инстанс, поэтому кидался файлами с сервером довольно-таки быстро.
Спасибо за внимание!
Админь!
Автор: bsideup
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/maven/9662
Ссылки в тексте:
[1] habrahabr.ru/post/145864/: http://habrahabr.ru/post/145864/
[2] habrahabr.ru/post/145203/: http://habrahabr.ru/post/145203/
[3] ссылке: https://openshift.redhat.com/app/account/new
[4] Создаём DYI приложение: https://openshift.redhat.com/app/console/application_types/diy-0.1
[5] статьёй на сайте OpenShift: https://openshift.redhat.com/community/blogs/free-apache-tomcat-hosting-in-the-cloud-for-java-applications-its-called-openshift
[6] www.sonatype.org/downloads/nexus-2.0.5.war: http://www.sonatype.org/downloads/nexus-2.0.5.war
Нажмите здесь для печати.