0

Ubuntu 14.04(VirtualBox/Vagrant机器)。Atlassian鱼眼坩埚 - Init.d服务fisheye没有默认权限方案存在错误创建名为'defaultMentionParserListener'的bean错误

鱼眼神器zip version: 3.9.1

,因为它不拿出一个水平init.d中的启动脚本,我创建了下面的脚本/etc/init.d/fisheye

#!/bin/bash 

# FISHEYE_HOME: The path to the FishEye installation. It's recommended to create a symbolic link to the latest version so 
# the process will still work after upgrades. Be sure to update the symlink itself when upgrading. 
# Example: ln -s /usr/local/atlassian/applications/fisheye/4.2.0 /usr/local/atlassian/applications/fisheye/latest 
FISHEYE_HOME="/mnt/fecru-3.9.1" 

# FISHEYE_INST: The path to store Fisheye data. 
# The 2 lines below should be uncommented only if you don't have the environment variables set in /etc/environment file. 
#export FISHEYE_INST="/mnt/fecru-3.9.1_fisheye_data" 
#mkdir -p $FISHEYE_INST || sudo mkdir -p $FISHEYE_INST 

fisheyectl() { 
    if [ ! -f "$FISHEYE_HOME/fisheyeboot.jar" ] ; then 
     echo "Error: Could not find $FISHEYE_HOME/fisheyeboot.jar" 
     exit 1 
    fi 
    #exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$1" 
    "$FISHEYE_HOME/bin/fisheyectl.sh" "$1" 
} 

case "$1" in 
     start) 
       fisheyectl start 
       ;; 
     stop) 
       fisheyectl stop 
       ;; 
     restart) 
       fisheyectl stop 
       sleep 10 
       fisheyectl start 
       ;; 
     status) 
       fecru_pid=$(ps -eAf|grep fecru|grep -v grep|sed "s/[ \t][ \t]*/ /g"|cut -d" " -f2|head -1) 
       if [[ -n "${fecru_pid}" ]]; 
       then 
        echo "Process 'fecru' fisheye/crucible is running. PID (${fecru_pid})" 
       else 
        echo "Process 'fecru' fisheye/crucible is NOT running." 
       fi 
       ;; 

     *) 
       echo "Usage: $0 {start|stop|status|restart}" 
esac 

echo "- Log files are available here:" 
if [[ -n "${FISHEYE_INST}" ]]; 
then 
    echo "$(find "${FISHEYE_INST}/var/log" | sed "s/^/ /")"; 
else 
    echo "$(find "${FISHEYE_HOME}/var/log" | sed "s/^/ /")" 
fi 
echo 

exit 0 

作为root用户,当我试图运行service fisheye start,我看到它开始了这个过程,但最后失败,显示出以下主要错误。

2017-03-03 19:59:30,586 ERROR - No default permission scheme exists 
2017-03-03 19:59:30,743 ERROR - The Web context could not be started 
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultMentionParserListener' defined in URL 

完整的日志:/mnt/fecru-3.9.1/var/log/fisheye.out file: download here

如何我能得到这个决心,得到鱼眼开始了吗? 文件夹/mnt/fecru-3.9.1对用户root拥有有效的775权限(递归设置)。

开启调试(壳/ bash的-x)选项上fisheyectl.sh文件显示:

+ CMD=/usr/bin/java -Xmx1024m -Dfisheye.library.path= -Dfisheye.inst=/mnt/fecru-3.9.1 -Djava.awt.headless=true -Djava.endorsed.dirs=/mnt/fecru-3.9.1/lib/endorsed -jar /mnt/fecru-3.9.1/fisheyeboot.jar start 
+ echo Starting FishEye/Crucible... Output redirected to /mnt/fecru-3.9.1/var/log/fisheye.out 
Starting FishEye/Crucible... Output redirected to /mnt/fecru-3.9.1/var/log/fisheye.out 
+ whoami 
root 
+ echo 

+ echo 

+ nohup sh -c exec /usr/bin/java -Xmx1024m -Dfisheye.library.path= -Dfisheye.inst=/mnt/fecru-3.9.1 -Djava.awt.headless=true -Djava.endorsed.dirs=/mnt/fecru-3.9.1/lib/endorsed -jar /mnt/fecru-3.9.1/fisheyeboot.jar start 

回答

0

我没有要root。我转向root用户,因为我得到那些奇怪的权限问题,即使两个流浪者/ root用户有775(vagrant:根为chown)在/mnt/fecru-3.9.1文件夹递归设置。

