Смотреть в демо-режиме
Нажимая на кнопку, вы даете свое согласие получать регулярную рассылку информационного дайджеста K-ampus
Заказать звонок
Соглашение
В рамках настоящей инструкции рассмотрен процесс разворачивания KAMPUS Backend приложения на операцинных системах с ядром linux, но приложение также может быть развернуто на любой операционной системе, которую поддерживает Java VM.
Инструкция по разворачиванию KAMPUS BACKEND
Системные требования
OS: linux/window/mac os x

Java: 1.8

Git: 2.17.x
Сборка
Сборка системы может осуществляться при помощи shell-скрипта (см. Сборочный скрипт) или в ручном режиме.
Ручная сборка
Для сборки приложения KAMPUS Backend, выполните последовательно следующие команды:

  • Откройте терминальную сессию
  • Добавьте переменную окружения, которая будет содержать путь для сборки приложения `export KAMPUS_BACKEND_BUILD=$HOME/build/backend`
  • Добавьте переменную окружения, которая будет содержать путь к версии для запуска `export KAMPUS_BACKEND_SERVICE=/var/www/back`
  • Создайте директорию для сборки приложения `mkdir -p $KAMPUS_BACKEND_BUILD`
  • Скачайте последнюю версию исходных текстов приложения с git `git clone git@git.k-ampus.dev:KAMPUS/ Backend.git`
  • Перейдите в каталог с исходным кодом `cd $KAMPUS_BACKEND_BUILD`
  • Запустите gradlew без параметров `./gradlew` это позволит скачать все необходимые зависимости для сборки приложения.
  • Запустите сборку приложения `./gradlew clean build --parallel`
  • При успешной сборки приложения, в директории `$KAMPUS_BACKEND_BUILD/web/build/libs/` должен рассполагаться файл `application.jar`.
  • Скопируйте все необходимые файлы в директорию, в которой будет производиться запуск приложения:

```
cp $KAMPUS_BACKEND_BUILD/web/build/libs/
application.jar $KAMPUS_BACKEND_SERVICE
cp $KAMPUS_BACKEND_BUILD/hq-CA01.pem $KAMPUS_BACKEND_SERVICE
cp $KAMPUS_BACKEND_BUILD/web/src/main/resources/
application.yml $KAMPUS_BACKEND_SERVICE

```
Автоматизированная сборка
Для сборки в автоматическом режиме, можно воспользоваться shell-скриптом.

**ВНИМАНИЕ!!!** Перед запуском, измените переменные окружения в скрипте!
```
#!/usr/bin/env bash

BUILD_DIR="build/admin"
PROJECT_DIR="${BUILD_DIR}/front-admin"
REPOSITORY_URL="git@git.k-ampus.dev:KAMPUS/Front-Admin.git"
BRANCH="development"
RELEASE_DIR="/var/www/admin"

if [[ ! -d ${PROJECT_DIR} ]]; then

echo -n "Creating build directory..."
mkdir -p ${BUILD_DIR}
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: create directory $BUILD_DIR failed"
exit 1
else
echo "[SUCCESS]"
fi

echo -n "Downloading repository..."
git clone ${REPOSITORY_URL} --branch ${BRANCH} --single-branch ${BUILD_DIR} > /dev/null 2>&1
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: could not clone repository ${REPOSITORY_URL}"
exit 1
else
echo "[SUCCESS]"
fi
fi

cd ${PROJECT_DIR}

echo -n "Change branch to ${BRANCH}..."
git checkout ${BRANCH} > /dev/null 2>&1
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: unknown branch ${BRANCH}"
exit 1
else
echo "[SUCCESS]"
fi

echo -n "Getting last repository updates..."
git pull > /dev/null 2>&1
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: cannot download updates for ${BRANCH} branch"
exit 1
else
echo "[SUCCESS]"
fi

echo -n "Updating dependencies..."
yarn install > /dev/null 2>&1
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: cannot update dependencies for yarn..."
exit -1
else
echo "[SUCCESS]"
fi

echo -n "Compiling project..."
yarn build > /dev/null 2>&1
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: compilation failed!"
exit 1
else
echo "[SUCCESS]"
fi

echo -n "Deploying new version..."
cd ~

if [[ -d "/var/www/admin" ]]; then
sudo rm -rf "${RELEASE_DIR}"
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: cannot remove directory ${RELEASE_DIR}"
exit -1
fi
fi
if [[ -d "${PROJECT_DIR}/build" ]]; then
sudo mv "${PROJECT_DIR}/build" "${RELEASE_DIR}"
if [[ $? -ne "0" ]]; then
echo "[FAILED]"
echo "Error: could not move directory ${PROJECT_DIR}/build to ${RELEASE_DIR}"
exit 1
else
echo "[SUCCESS]"
fi
else
echo "[FAILED]"
echo "Error: directory ${PROJECT_DIR}/build not found"
exit 1
fi

echo "Done!"
```
Заупск приложения в ручном режиме
Для запуска приложения в режиме сервиса, вам необходимо создать сервис.
В рамках настоящей инструкции, сервис создавался для debian подобной системы.

* Создайте файл kampus.service в директории /etc/systemd/system `sudo touch /etc/systemd/system/kampus.service`
* Откройте файл в любом текстовом редакторе (например nano) и вставьте следующее содержание:

```
[Unit]
Description=KAMPUS
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/var/www/back
#EnvironmentFile=/etc/default/kampus
ExecStart=/usr/bin/java -Xms1024m -Xmx1024m -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Djava.io.tmpdir=/tmp -jar -Dspring.config.name=application /var/www/back/application.jar
ExecStop=/bin/kill -n 9 $(/usr/bin/pgrep java)
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=backend
User=root
Group=root

[Install]
WantedBy=multi-user.target
```

* Сохраните файл
* Добавьте сервис в автоматическую загрузку ``sudo systemctl enable kampus``
* ***ВНИМАНИЕ!!!*** Обратите внимание на пути указанные в сервисе!



Контакт для связи и технических вопросов:

Сергей Хохлов
Проектный менеджер платформы
s.khokhlov@tandp.ru

Для запуска приложения, можно воспользоваться следующей командой:

```
/usr/bin/java -Xms1024m -Xmx1024m -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Djava.io.tmpdir=/tmp -jar -Dspring.config.name=application /var/www/back/application.jar
```
Запуск приложения как сервис
Made on
Tilda