Установка системы Flute

Материал из Course Orchestra
Перейти к: навигация, поиск

На текущий момент имеются два наиболее удобных и надёжных способа установки Flute:

  • Для Windows — с помощью инсталлятора,
  • Для Linux — с помощью Ansible-роли CourseOrchestra.flute.

Дистритутив

Скачивать актуальную версию дистрибутива Flute следует с сервера artifactory.corchestra.ru:

Загрузить дистрибутив платформы Course Orchestra
Download.png
Стабильные сборки

Дистрибутив содержит файлы:

  • flute-setup.exe — установщик сервиса Windows.
  • flute.jar — актуальную версию собственно Flute.

Установка Flute на Windows

Для функционирования системы Flute на машине должна быть установлена Java версии не ниже 1.8. Достаточно установки JRE Java SE (Standard Edition). Проверить версию Java можно, например, выполнив команду java -version из командной строки.

Установка производится автоматическим инсталлятором. Имя инсталлятора — flute-setup-[номер версии].exe, где [номер версии] — полный номер версии и сборки продукта Flute.

Flute3.png

На втором экране инсталлятора предлагается выбрать следующие параметры:

  • папку, в которую на машину установлена Java версии 8. Если нужная версия Java установлена, то по умолчанию нужная папка тут уже будет указана. Подставить сюда «неподходящую» папку инсталлятор не позволит.
  • папку Celesta Score Path, в которой будет размещена гранула flute. Если здесь указать не существующую папку, папка будет создана. Для данной папки не рекомендуется использовать поддиректорию Program Files, так как это повлечёт для вас трудности при редактировании текстовых скриптов в этой папке (будут постоянно требоваться права администратора)
  • имя Windows-сервиса, под которым будет работать система Flute. Если вы устанавливаете первую и, предположительно, единственную систему Flute на компьютер, то имеет смысл оставить значение по умолчанию (Flute2). Если вы планируете иметь несколько систем Flute на одной машине (не рекомендуется, лучше и удобнее использовать разные источники задач для одного сервиса Flute!) - необходимо выбрать уникальное имя сервиса для каждой установки.

Дальнейший процесс установки при помощи инсталлятора стандартен и не должен представлять трудностей.


Установка Flute на Ubuntu Linux при помощи Ansible-роли

Это предпочитительный способ установки Flute. Следуйте инструкциям для стандартной роли CourseOrchestra.flute.

Установка Flute вручную на Ubuntu Linux

Если по какой-либо причиние воспользоваться Ansible не получается, установить Flute можно как сервис, выполняющийся в Apache Commons Daemon (jsvc), выполнив следующие шаги:

1. Установите Oracle Java 8.

2. Установите jsvc через sudo apt-get install jsvc. jsvc используется для запуска java приложения в качестве демона. Демоны могут запускаться во время загрузки системы. Поэтому может потребоваться перезагрузить сервер после установки jsvc.

3. Установите jython командой

wget -O installer.jar http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.7.1b3/jython-installer-2.7.1b3.jar 
        && java -jar installer.jar -s -d /opt/jython 
        && rm installer.jar

4. Создайте пользователя flute3 и группу flute3, от имени которых будет работать сервис.

5. Создайте директории

  • /var/opt/flute/score — директория для размещения score
  • /var/log/flute — директория для размещения логов

и дайте необходимые права: как минимум, полный доступ для пользователя flute3.

5. Cкопируйте flute.jar и все сопутствующие библиотеки (папки lib и pyLib) на Linux машину в папку /opt/flute. Папка lib доступна для скачивания в виде zip архива на Artifactory.

6. Скопируйте или создайте настроечный файл flute.xml в той же папке /opt/flute, не забудьте про права для пользователя flute3.

7. Создайте файл flute в /etc/init.d. Будьте внимательны, если файл был отредактирован в ОС Windows. Необходимо удалить символы возврата каретки. Это можно сделать следующей командой (ниже пример самого файла).

