• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

12.1 Dup - OTRS problem (3.0.10-15.1.2.noarch) :

Hallo!

Ich habe meine SuSE gestern nacht auf version 12.1 hochgeprügelt. Dabei wurde freilig auch OTRS aktualisiert. Es gab eine Schwierigkeit beim aktualisieren der Tabelle. Der root nutzer konnte sich nicht anmelden mit der Meldung:
"User authenticated but no user data found";

Da das eine Testinstallation ist und nicht mehr, hab ich OTRS neu aufgesetzt. (Vorher hab ich alle Upgrade scripte im scripte verzeichnis nochmal abgefeuert, was leider auch nicht geholfen hat).

Das problem liegt daran, dass die Tabelle mit den Nutzerinformationen scheints nicht richtig aktualisiert wurde. Warum und was genau gefehlt hat, weiss ich nicht.
Aber so ähnlich: http://forums.otrs.org/viewtopic.php?f=63&t=10983

Also neuinstalliert und:
rcotrs start
OTRS_ROOT not set

In dem Fall liegt es daran, dass die testfunktion im mitgelieferten rc_script nicht funktioniert. Es wird glaub irgendwie auf zero länge eines strings getestet. Und es kommt scheints immer null raus. Warum das so ist, weiss ich nicht. Jedenfalls hab ich die sysconfigdatei angepasst. Die mitgelieferte passt irgendwie nicht ganz.

Hier meine Version: Die angepassten Pfade habe ich von Hand geprüft. Das scheint so korrekt.
Code:
## Path:        Network/Mail/OTRS                                                                                                                                                                                                           
## Description: Open source Ticket Request System configuration
## Type:        string
## Default:     OTRS
# 
# program name
# 
OTRS_PROG="OTRS"

## Type:        string
## Default:     /srv/otrs
# 
# OTRS home (root) directory
#
OTRS_ROOT="/srv/otrs"
echo $OTRS_ROOT
## Type:        string(0,1)
## Default:     1
#
# The OTRS database is on this host? 1=yes, 0=no
#
OTRS_DB_RUNNING="1"

## Type:        string(0,1)
## Default:     1
#
# The OTRS web server is on this host? 1=yes, 0=no
# (Weil sonst fehler beim boot kommt!)
OTRS_HTTP_RUNNING="0"

## Type:        string(0,1)
## Default:     1
#
# The OTRS cron jobs run on this host? 1=yes, 0=no
# (Weil sonst fehler beim boot kommt!)
OTRS_CRON_RUNNING="0"

## Type:        string(MySQL,PostgreSQL)
## Default:     MySQL
## ServiceRestart: otrs
# 
# Used database. 
# Note: Take care, that you have changed the Config.pm database settings!
# 
OTRS_USED_DB="MySQL"

## Type:        string(rcmysql,rcpostgresql)
## Default:     rcmysql
## ServiceRestart: otrs
#
# Init script to control database.
#
OTRS_USED_DB_RCSCRIPT="rcmysql"

## Type:        string
## Default:     apache
## ServiceRestart: otrs
#
# Used webserver
#
OTRS_USED_WEBSERVER="Apache"

## Type:        string
## Default:     rcapache2
## ServiceRestart: otrs
#
# Init script to control the webserver
#
OTRS_USED_WEBSERVER_RCSCRIPT="rcapache2"

## Type:        string
## Default:     $OTRS_ROOT/var/cron
#
# Location of the cron jobs
#
OTRS_CRON_DIR="$OTRS_ROOT/var/cron"

## Type:        string
## Default:     $OTRS_ROOT/var/tmp/cron
#
# Location of the temporary cron files
#
OTRS_CRON_TMP_FILE="$OTRS_ROOT/var/tmp/cron"

## Type:        string
## Default:     " -u otrs "
#
# Cron job user option
# 
OTRS_CRON_USER=" -u otrs "

## Type:        string
## Default:     $( hostname -f)
# 
# Command to get the systems hostname
#
OTRS_HOST="$( hostname -f)"

## Type:        string
## Default:     otrs
# 
# OTRS location - means http://host/$OTRS_HTTP_LOCATION/index.pl
# 
OTRS_HTTP_LOCATION="otrs"

## Type:        string
## Default:     $OTRS_ROOT/bin/PostMaster.pl
# 
# Location of the PostMaster.pl script.
# 
OTRS_POSTMASTER="$OTRS_ROOT/bin/otrs.PostMaster.pl"
echo $OTRS_POSTMASTER

## Type:        string
## Default:     $OTRS_ROOT/bin/CheckDB.pl
#
# Location of the CheckDB.pl script.
#
OTRS_CHECKDB="$OTRS_ROOT/bin/ortrs.CheckDB.pl"

