Установка на FreeBSD

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: Пока есть такой ресурс : http://behterev.su/index.php?pa=articles)
(Установка activemq)
 
(10 промежуточных версий не показаны.)
Строка 1: Строка 1:
 +
[[Категория:Установка]]
 +
[[Категория:FreeBSD]]
Пока есть такой ресурс :
Пока есть такой ресурс :
http://behterev.su/index.php?pa=articles
http://behterev.su/index.php?pa=articles
 +
 +
== Установка openjdk ==
 +
Первоначально необходимо установить openjdk.
 +
<pre>
 +
# cd /usr/ports/java/openjdk[x]
 +
# make config && make install clean && rehash
 +
</pre>
 +
 +
== Установка activemq ==
 +
Устанавливаем activemq.
 +
<pre>
 +
# cd /usr/ports/net/activemq
 +
# make config && make install clean && rehash
 +
</pre>
 +
 +
Конфигурация activemq по-умолчанию находится в /usr/local/etc/activemq/activemq.xml.
 +
<pre>
 +
          <plugins>
 +
              <!-- drop messages that have been sent to the DLQ -->
 +
              <discardingDLQBrokerPlugin dropAll="true"/>
 +
          </plugins>
 +
          <systemUsage>
 +
            <systemUsage>
 +
                <memoryUsage>
 +
                    <memoryUsage limit="128 mb"/>
 +
                </memoryUsage>
 +
                <storeUsage>
 +
                    <storeUsage limit="10000 gb"/>
 +
                </storeUsage>
 +
                <tempUsage>
 +
                    <tempUsage limit="1 gb"/>
 +
                </tempUsage>
 +
            </systemUsage>
 +
        </systemUsage>
 +
 +
        <transportConnectors>
 +
            <transportConnector name="nio" uri="nio://127.0.0.1:61616"/>
 +
        </transportConnectors>
 +
        <!-- Web Console -->
 +
        <!--
 +
            <import resource="jetty.xml"/>
 +
        -->
 +
</pre>
 +
 +
Добавить в /etc/rc.conf:
 +
<pre>
 +
activemq_enable="YES"
 +
activemq_javargs="-Xmx512M \
 +
-Djava.net.preferIPv4Stack=true \
 +
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider \
 +
-Dorg.apache.activemq.UseDedicatedTaskRunner=true \
 +
-Djava.util.logging.config.file=logging.properties \
 +
-Dcom.sun.management.jmxremote"
 +
</pre>
 +
 +
Запуск activemq:
 +
<pre>
 +
# /usr/local/etc/rc.d/activemq start
 +
</pre>
 +
 +
Если все правильно, то activemq станет слушать порт, указанный в <transportConnectors>:
 +
<pre>
 +
# netstat -an | grep 61616
 +
tcp4      0      0 127.0.0.1.61616        *.*                    LISTEN
 +
</pre>
 +
 +
и при раскоменченном веб консоли в конфиге
 +
<pre>
 +
# netstat -an | grep 8161
 +
tcp4      0      0 *.8161        *.*                    LISTEN
 +
</pre>
 +
 +
http://localhost:8161/admin
 +
 +
== Второй вариант rc скриптов ==
 +
 +
В этом варианте весь bgbilling находится в /usr/local/bgbilling и BGBillingServer в /usr/local/bgbilling/server. Заведен пользователь bg с home директорией /usr/local/bgbilling и соответсвенно все части bgbilling запускаются от этого пользователя. rc скрипты кидаем в /usr/local/etc/rc.d/ и ставим атрибут исполнения. в /etc/rc.conf добавляем:
 +
 +
=== bgserver ===
 +
 +
<pre>
 +
bgserver_enable="YES"
 +
ipv6_enable="YES"
 +
ipv6_ipv4mapping="YES"
 +
</pre>
 +
 +
[[IPv6]] и '''ipv6_ipv4mapping''' требуются для того, чтобы java смогла слушать на 127.0.0.1, по-умолчанию даже при выключенном IPv6 будет слушать только на '''::1'''.
 +
 +
дополнительно можно указать:
 +
 +
<pre>
 +
bgserver_java="<путь до нужной java машины>"
 +
bgserver_pid="<путь и имя pid фала>"
 +
bgserver_chdir="<путь home BGBillingServer>"
 +
bgserver_users="<имя пользователя от которого будет запускатся BGBillingServer>"
 +
</pre>
 +
 +
 +