sed -i -e 's/\r//g' /etc/init.d/flute
#!/bin/sh
# chkconfig: 2345 20 80
### BEGIN INIT INFO
# Provides:          flute3
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Short-Description: Starts the MyDaemon service
# Description:       This file is used to start the daemon
#                    and should be placed in /etc/init.d
### END INIT INFO

NAME="flute3"
DESC="Flute3 service"

# The path to Jsvc
EXEC="/usr/bin/jsvc"

# The path to the folder containing flute.jar
FILE_PATH="/opt/flute"

# The path to the folder containing the java runtime
JAVA_HOME="/usr/lib/jvm/java-8-oracle"

# Our classpath including our jar file
CLASS_PATH="/usr/share/java/commons-daemon-1.0.15.jar:$FILE_PATH/flute.jar"

# The fully qualified name of the class to execute
CLASS="ru.curs.flute.Main"

#The user to run the daemon as
USER="flute3"

# The file that will contain our process identification number (pid) for other scripts/programs that need to access it.
PID="/tmp/$NAME.pid"

# System.out writes to this file...
LOG_OUT="/var/log/flute/std.out"

# System.err writes to this file...
LOG_ERR="/var/log/flute/std.err"

JAVA_OPTS=""

jsvc_exec()
{
    cd $FILE_PATH
    $EXEC -home $JAVA_HOME -cp $CLASS_PATH -user $USER -outfile $LOG_OUT -errfile $LOG_ERR -pidfile $PID $1 $JAVA_OPTS $CLASS
}

case "$1" in
    start)
        echo "Starting the $DESC..."
        # Start the service
        jsvc_exec
	#if [ -f "$PID" ]; then
		echo "The $DESC has started."
	#fi
    ;;
    stop)
        echo "Stopping the $DESC..."
        # Stop the service
        jsvc_exec "-stop"
        echo "The $DESC has stopped."
    ;;
    restart)
        if [ -f "$PID" ]; then
            echo "Restarting the $DESC..."
            # Stop the service
            jsvc_exec "-stop"
            # Start the service
            jsvc_exec
            echo "The $DESC has restarted."
        else
            echo "Daemon not running, no action taken"
            exit 1
        fi
            ;;
    *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2
    exit 3
    ;;
esac

8. Добавьте сервис в автозапуск командой

sysv-rc-conf flute on

(для этого может понадобиться установить пакет apt-get install sysv-rc-conf)

9. запустите службу

service flute start


Запуск Flute в Docker-контейнере

Удобным способом запуска системы Flute на ОС Linux является старт в Docker-контейнере

Для скачивания Flute необходимо использовать команду

docker pull curs/flute

Для запуска Flute6 требуется настроечный файл flute.xml и папка score, которые подключаются как volumes. Если этот файл и эта папка находятся в текущей директории, то запустить можно следующим образом:

docker run -d -v $(pwd)/flute.xml:/opt/flute/flute.xml -v $(pwd)/score:/var/opt/flute/score curs/flute

При этом в файле flute.xml необходимо в параметрах указывать определённые пути, содержащиеся в контейнере. Шаблон файла flute.xml для Docker-образа:


<?xml version="1.0" encoding="utf-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://corchestra.ru/schema/fluteconfig.xsd">
        <dbconnstring>your:db:here</dbconnstring>
        <dbuser>postgres</dbuser>
        <dbpassword>your:pwd:here</dbpassword>
        <neverstop>true</neverstop>
        <retrywait>50000</retrywait>
        <scorepath>/var/opt/flute/score</scorepath>
        <pylibpath>/opt/jython/Lib:/opt/jython/Lib/site-packages</pylibpath>
        <javalibpath>/opt/flute/lib</javalibpath>
        <skipdbupdate>true</skipdbupdate>
        <scheduledtask>
                <schedule>* * * * *</schedule>
                <script>parsem.hello.run</script>
                <params>DOCKER ROCKS!</params>
        </scheduledtask>
</config>