## Type:        string
## Default:     $OTRS_ROOT/bin/CleanUp.pl
#
# Location of the CleanUp.pl script.
#
OTRS_CHECKDB="$OTRS_ROOT/bin/otrs.CleanUp.pl"
echo $OTRS_CHECKDB

## Type:        string
## Default:     $OTRS_ROOT/var/spool
# 
# Location of the OTRS spool directory.
# 
OTRS_SPOOLDIR="$OTRS_ROOT/var/spool"
echo $OTRS_SPOOLDIR

Schliesslich musste ich im RCSCRIPT selbst noch die Testfunktionen deaktivieren (Die letzte habe ich bei der Fehlersuche selbst hinzugefügt..):
Code:
# Read config
. $OTRS_SYSCONFIG
## TESTS NOT WORKING! (Disabled!!!)
#test -z $OTRS_ROOT || { echo "OTRS_ROOT not set";
#       echo "check config: $OTRS_SYSCONFIG";
#       exit 6; }

#test -z $OTRS_POSTMASTER || { echo "OTRS_POSTMASTER not set";
#       echo "check config: $OTRS_SYSCONFIG";
#       exit 6; }

#test -z $OTRS_SPOOLDIR || { echo "OTRS_SPOOLDIR not set";
#       echo "check config: $OTRS_SYSCONFIG";
#       exit 6; }

#test -z $OTRS_CHECKDB= || { echo "OTRS_CHECKDB not set";
#       echo "check config: $OTRS_SYSCONFIG";
#       exit 6; }

Dann waren im alten Documentroot in "/opt/otrs" noch alte dateien. Die alten configdateien, cronjobs usw. Die konnte ich später löschen.

Eventuell hilft das jemandem weiter. Wäre noch schön gewesen, wenn ich das mit der Anmeldung hinbekommen hätte, aber dazu ist mir nichts eingefallen.

Grüße,

R

Edit: Was glaub auch gut ist:
Code:
zypper in perl-Apache-DBI
In der Datei "/srv/otrs/scripts/apache2-perl-startup.pl" folgendes von den "#'en" befreien:
Code:
use Apache::DBI ();
Apache::DBI->connect_on_init('DBI:mysql:otrs', 'otrs', 'some-pass');
use DBI ();
Dann wird Apache::DBI genutzt.
/edit

Unter Support Assessment erscheint jetzt noch:
Code:
   o SOAP::Lite.....................failed!!! Version 0.712 not supported! This version is broken and not useable! Please use another version.
perl-SOAP-Lite aus "OSS" hat im Moment bei der 12.1 version: 0712-9.1.3

Edit:
Ausserdem musste ich noch beim OTRS benutzer das Heimatverzeichnis anpassen. Früher war das im alten rpm /opt/otrs, Jetzt ist es /srv/otrs; Sonst laufen beispielsweise die ganzen cronjobs im falschen Pfad, weil da $HOME als variable verwendet wird.

/Edit
 
Hallo!

Ich hab mir mal den RCSCRIPT angeschaut:

