вторник, 22 июля 2014 г.

Установка Apache Archive на Ubuntu Server


четверг, 31 марта 2011 г.

Установка Apache Archive на Ubuntu Server

Из цикла '1001 велосипед'.

Есть такая замечатлеьная програмка как Archive. Помогает сэкономить кучу времени и нервов разработчикам, работающим с Maven проектами (особенно актуально для контор, не могущих позволить себе нормальный интернет канал).
Так вот, есть следующая задача:
а) установить это чудо на Ubuntu Server (ssh, без XServer-а)
б) сделать автоматический запуск и остановку
в) разнести исполняемый код\конфиги и данные по нужным даректориям
г) сделать это с минимальными исправлениями самого дистрибутива archiv-ы

С первым пунктом вроди-бы все понятно. Со вторым - болие или менее. С третиьим - пришлось чуть чуть помудрить, потому как приложение написано так, что все находится в одной папке (бинарники, конфиги, базы данных и кеш артифактов).


Шаг 1. Подготовка

Идем на офсайт и читаем. Особенно внимательно читаем вот это: Installing Standalone Distribution of Apache Archiva.
На момент написания статьи, актуальной версией было 1.3.4. Поэтому все пути и ссылки соответсвующие.
Качаем дистрибутив, и устанавливаем в /opt
wget http://apache.vc.ukrtel.net//archiva/binaries/apache-archiva-1.3.4-bin.tar.gz
tar xfz *.tar.gz
sudo mv apache-archiva-1.3.4 /opt/

Шаг 2. Установка JDK

Для фанатов Sun:
sudo apt-get install sun-java6-bin

Шаг 3. Создаем структуру директорий

Конфиги лежат в conf, maven артифакты и БД хранятся в data, логи в logs. Читаем еще раз Installing Standalone Distribution of Apache Archiva: Объявив переменную ARCHIVA_BASE можно все это добро вынести в отдельную папку (рекомендуют в /var/archive).
Но:
1. Хотелось бы настройки иметь в /etc/archive
2. Данные репозитория на отдельном диске /mnt/data.
Для этого:
Создаем хранилище данных:
sudo mkdir /mnt/data/archiva/data

Создаем папки в /var:
sudo mkdir /var/archiva
sudo mkdir /var/archiva/logs
sudo rmdir /opt/apache-archiva-1.3.4/logs/
sudo ln -s /mnt/data/archiva/data/ /var/archiva/data

Создаем папку с конфигами:
sudo mkdir /etc/archiva
sudo ln -s /etc/archiva /var/archiva/conf
sudo mv /opt/apache-archiva-1.3.4/conf/* /mnt/data/archiva/conf/
sudo rmdir /opt/apache-archiva-1.3.4/conf/

На этом манипуляции с папками закончены.

Шаг 4. Базовая конфигурация

Есть несколько пунктов:
а) сервер должен слушать порт 80 вместо 8080
б) лог derby долен ложится в папку логов а не в корень приложения
в) Ограничить используемую память до 256МБ.
Для этого редактируем /etc/archiva/wrapper.conf.
sudo nano /etc/archiva/wrapper.conf
Находим секцию:
# Java Additional Parameters
#wrapper.java.additional.1=
wrapper.java.additional.1=-Dappserver.home=.
wrapper.java.additional.2=-Dappserver.base=%ARCHIVA_BASE%
wrapper.java.additional.3=-Djetty.logs=%ARCHIVA_BASE%/logs
И добавляем строчки:
wrapper.java.additional.4=-Djetty.port=18080
wrapper.java.additional.5=-Dderby.stream.error.file=%ARCHIVA_BASE%/logs/derby.log
И правим вот эт строки:
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=64
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=256

Также нужно установить переменную среды ARCHIVA_BASE в /var/archiva. Для этого открываем скрипт запуска:
sudo nano /opt/apache-archiva-1.3.4/bin/archiva
Находим начальные строчки:
# Application
APP_NAME="archiva"
APP_LONG_NAME="Apache Archiva"
И добавляем:
ARCHIVA_BASE="/var/archiva"
export ARCHIVA_BASE

Способ топортный, но... самый простой.

Шаг 5. Тестовый запуск

sudo /opt/apache-archiva-1.3.4/bin/archiva console
Ждем, потом в броузере пробуем открыть:
http://host_name:80/archiva/

Также проверяем что в директории приложения нету папок logs и data
ls /opt/apache-archiva-1.3.4
И проверяем что логи и данные в ожидаемых местах:
ls /var/archiva/logs
ls /mnt/data/archiva/data

Шаг 6. Регестрируем сервис

Добавляем скрипт в /etc/init.d/ и регестрируем:
sudo ln -s /opt/apache-archiva-1.3.4/bin/archiva /etc/init.d/archiva
sudo update-rc.d archiva defaults

Все, при загрузке системмы сервер стартует, при кореектной остановке системмы - сервер корректно останавливается.
Статус можно посмотреть использую команду:
sudo service archiva status
Ручной старт\стоп\рестарт можно сделать используя команды:
sudo service archiva start
sudo service archiva stop
sudo service archiva restart

Комментариев нет:

Отправить комментарий