溶液: 1)我改变了的init.d级别脚本设置FISHEYE_INST文件夹(这比/mnt/fecru-3.9.1文件夹不同

#!/bin/bash 

# FISHEYE_HOME: The path to the FishEye installation. It's recommended to create a symbolic link to the latest version so 
# the process will still work after upgrades. Be sure to update the symlink itself when upgrading. 
# Example: ln -s /usr/local/atlassian/applications/fisheye/4.2.0 /usr/local/atlassian/applications/fisheye/latest 
FISHEYE_HOME="/mnt/fecru-3.9.1" 

# FISHEYE_INST: The path to store Fisheye data. 
# The 2 lines below should be uncommented only if you don't have the environment variables set in /etc/environment file. 
export FISHEYE_INST="/mnt/fecru-3.9.1_fisheye_data" 
mkdir -p $FISHEYE_INST || sudo mkdir -p $FISHEYE_INST 

fisheyectl() { 
    if [ ! -f "$FISHEYE_HOME/fisheyeboot.jar" ] ; then 
     echo "Error: Could not find $FISHEYE_HOME/fisheyeboot.jar" 
     exit 1 
    fi 
    "$FISHEYE_HOME/bin/fisheyectl.sh" "$1" 
} 

case "$1" in 
     start) 
       fisheyectl start 
       ;; 
     stop) 
       fisheyectl stop 
       ;; 
     restart) 
       fisheyectl stop 
       sleep 10 
       fisheyectl start 
       ;; 
     status) 
     fecru_pid=$(ps -eAf|grep fecru|grep -v grep|sed "s/[ \t][ \t]*/ /g"|cut -d" " -f2|head -1) 
       if [[ -n "${fecru_pid}" ]]; 
       then 
        echo "Process 'fecru' fisheye/crucible is running. PID (${fecru_pid})" 
       else 
        echo "Process 'fecru' fisheye/crucible is NOT running." 
       fi 
       ;; 

     *) 
       echo "Usage: $0 {start|stop|status|restart}" 
esac 

echo "- Log files are available here:" 
if [[ -n "${FISHEYE_INST}" ]]; 
then 
    echo "$(find "${FISHEYE_INST}/var/log" 2>/dev/null | sed "s/^/ /")"; 
else 
    echo "$(find "${FISHEYE_HOME}/var/log" 2>/dev/null | sed "s/^/ /")" 
fi 
echo 

exit 0 

2)注:/mnt/fecru-3.9.1文件夹,我从解压得到我放在/mnt文件夹下的神器。 3)当我设置FISHEYE_INST变量,哪些进程会做的是它会使用该文件夹中(运行鱼眼/坩埚)进程,并将其存储的数据/日志里面/mnt/fecru-3.9.1_fisheye_data

4)现在,我可以是任何用户与有效的sudo访问(并不一定是root)。

5)于是我就sudo service fisheye startsudo service fisheye status,这一步开始启动在端口8060(默认鱼眼门户)。