Wenn man im RC Script die "TESTS" so austauscht: (Es wird geprüft, ob jeweiliger variableninhalt aus der Datei in form von Datei (-e) oder Ordner (-f) existiert anstelle string (-z), dann funktioniert es:

Code:
test -d $OTRS_ROOT || { if  echo "OTRS_ROOT not set"; then
        echo "check config: $OTRS_SYSCONFIG";
        exit 6; fi; }

test -e $OTRS_USED_DB_RCSCRIPT || { echo "OTRS OTRS_USED_DB_RCSCRIPT not set";
        echo "check config: $OTRS_SYSCONFIG";
        exit 6; }

test -e $OTRS_USED_WEVSERVER_RCSCRIPT || { echo "OTRS OTRS_USED_WEVSERVER_RCSCRIPT not set";
        echo "check config: $OTRS_SYSCONFIG";
        exit 6; }

test -d $OTRS_CRON_TMP_DIR || { echo "OTRS CRON_TMP_DIR not set";
        echo "check config: $OTRS_SYSCONFIG";
        exit 6; }

test -e $OTRS_CRON_TMP_FILE || { echo "OTRS CRON_TMP_FILE not set";
        echo "check config: $OTRS_SYSCONFIG";
        exit 6; }

test -e $OTRS_POSTMASTER || { echo "OTRS_POSTMASTER not set";
	echo "check config: $OTRS_SYSCONFIG";
	exit 6; }

test -e $OTRS_SPOOLDIR || { echo "OTRS_SPOOLDIR not set";
	echo "check config: $OTRS_SYSCONFIG";
	exit 6; }

test -e $OTRS_CHECKDB || { echo "OTRS_CHECKDB not set";
	echo "check config: $OTRS_SYSCONFIG";
	exit 6; }

test -e $OTRS_CLEANUP || { eho "OTRS_CLEANUP not set";
	echo "check config: $OTRS_SYSCONFIG";
	exit 6; }

test -d $OTRS_SPOOLDIR || { echo "OTRS SPOOLDIR not set";
	echo "check config: $OTRS_SYSCONFIG";
	exit 6; }

Auf einmal schaut auch meine sysconfigdatei ganz anders aus. Weil die ganzen Dienste jetzt doch auf dem Rechner laufen.

Code:
## Path:	Network/Mail/OTRS
## Description:	Open source Ticket Request System configuration
## Type:	string
## Default:	OTRS
# 
# program name
# 
OTRS_PROG="OTRS"

## Type:	string
## Default:	/srv/otrs
# 
# OTRS home (root) directory
#
OTRS_ROOT="/srv/otrs"

## Type:	string(0,1)
## Default:	1
#
# The OTRS database is on this host? 1=yes, 0=no
#
OTRS_DB_RUNNING="1"

## Type:	string(0,1)
## Default:	1
#
# The OTRS web server is on this host? 1=yes, 0=no
# (Weil sonst fehler beim boot kommt!)
OTRS_HTTP_RUNNING="1"

## Type:	string(0,1)
## Default:	1
#
# The OTRS cron jobs run on this host? 1=yes, 0=no
# (Weil sonst fehler beim boot kommt!)
OTRS_CRON_RUNNING="1"

## Type:	string(MySQL,PostgreSQL)
## Default:	MySQL
## ServiceRestart: otrs
# 
# Used database. 
# Note: Take care, that you have changed the Config.pm database settings!
# 
OTRS_USED_DB="MySQL"

## Type:	string(rcmysql,rcpostgresql)
## Default:	rcmysql
## ServiceRestart: otrs
#
# Init script to control database.
#
OTRS_USED_DB_RCSCRIPT="/usr/sbin/rcmysql"

## Type:	string
## Default:	apache
## ServiceRestart: otrs
#
# Used webserver
#
OTRS_USED_WEBSERVER="Apache2"

## Type:	string
## Default:	rcapache2
## ServiceRestart: otrs
#
# Init script to control the webserver
#
OTRS_USED_WEBSERVER_RCSCRIPT="rcapache2"

## Type:	string
## Default:	$OTRS_ROOT/var/cron
#
# Location of the cron jobs
#
OTRS_CRON_DIR="$OTRS_ROOT/var/cron"

## Type:	string
## Default:	$OTRS_ROOT/var/tmp/cron
#
# Location of the temporary cron files
#
OTRS_CRON_TMP_FILE="$OTRS_ROOT/var/tmp/cron"

## Type:	string
## Default:	" -u otrs "
#
# Cron job user option
# 
OTRS_CRON_USER=" -u otrs "

## Type:	string
## Default:	$( hostname -f)
# 
# Command to get the systems hostname
#
OTRS_HOST="$( hostname -f)"

## Type:	string
## Default:	otrs
# 
# OTRS location - means http://host/$OTRS_HTTP_LOCATION/index.pl
# 
OTRS_HTTP_LOCATION="otrs"

## Type:	string
## Default:	$OTRS_ROOT/bin/PostMaster.pl
# 
# Location of the PostMaster.pl script.
# 
OTRS_POSTMASTER="$OTRS_ROOT/bin/otrs.PostMaster.pl"


## Type:	string
## Default:	$OTRS_ROOT/bin/CheckDB.pl
#
# Location of the CheckDB.pl script.
#
OTRS_CHECKDB="$OTRS_ROOT/bin/otrs.CheckDB.pl"


## Type:	string
## Default:	$OTRS_ROOT/bin/CleanUp.pl
#
# Location of the CleanUp.pl script.
#
OTRS_CLEANUP="$OTRS_ROOT/bin/otrs.CleanUp.pl"


## Type:	string
## Default:	$OTRS_ROOT/var/spool
# 
# Location of the OTRS spool directory.
# 
OTRS_SPOOLDIR="$OTRS_ROOT/var/spool"
Ich musst /usr/sbin/rcmysql als absoluten Pfad angeben.

Im RCScript passt noch was mit CRON nicht. Die Cronjobs beenden geht nicht... bzw ging nicht. Das hab ich mal so gelöst: (Bei "# stop cron stuff")
Code:
#if type -a crontab 2&>/dev/null && crontab $OTRS_CRON_USER -r ; then
	if crontab $OTRS_CRON_USER -r ; then

Gruß,

R

PPS.: Aber da stimmt irgendwie noch mehr nicht.... 0o die cronjobs haun nich hin. Und der Webservercheck geht nicht beim systemstart. Aber wenn der rechner oben ist schon :S
 
Oben