<pre>
 +
#!/bin/sh
 +
#
 +
# PROVIDE: bgserver
 +
# REQUIRE: DAEMON mysql
 +
# KEYWORD: shutdown
 +
#
 +
# Add the following line to /etc/rc.conf to enable trac:
 +
#  bgserver_enable="YES"
 +
#
 +
 +
. "/etc/rc.subr"
 +
 +
 +
bgserver_enable=${bgserver_enable:-"NO"}
 +
bgserver_java=${bgserver_java:-"/usr/local/openjdk6"}
 +
bgserver_pid=${bgserver_pid:-"/var/run/bgbilling/bgserver.pid"}
 +
bgserver_chdir=${bgbilling_chdir:-"/usr/local/bgbilling/server"}
 +
bgserver_users=${bgserver_user:-"bg"}
 +
CLASSPATH=${bgserver_chdir}:${bgserver_chdir}/lib/*
 +
 +
name=bgserver
 +
rcvar=`set_rcvar`
 +
 +
foo="$bgserver_java/bin/java -Dapp.name=BGBillingServer -Dnetworkaddress.cache.ttl=3600 -Xmx512m -cp $CLASSPATH ru.bitel.common.bootstrap.Boot bitel.billing.server.Server start > ./log/server.out 2>&1"
 +
boo="$bgserver_java/bin/java -Dnetworkaddress.cache.ttl=3600 -Djava.awt.headless=true -Xmx256m -cp $CLASSPATH bitel.billing.server.Server stop"
 +
 +
stop_cmd="bg_stop"
 +
 +
bg_stop()
 +
{
 +
        rc_pid=$(check_pidfile $pidfile $procname)
 +
        if [ -z "$rc_pid" ]; then
 +
                [ -n "$rc_fast" ] && return 0
 +
                _run_rc_notrunning
 +
                return 1
 +
        fi
 +
        echo 'Stopping bgbilling.'
 +
        if $boo 2>/dev/null; then
 +
                wait_for_pids $rc_pid
 +
        else
 +
                echo -n 'bgbilling failed, trying kill: '
 +
                kill -TERM $rc_pid
 +
                wait_for_pids $rc_pid
 +
        fi
 +
}
 +
 +
load_rc_config $name
 +
 +
pidfile=${bgserver_pid}
 +
command=/usr/sbin/daemon
 +
command_args="-p ${pidfile} -u ${bgserver_users} ${foo}"
 +
procname=$bgserver_java/bin/java
 +
 +
run_rc_command "$1"
 +
 +
</pre>
 +
 +
 +
=== bgdataloader ===
 +
 +
настройки в rc.conf по аналогии с bgserver
 +
 +
<pre>
 +
#!/bin/sh
 +
#
 +
# PROVIDE: bgdataloader
 +
# REQUIRE: DAEMON mysql
 +
# KEYWORD: shutdown
 +
#
 +
# Add the following line to /etc/rc.conf to enable trac:
 +
#  bgdataloader_enable="YES"
 +
#
 +
 +
. "/etc/rc.subr"
 +
 +
 +
bgdataloader_enable=${bgdataloader_enable:-"NO"}
 +
bgdataloader_java=${bgdataloader_java:-"/usr/local/openjdk6"}
 +
bgdataloader_pid=${bgdataloader_pid:-"/var/run/bgbilling/bgdataloader.pid"}
 +
bgdataloader_chdir=${bgdataloader_chdir:-"/usr/local/bgbilling/server"}
 +
bgdataloader_users=${bgdataloader_user:-"bg"}
 +
CLASSPATH=${bgdataloader_chdir}:${bgdataloader_chdir}/lib/*
 +
 +
name=bgdataloader
 +
rcvar=`set_rcvar`
 +
 +
foo="$bgdataloader_java/bin/java -Dapp.name=BGDataLoader -Dnetworkaddress.cache.ttl=3600 -Xmx256m -cp ${CLASSPATH} ru.bitel.common.bootstrap.Boot bitel.billing.server.DataLoader -estart > ./log/dataloader.out 2>&1"
 +
boo="$bgdataloader_java/bin/java -Dnetworkaddress.cache.ttl=3600 -Djava.awt.headless=true -Xmx256m -cp ${CLASSPATH} bitel.billing.server.DataLoader -estop"
 +
 +
stop_cmd="bg_stop"
 +
 +
bg_stop()
 +
{
 +
        rc_pid=$(check_pidfile $pidfile $procname)
 +
        if [ -z "$rc_pid" ]; then
 +
                [ -n "$rc_fast" ] && return 0
 +
                _run_rc_notrunning
 +
                return 1
 +
        fi
 +
        echo 'Stopping bgbilling.'
 +
        if $boo 2>/dev/null; then
 +
                wait_for_pids $rc_pid
 +
        else
 +
                echo -n 'bgbilling failed, trying kill: '
 +
                kill -TERM $rc_pid
 +
                wait_for_pids $rc_pid
 +
        fi
 +
}
 +
 +
load_rc_config $name
 +
 +
pidfile=${bgdataloader_pid}
 +
command=/usr/sbin/daemon
 +
command_args="-p ${pidfile} ${foo}"
 +
procname=$bgdataloader_java/bin/java
 +
 +
run_rc_command "$1"
 +
 +
</pre>
 +
 +
=== bgscheduler ===
 +
 +
настройки в rc.conf по аналогии с bgserver
 +
 +
<pre>
 +
#!/bin/sh
 +
#
 +
# PROVIDE: bgscheduler
 +
# REQUIRE: DAEMON mysql
 +
# KEYWORD: shutdown
 +
#
 +
# Add the following line to /etc/rc.conf to enable trac:
 +
#  bgscheduler_enable="YES"
 +
#
 +
 +
. "/etc/rc.subr"
 +
 +
 +
bgscheduler_enable=${bgscheduler_enable:-"NO"}
 +
bgscheduler_java=${bgscheduler_java:-"/usr/local/openjdk6"}
 +
bgscheduler_pid=${bgscheduler_pid:-"/var/run/bgbilling/bgscheduler.pid"}
 +
bgscheduler_chdir=${bgscheduler_chdir:-"/usr/local/bgbilling/server"}
 +
bgscheduler_users=${bgscheduler_user:-"bg"}
 +
CLASSPATH=${bgscheduler_chdir}:${bgscheduler_chdir}/lib/*
 +
 +
name=bgscheduler
 +
rcvar=`set_rcvar`
 +
 +
foo="$bgscheduler_java/bin/java -Dapp.name=BGScheduler -Xmx256m -cp ${CLASSPATH} ru.bitel.common.bootstrap.Boot bitel.billing.server.TaskExecuter -estart > ./log/scheduler.out 2>&1"
 +
boo="$bgscheduler_java/bin/java -Dnetworkaddress.cache.ttl=3600 -Djava.awt.headless=true -Xmx256m -cp ${CLASSPATH} bitel.billing.server.TaskExecuter -estop"
 +
 +
stop_cmd="bg_stop"
 +
 +
bg_stop()
 +
{
 +
        rc_pid=$(check_pidfile $pidfile $procname)
 +
        if [ -z "$rc_pid" ]; then
 +
                [ -n "$rc_fast" ] && return 0
 +
                _run_rc_notrunning
 +
                return 1
 +
        fi
 +
        echo 'Stopping bgbilling.'
 +
        if $boo 2>/dev/null; then
 +
                wait_for_pids $rc_pid
 +
        else
 +
                echo -n 'bgbilling failed, trying kill: '
 +
                kill -TERM $rc_pid
 +
                wait_for_pids $rc_pid
 +
        fi
 +
}
 +
 +
load_rc_config $name
 +
 +
pidfile=${bgscheduler_pid}
 +
command=/usr/sbin/daemon
 +
command_args="-p ${pidfile} ${foo}"
 +
procname=$bgscheduler_java/bin/java
 +
 +
run_rc_command "$1"
 +
</pre>
 +
 +
== FAQ по FreeBSD ==
 +
* [[java.lang.NoClassDefFoundError: javax/xml/bind/DataBindingException]]

Текущая версия на 00:14, 6 сентября 2016

Пока есть такой ресурс : http://behterev.su/index.php?pa=articles

Содержание

Установка openjdk

Первоначально необходимо установить openjdk.

# cd /usr/ports/java/openjdk[x]
# make config && make install clean && rehash

Установка activemq

Устанавливаем activemq.

# cd /usr/ports/net/activemq
# make config && make install clean && rehash

Конфигурация activemq по-умолчанию находится в /usr/local/etc/activemq/activemq.xml.

          <plugins>
              <!-- drop messages that have been sent to the DLQ -->
              <discardingDLQBrokerPlugin dropAll="true"/>
          </plugins>
          <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="128 mb"/>
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="10000 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="1 gb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>

        <transportConnectors>
            <transportConnector name="nio" uri="nio://127.0.0.1:61616"/>
        </transportConnectors>
        <!-- Web Console -->
        <!--
            <import resource="jetty.xml"/>
        -->

Добавить в /etc/rc.conf:

activemq_enable="YES"
activemq_javargs="-Xmx512M \
-Djava.net.preferIPv4Stack=true \
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider \
-Dorg.apache.activemq.UseDedicatedTaskRunner=true \
-Djava.util.logging.config.file=logging.properties \
-Dcom.sun.management.jmxremote"

Запуск activemq:

# /usr/local/etc/rc.d/activemq start

Если все правильно, то activemq станет слушать порт, указанный в <transportConnectors>:

# netstat -an | grep 61616
tcp4       0      0 127.0.0.1.61616        *.*                    LISTEN

и при раскоменченном веб консоли в конфиге

# netstat -an | grep 8161
tcp4       0      0 *.8161        *.*                    LISTEN

http://localhost:8161/admin

Второй вариант rc скриптов

В этом варианте весь bgbilling находится в /usr/local/bgbilling и BGBillingServer в /usr/local/bgbilling/server. Заведен пользователь bg с home директорией /usr/local/bgbilling и соответсвенно все части bgbilling запускаются от этого пользователя. rc скрипты кидаем в /usr/local/etc/rc.d/ и ставим атрибут исполнения. в /etc/rc.conf добавляем:

bgserver

bgserver_enable="YES"
ipv6_enable="YES"
ipv6_ipv4mapping="YES"

IPv6 и ipv6_ipv4mapping требуются для того, чтобы java смогла слушать на 127.0.0.1, по-умолчанию даже при выключенном IPv6 будет слушать только на ::1.

дополнительно можно указать:

bgserver_java="<путь до нужной java машины>"
bgserver_pid="<путь и имя pid фала>"
bgserver_chdir="<путь home BGBillingServer>"
bgserver_users="<имя пользователя от которого будет запускатся BGBillingServer>"


#!/bin/sh 
# 
# PROVIDE: bgserver 
# REQUIRE: DAEMON mysql
# KEYWORD: shutdown 
# 
# Add the following line to /etc/rc.conf to enable trac: 
#  bgserver_enable="YES" 
# 

. "/etc/rc.subr" 


bgserver_enable=${bgserver_enable:-"NO"}
bgserver_java=${bgserver_java:-"/usr/local/openjdk6"}
bgserver_pid=${bgserver_pid:-"/var/run/bgbilling/bgserver.pid"}
bgserver_chdir=${bgbilling_chdir:-"/usr/local/bgbilling/server"}
bgserver_users=${bgserver_user:-"bg"}
CLASSPATH=${bgserver_chdir}:${bgserver_chdir}/lib/*

name=bgserver 
rcvar=`set_rcvar`

foo="$bgserver_java/bin/java -Dapp.name=BGBillingServer -Dnetworkaddress.cache.ttl=3600 -Xmx512m -cp $CLASSPATH ru.bitel.common.bootstrap.Boot bitel.billing.server.Server start > ./log/server.out 2>&1"
boo="$bgserver_java/bin/java -Dnetworkaddress.cache.ttl=3600 -Djava.awt.headless=true -Xmx256m -cp $CLASSPATH bitel.billing.server.Server stop"

stop_cmd="bg_stop"

bg_stop()
{
        rc_pid=$(check_pidfile $pidfile $procname)
        if [ -z "$rc_pid" ]; then
                [ -n "$rc_fast" ] && return 0
                _run_rc_notrunning
                return 1
        fi
        echo 'Stopping bgbilling.'
        if $boo 2>/dev/null; then
                wait_for_pids $rc_pid
        else
                echo -n 'bgbilling failed, trying kill: '
                kill -TERM $rc_pid
                wait_for_pids $rc_pid
        fi
}

load_rc_config $name 

pidfile=${bgserver_pid} 
command=/usr/sbin/daemon 
command_args="-p ${pidfile} -u ${bgserver_users} ${foo}"
procname=$bgserver_java/bin/java

run_rc_command "$1"


bgdataloader

настройки в rc.conf по аналогии с bgserver

#!/bin/sh 
# 
# PROVIDE: bgdataloader 
# REQUIRE: DAEMON mysql
# KEYWORD: shutdown 
# 
# Add the following line to /etc/rc.conf to enable trac: 
#  bgdataloader_enable="YES" 
# 

. "/etc/rc.subr" 


bgdataloader_enable=${bgdataloader_enable:-"NO"}
bgdataloader_java=${bgdataloader_java:-"/usr/local/openjdk6"}
bgdataloader_pid=${bgdataloader_pid:-"/var/run/bgbilling/bgdataloader.pid"}
bgdataloader_chdir=${bgdataloader_chdir:-"/usr/local/bgbilling/server"}
bgdataloader_users=${bgdataloader_user:-"bg"}
CLASSPATH=${bgdataloader_chdir}:${bgdataloader_chdir}/lib/*

name=bgdataloader 
rcvar=`set_rcvar`

foo="$bgdataloader_java/bin/java -Dapp.name=BGDataLoader -Dnetworkaddress.cache.ttl=3600 -Xmx256m -cp ${CLASSPATH} ru.bitel.common.bootstrap.Boot bitel.billing.server.DataLoader -estart > ./log/dataloader.out 2>&1"
boo="$bgdataloader_java/bin/java -Dnetworkaddress.cache.ttl=3600 -Djava.awt.headless=true -Xmx256m -cp ${CLASSPATH} bitel.billing.server.DataLoader -estop"

stop_cmd="bg_stop"

bg_stop()
{
        rc_pid=$(check_pidfile $pidfile $procname)
        if [ -z "$rc_pid" ]; then
                [ -n "$rc_fast" ] && return 0
                _run_rc_notrunning
                return 1
        fi
        echo 'Stopping bgbilling.'
        if $boo 2>/dev/null; then
                wait_for_pids $rc_pid
        else
                echo -n 'bgbilling failed, trying kill: '
                kill -TERM $rc_pid
                wait_for_pids $rc_pid
        fi
}

load_rc_config $name 

pidfile=${bgdataloader_pid} 
command=/usr/sbin/daemon 
command_args="-p ${pidfile} ${foo}"
procname=$bgdataloader_java/bin/java

run_rc_command "$1"

bgscheduler

настройки в rc.conf по аналогии с bgserver

#!/bin/sh 
# 
# PROVIDE: bgscheduler 
# REQUIRE: DAEMON mysql
# KEYWORD: shutdown 
# 
# Add the following line to /etc/rc.conf to enable trac: 
#  bgscheduler_enable="YES" 
# 

. "/etc/rc.subr" 


bgscheduler_enable=${bgscheduler_enable:-"NO"}
bgscheduler_java=${bgscheduler_java:-"/usr/local/openjdk6"}
bgscheduler_pid=${bgscheduler_pid:-"/var/run/bgbilling/bgscheduler.pid"}
bgscheduler_chdir=${bgscheduler_chdir:-"/usr/local/bgbilling/server"}
bgscheduler_users=${bgscheduler_user:-"bg"}
CLASSPATH=${bgscheduler_chdir}:${bgscheduler_chdir}/lib/*

name=bgscheduler 
rcvar=`set_rcvar`

foo="$bgscheduler_java/bin/java -Dapp.name=BGScheduler -Xmx256m -cp ${CLASSPATH} ru.bitel.common.bootstrap.Boot bitel.billing.server.TaskExecuter -estart > ./log/scheduler.out 2>&1"
boo="$bgscheduler_java/bin/java -Dnetworkaddress.cache.ttl=3600 -Djava.awt.headless=true -Xmx256m -cp ${CLASSPATH} bitel.billing.server.TaskExecuter -estop"

stop_cmd="bg_stop"

bg_stop()
{
        rc_pid=$(check_pidfile $pidfile $procname)
        if [ -z "$rc_pid" ]; then
                [ -n "$rc_fast" ] && return 0
                _run_rc_notrunning
                return 1
        fi
        echo 'Stopping bgbilling.'
        if $boo 2>/dev/null; then
                wait_for_pids $rc_pid
        else
                echo -n 'bgbilling failed, trying kill: '
                kill -TERM $rc_pid
                wait_for_pids $rc_pid
        fi
}

load_rc_config $name 

pidfile=${bgscheduler_pid} 
command=/usr/sbin/daemon 
command_args="-p ${pidfile} ${foo}"
procname=$bgscheduler_java/bin/java

run_rc_command "$1"

FAQ по FreeBSD

Личные инструменты