vag[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (9080) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 

这一次日志文件(按照基于新的位置FISHEYE_INST)是:/mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out并呈现如下:

17 2017-03-03 21:25:54,927 INFO - ======================================================= 
    18 2017-03-03 21:25:54,927 INFO - 
    19 2017-03-03 21:25:54,928 INFO - Welcome to FishEye! 
    20 2017-03-03 21:25:54,928 INFO - 
    21 2017-03-03 21:25:54,928 INFO - You need to configure an admin password and enter your 
    22 2017-03-03 21:25:54,928 INFO - license key. You can do this by accessing FishEye through 
    23 2017-03-03 21:25:54,928 INFO - a web browser, once the server has started: 
    24 2017-03-03 21:25:54,928 INFO - 
    25 2017-03-03 21:25:54,935 INFO - http://myubuntuvagrant:8060 
    26 2017-03-03 21:25:54,935 INFO - 
    27 2017-03-03 21:25:54,936 INFO - Refer to the FishEye administration guide 
    28 2017-03-03 21:25:54,936 INFO - for more information: 
    29 2017-03-03 21:25:54,936 INFO - 
    30 2017-03-03 21:25:54,937 INFO - https://confluence.atlassian.com/display/FISHEYE/Starting+to+use+FishEye 
    31 2017-03-03 21:25:54,937 INFO - 
    32 2017-03-03 21:25:54,937 INFO - ======================================================= 
    33 2017-03-03 21:25:54,937 INFO - 
    34 2017-03-03 21:25:54,940 INFO - Your Server ID is B0SX-F5FH-3753-40DM 
    35 2017-03-03 21:25:55,251 INFO - Adding secondary content dir of /mnt/fecru-3.9.1_fisheye_data/content 
    36 2017-03-03 21:26:02,175 INFO - Starting database... 
    37 2017-03-03 21:26:03,233 INFO - BoneCP - tracking statements enabled for pool [mainPool] 
    38 2017-03-03 21:26:05,304 INFO - BoneCP - tracking statements enabled for pool [retriablePool] 
    39 2017-03-03 21:26:05,786 INFO - Database started. 
    40 2017-03-03 21:26:07,515 INFO - Starting plugin system... 
2017-03-03 21:25:54,937 INFO - 
2017-03-03 21:25:54,937 INFO - ======================================================= 
2017-03-03 21:25:54,937 INFO - 
2017-03-03 21:25:54,940 INFO - Your Server ID is B0SX-F5FH-3753-40DM 
2017-03-03 21:25:55,251 INFO - Adding secondary content dir of /mnt/fecru-3.9.1_fisheye_data/content 
2017-03-03 21:26:02,175 INFO - Starting database... 
2017-03-03 21:26:03,233 INFO - BoneCP - tracking statements enabled for pool [mainPool] 
2017-03-03 21:26:05,304 INFO - BoneCP - tracking statements enabled for pool [retriablePool] 
2017-03-03 21:26:05,786 INFO - Database started. 
2017-03-03 21:26:07,515 INFO - Starting plugin system... 
2017-03-03 21:26:11,119 INFO - Mail system not configured. 
2017-03-03 21:26:55,616 INFO - Plugin system started. 
2017-03-03 21:26:57,088 INFO - Server started on :8060 (http) (control port on 127.0.0.1:8059) 

注意:由于我使用的是流浪的机器,在我游民文件的配置Vagrantfile,我在Guest VM(ubuntu)和我的主机(Mac OS)上有以下端口映射。

# Create a forwarded port mapping which allows access to a specific port 
    # within the machine from a port on the host machine. In the example below, 
    # accessing "localhost:8080" will access port 80 on the guest machine. 
    config.vm.network "forwarded_port", guest: 80, host: 8180 
    config.vm.network "forwarded_port", guest: 8060, host: 8160 

这意味着,我可以在我的主机的MAC机器上的端口8060访问来宾虚拟机中运行的应用程序/门户为端口8160。

因此,做http://localhost:8160 - 或 - http://10.20.30.40:8160(我的Mac机器的IP)将显示Fisheye门户运行,我可以轻松配置。

我不知道为什么,当默认的安装文件夹为/mnt/fecru-3.9.1因为我有FISHEYE_INST varible注释掉,那么我即使用户/所有者和组设置为vagrant/root,并在整个775允许这些错误路径。

设置FISHEYE_INST解决了这个问题。

这个init.d脚本可以通过增加一些逻辑来创建一个PID文件来增强。

操作startstoprestartstatus所有的工作按预期。

[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (9080) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 

[email protected]:~$ sudo service fisheye stop 
INFO - Using log4j configuration file: /mnt/fecru-3.9.1/log4j-client.xml 
INFO - FishEye arguments: [] 
FishEye Shutdown successfully 
Problem connecting to 127.0.0.1:8059 
java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(SocketInputStream.java:210) 
    at java.net.SocketInputStream.read(SocketInputStream.java:141) 
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) 
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) 
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) 
    at java.io.InputStreamReader.read(InputStreamReader.java:184) 
    at java.io.BufferedReader.fill(BufferedReader.java:161) 
    at java.io.BufferedReader.readLine(BufferedReader.java:324) 
    at java.io.BufferedReader.readLine(BufferedReader.java:389) 
    at com.cenqua.fisheye.ctl.BaseRemoteCommand.sendCommand(BaseRemoteCommand.java:96) 
    at com.cenqua.fisheye.ctl.BaseRemoteCommand.mainImpl(BaseRemoteCommand.java:57) 
    at com.cenqua.fisheye.ctl.Stop.main(Stop.java:11) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:101) 
    at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:44) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is NOT running. 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ sudo service fisheye start 
Starting FishEye/Crucible... Output redirected to /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (9657) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ 

6)门户网站(每个映射端口8160)是这样的:enter image description here

注意:为机器自动启动fisheye服务/在重启/启动时间过程,我跑了以下内容: sudo update-rc.d fisheye defaults并确保/etc/init.d/fisheye文件具有有效的755可执行权限。

为了测试这一点,在我完成上述操作之后,我退出了我的Ubuntu流浪计算机,去了我拥有我的Vagrantfile位置的文件夹,然后运行以下命令:vagrant halt; vagrant up; vagrant ssh。我再次登录到我的流浪者机器,在那里我跑了以下来确保Fisheye /坩埚服务/过程正在运行:

[email protected]:~$ ps -eAf|grep fecru 
root  1119  1 65 21:55 ?  00:00:21 /usr/bin/java -Xmx1024m -Dfisheye.library.path= -Dfisheye.inst=/mnt/fecru-3.9.1_fisheye_data -Djava.awt.headless=true -Djava.endorsed.dirs=/mnt/fecru-3.9.1/lib/endorsed -jar /mnt/fecru-3.9.1/fisheyeboot.jar start 
vagrant 2023 1924 0 21:55 pts/0 00:00:00 grep --color=auto fecru 
[email protected]:~$ date 
Fri Mar 3 21:55:39 UTC 2017 
[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (1119) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 
相关问题