CentOS:OTRS-Install
Vorwort
Das Ziel dieser Anleitung ist es auf einem CentOS OTRS in der neusten Version dh. 3.0.x zu installieren und die Grundkonfiguration durchzuführen. Die Basis der Installation ist ein CentOS Minimal Installation (Keine zusätzlichen Repositories oder Packages). Nach der Installation wurde folgende Anweisung ausgeführt:
Linux:Yum-Priority-FreshRPM
Datenschutz
********************************************************************* * * * THIS FILE MAY CONTAIN CONFIDENTIAL, PRIVILEGED OR OTHER LEGALLY * * PROTECTED INFORMATION. YOU ARE PROHIBITED FROM COPYING, * * DISTRIBUTING OR OTHERWISE USING IT WITHOUT PERMISSION FROM * * ALSO SCHWEIZ AG SWITZERLAND. * * * ********************************************************************* "Die in diesen Artikeln enthaltenen Informationen sind vertraulich und dürfen ohne schriftliche Zustimmung von der ALSO Schweiz AG gegenüber Dritt-Unternehmen nicht bekannt gemacht werden"
Die Grundkomponenten
Grundkomponenten für eine OTRS Installation sind "Apache" sowie "MySQL"!
Die HTTP Installation
Um den "Apache" zu installieren führe folgendes durch:
# yum list httpd Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirror.fraunhofer.de * epel: mirror.fraunhofer.de * extras: mirror.fraunhofer.de * rpmfusion-free-updates: download1.rpmfusion.org * rpmfusion-free-updates-testing: download1.rpmfusion.org * rpmfusion-nonfree-updates: download1.rpmfusion.org * rpmfusion-nonfree-updates-testing: download1.rpmfusion.org * updates: mirror.fraunhofer.de 187 packages excluded due to repository priority protections Available Packages httpd.i386 2.2.3-53.el5.centos.3 updates
# yum install httpd Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirror.fraunhofer.de * epel: mirror.fraunhofer.de * extras: mirror.fraunhofer.de * rpmfusion-free-updates: download1.rpmfusion.org * rpmfusion-free-updates-testing: download1.rpmfusion.org * rpmfusion-nonfree-updates: download1.rpmfusion.org * rpmfusion-nonfree-updates-testing: download1.rpmfusion.org * updates: mirror.fraunhofer.de 187 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package httpd.i386 0:2.2.3-53.el5.centos.3 set to be updated addons/filelists | 195 B 00:00 base/filelists | 2.9 MB 00:05 epel/filelists_db | 4.6 MB 00:08 extras/filelists_db | 199 kB 00:00 rpmfusion-free-updates/filelists_db | 1.0 kB 00:00 rpmfusion-free-updates-testing/filelists_db | 36 kB 00:00 rpmfusion-nonfree-updates/filelists_db | 575 B 00:00 rpmfusion-nonfree-updates-testing/filelists_db | 8.3 kB 00:00 updates/filelists_db | 1.9 MB 00:03 --> Processing Dependency: /etc/mime.types for package: httpd --> Processing Dependency: libapr-1.so.0 for package: httpd --> Processing Dependency: libaprutil-1.so.0 for package: httpd --> Running transaction check ---> Package apr.i386 0:1.2.7-11.el5_6.5 set to be updated ---> Package apr-util.i386 0:1.2.7-11.el5_5.2 set to be updated --> Processing Dependency: libpq.so.4 for package: apr-util ---> Package mailcap.noarch 0:2.1.23-1.fc6 set to be updated --> Running transaction check ---> Package postgresql-libs.i386 0:8.1.23-1.el5_7.3 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size ================================================================================================= Installing: httpd i386 2.2.3-53.el5.centos.3 updates 1.2 M Installing for dependencies: apr i386 1.2.7-11.el5_6.5 base 124 k apr-util i386 1.2.7-11.el5_5.2 base 80 k mailcap noarch 2.1.23-1.fc6 base 14 k postgresql-libs i386 8.1.23-1.el5_7.3 updates 197 k Transaction Summary ================================================================================================= Install 5 Package(s) Upgrade 0 Package(s) Total download size: 1.6 M Is this ok [y/N]: y Downloading Packages: (1/5): mailcap-2.1.23-1.fc6.noarch.rpm | 14 kB 00:00 (2/5): apr-util-1.2.7-11.el5_5.2.i386.rpm | 80 kB 00:00 (3/5): apr-1.2.7-11.el5_6.5.i386.rpm | 124 kB 00:00 (4/5): postgresql-libs-8.1.23-1.el5_7.3.i386.rpm | 197 kB 00:00 (5/5): httpd-2.2.3-53.el5.centos.3.i386.rpm | 1.2 MB 00:02 ------------------------------------------------------------------------------------------------- Total 284 kB/s | 1.6 MB 00:05 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : apr 1/5 Installing : mailcap 2/5 Installing : postgresql-libs 3/5 Installing : apr-util 4/5 Installing : httpd 5/5 Installed: httpd.i386 0:2.2.3-53.el5.centos.3 Dependency Installed: apr.i386 0:1.2.7-11.el5_6.5 apr-util.i386 0:1.2.7-11.el5_5.2 mailcap.noarch 0:2.1.23-1.fc6 postgresql-libs.i386 0:8.1.23-1.el5_7.3 Complete!
Kontrolliere ob der Service für den "Apache" aktiviert ist und wenn nicht aktiviere diesen:
# chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig httpd on # chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Starte nun den "Apache" Server und kontrolliere die Logs:
# service httpd start Starting httpd: [ OK ] # cat /var/log/httpd/error_log [Thu Jan 19 11:43:04 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Thu Jan 19 11:43:04 2012] [notice] Digest: generating secret for digest authentication ... [Thu Jan 19 11:43:04 2012] [notice] Digest: done [Thu Jan 19 11:43:04 2012] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
Bei der Installation des "Apache" wurden folgende User und Gruppen angelegt:
# cat /etc/passwd | grep apache apache:x:48:48:Apache:/var/www:/sbin/nologin # cat /etc/group | grep apache apache:x:48:
Die MySQL Installation
Als nächstes installieren wir den "MySQL" Server mit seinen Komponenten:
# yum install mysql-server mysql php-mysql Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirror.fraunhofer.de * epel: mirror.fraunhofer.de * extras: mirror.fraunhofer.de * rpmfusion-free-updates: download1.rpmfusion.org * rpmfusion-free-updates-testing: download1.rpmfusion.org * rpmfusion-nonfree-updates: download1.rpmfusion.org * rpmfusion-nonfree-updates-testing: download1.rpmfusion.org * updates: mirror.fraunhofer.de 187 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mysql.i386 0:5.0.77-4.el5_6.6 set to be updated --> Processing Dependency: perl(DBI) for package: mysql ---> Package mysql-server.i386 0:5.0.77-4.el5_6.6 set to be updated --> Processing Dependency: perl-DBD-MySQL for package: mysql-server ---> Package php-mysql.i386 0:5.1.6-27.el5_7.4 set to be updated --> Processing Dependency: php-common = 5.1.6-27.el5_7.4 for package: php-mysql --> Processing Dependency: php-pdo for package: php-mysql --> Running transaction check ---> Package perl-DBD-MySQL.i386 0:3.0007-2.el5 set to be updated ---> Package perl-DBI.i386 0:1.52-2.el5 set to be updated ---> Package php-common.i386 0:5.1.6-27.el5_7.4 set to be updated ---> Package php-pdo.i386 0:5.1.6-27.el5_7.4 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size ================================================================================================= Installing: mysql i386 5.0.77-4.el5_6.6 base 4.8 M mysql-server i386 5.0.77-4.el5_6.6 base 9.8 M php-mysql i386 5.1.6-27.el5_7.4 updates 86 k Installing for dependencies: perl-DBD-MySQL i386 3.0007-2.el5 base 148 k perl-DBI i386 1.52-2.el5 base 600 k php-common i386 5.1.6-27.el5_7.4 updates 153 k php-pdo i386 5.1.6-27.el5_7.4 updates 65 k Transaction Summary ================================================================================================= Install 7 Package(s) Upgrade 0 Package(s) Total download size: 16 M Is this ok [y/N]: y Downloading Packages: (1/7): php-pdo-5.1.6-27.el5_7.4.i386.rpm | 65 kB 00:00 (2/7): php-mysql-5.1.6-27.el5_7.4.i386.rpm | 86 kB 00:00 (3/7): perl-DBD-MySQL-3.0007-2.el5.i386.rpm | 148 kB 00:00 (4/7): php-common-5.1.6-27.el5_7.4.i386.rpm | 153 kB 00:00 (5/7): perl-DBI-1.52-2.el5.i386.rpm | 600 kB 00:01 (6/7): mysql-5.0.77-4.el5_6.6.i386.rpm | 4.8 MB 00:09 (7/7): mysql-server-5.0.77-4.el5_6.6.i386.rpm | 9.8 MB 00:18 ------------------------------------------------------------------------------------------------- Total 467 kB/s | 16 MB 00:34 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : perl-DBI 1/7 Installing : mysql 2/7 Installing : php-common 3/7 Installing : php-pdo 4/7 Installing : perl-DBD-MySQL 5/7 Installing : php-mysql 6/7 Installing : mysql-server 7/7 Installed: mysql.i386 0:5.0.77-4.el5_6.6 mysql-server.i386 0:5.0.77-4.el5_6.6 php-mysql.i386 0:5.1.6-27.el5_7.4 Dependency Installed: perl-DBD-MySQL.i386 0:3.0007-2.el5 perl-DBI.i386 0:1.52-2.el5 php-common.i386 0:5.1.6-27.el5_7.4 php-pdo.i386 0:5.1.6-27.el5_7.4 Complete!
Kontrolliere den Service von "MySQL" und aktiviere diesen für "runlevel 2/3/5":
# chkconfig --list mysqld mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig --levels 235 mysqld on # chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:off 5:on 6:off
Bei der Installation des "MySQL" wurden folgender User und Gruppe angelegt:
# cat /etc/passwd | grep mysql mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash # cat /etc/group | grep mysqld mysql:x:27:
Nun starten wir den "MySQL" Server das Erstemal. Dabei erscheinen einige Hinweise betreffend Konfiguration:
# service mysqld start --------------- output --------------- Initializing MySQL database: Installing MySQL system tables... 120119 11:52:27 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 120119 11:52:27 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 OK Filling help tables... 120119 11:52:27 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 120119 11:52:27 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h ticket password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com [ OK ] Starting MySQL: [ OK ] --------------- output ---------------
Wie durch den Hinweis empfohlen lassen wir das "secure" Script für den "MySQL" Server laufen:
# /usr/bin/mysql_secure_installation --------------- output --------------- NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] YY ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! --------------- output ---------------
Damit beim "MySQL" Server die Warning betreffend "max_join_size" nicht mehr erscheint und "MySQL" für eine mittlere Installation optimiert wird manipulieren wir das Konfig File des "MySQL" Servers:
# cp -p /etc/my.cnf /etc/my.cnf.orig # vi /etc/my.cnf --------------- /etc/my.cnf --------------- [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 64M) where MySQL plays # an important part, or systems up to 128M where MySQL is used together with # other programs (such as a web server) # # You can copy this file to # /etc/my.cnf to set global options, # mysql-data-dir/my.cnf to set server-specific options (in this # installation this directory is /var/lib/mysql) or # ~/.my.cnf to set user-specific options. # # In this file, you can use all long options that a program supports. # If you want to know which options a program supports, run the program # with the "--help" option. # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /var/lib/mysql/mysql.sock # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock skip-locking key_buffer = 16M max_allowed_packet = 10M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M max_join_size = 4294967295k myisam_max_sort_file_size = 2147483647k # Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking # Disable Federated by default skip-federated # Replication Master Server (default) # binary logging is required for replication log-bin=mysql-bin # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted server-id = 1 # Replication Slave (comment out master section to use this) # # To configure this host as a replication slave, you can choose between # two methods : # # 1) Use the CHANGE MASTER TO command (fully described in our manual) - # the syntax is: # # CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, # MASTER_USER=<user>, MASTER_PASSWORD=<password> ; # # where you replace <host>, <user>, <password> by quoted strings and # <port> by the master's port number (3306 by default). # # Example: # # CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, # MASTER_USER='joe', MASTER_PASSWORD='secret'; # # OR # # 2) Set the variables below. However, in case you choose this method, then # start replication for the first time (even unsuccessfully, for example # if you mistyped the password in master-password and the slave fails to # connect), the slave will create a master.info file, and any later # change in this file to the variables' values below will be ignored and # overridden by the content of the master.info file, unless you shutdown # the slave server, delete master.info and restart the slaver server. # For that reason, you may want to leave the lines below untouched # (commented) and instead use CHANGE MASTER TO (see above) # # required unique id between 2 and 2^32 - 1 # (and different from the master) # defaults to 2 if master-host is set # but will not function as a slave if omitted #server-id = 2 # # The replication master for this slave - required #master -host = <hostname> # # The username the slave will use for authentication when connecting # to the master - required #master-user = <username> # # The password the slave will authenticate with when connecting to # the master - required #master-password = <password> # # The port the master is listening on. # optional - defaults to 3306 #master-port = <port> # # binary logging - not required for slaves, but recommended #log-bin=mysql-bin # Point the following paths to different dedicated disks #tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname # Uncomment the following if you are using BDB tables #bdb_cache_size = 4M #bdb_max_lock = 10000 # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /var/lib/mysql/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /var/lib/mysql/ #innodb_log_arch_dir = /var/lib/mysql/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout --------------- /etc/my.cnf ---------------
Lade das Konfig File indem "MySQL" gestoppt und gestartet wird:
# service mysqld stop Stopping MySQL: [ OK ] # service mysqld start Starting MySQL: [ OK ]
Kontrolliere das Log File:
# cat /var/log/mysqld.log
Mehr muss für OTRS betreffend "MySQL" momentan nicht durchgeführt werden. Somit sind die Grundkomponenten "Apache" und "MySQL" installiert.
Die OTRS Installation
Installiere nun das RPM für "OTRS". Achte dabei die neuste Version zu installieren. Wenn "wget" nicht installieret ist, installiere dieses anhand "yum":
# yum install wget
Danach führe folgendes aus:
# cd /root # wget http://ftp.otrs.org/pub/otrs/RPMS/fedora/4/otrs-3.0.11-03.noarch.rpm --2012-01-19 12:19:22-- http://ftp.otrs.org/pub/otrs/RPMS/fedora/4/otrs-3.0.11-03.noarch.rpm Resolving ftp.otrs.org... 178.63.12.4 Connecting to ftp.otrs.org|178.63.12.4|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 19900646 (19M) [application/x-redhat-package-manager] Saving to: `otrs-3.0.11-03.noarch.rpm' 100%[=======================================================>] 19,900,646 593K/s in 33s 2012-01-19 12:19:55 (593 KB/s) - `otrs-3.0.11-03.noarch.rpm' saved [19900646/19900646]
ACHTUNG Achte darauf das "selinux" deaktiviert ist (Fall eine Modifikation nötig ist betreffend "selinux" muss ein Neustart des Server ausgeführt werden): # vi /etc/selinux/config --------------- /etc/selinux/config --------------- # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. # mls - Multi Level Security protection. SELINUXTYPE=targeted # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0 --------------- /etc/selinux/config ---------------
Bevor das RPM installiert wird kontrolliere die Abhängigkeiten:
# rpm -qpR /root/otrs-3.0.11-03.noarch.rpm perl perl(DBI) perl(DBD::mysql) perl(URI) mod_perl httpd mysql mysql-server procmail perl(Date::Format) perl(LWP::UserAgent) perl(Net::DNS) perl(IO::Socket::SSL) perl(XML::Parser) /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsBzip2) <= 3.0.5-1
Hier werden zwar die Abhängigkeiten aufgezeigt jedoch nicht "welche" noch fehlen sprich zu installieren sind. Führe eine Installation aus um die fehlenden Package zu eruieren:
# rpm -ivh otrs-3.0.11-03.noarch.rpm error: Failed dependencies: perl(URI) is needed by otrs-3.0.11-03.noarch mod_perl is needed by otrs-3.0.11-03.noarch perl(Date::Format) is needed by otrs-3.0.11-03.noarch perl(LWP::UserAgent) is needed by otrs-3.0.11-03.noarch perl(Net::DNS) is needed by otrs-3.0.11-03.noarch perl(IO::Socket::SSL) is needed by otrs-3.0.11-03.noarch perl(XML::Parser) is needed by otrs-3.0.11-03.noarch
Installiere die fehlenden Abhängigkeiten anhand Yum:
# yum install perl-URI # yum install mod_perl # yum install perl-libwww-perl # yum install perl-Net-DNS # yum install perl-IO-Socket-SSL # yum install perl-XML-Parser oder # yum install perl-URI mod_perl perl-libwww-perl perl-Net-DNS perl-IO-Socket-SSL perl-XML-Parser perl-TimeDate Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirror.fraunhofer.de * epel: mirror.fraunhofer.de * extras: mirror.fraunhofer.de * rpmfusion-free-updates: download1.rpmfusion.org * rpmfusion-free-updates-testing: download1.rpmfusion.org * rpmfusion-nonfree-updates: download1.rpmfusion.org * rpmfusion-nonfree-updates-testing: download1.rpmfusion.org * updates: mirror.fraunhofer.de 187 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mod_perl.i386 0:2.0.4-6.el5 set to be updated ---> Package perl-TimeDate.noarch 1:1.16-5.el5 set to be updated --> Processing Dependency: perl(BSD::Resource) for package: mod_perl ---> Package perl-IO-Socket-SSL.noarch 0:1.01-1.fc6 set to be updated --> Processing Dependency: perl(Net::SSLeay) >= 1.21 for package: perl-IO-Socket-SSL ---> Package perl-Net-DNS.i386 0:0.59-3.el5 set to be updated --> Processing Dependency: perl(Digest::HMAC_MD5) for package: perl-Net-DNS --> Processing Dependency: perl(Net::IP) for package: perl-Net-DNS ---> Package perl-URI.noarch 0:1.35-3 set to be updated ---> Package perl-XML-Parser.i386 0:2.34-6.1.2.2.1 set to be updated ---> Package perl-libwww-perl.noarch 0:5.805-1.1.1 set to be updated --> Processing Dependency: perl-HTML-Parser >= 3.33 for package: perl-libwww-perl --> Processing Dependency: perl(HTML::Entities) for package: perl-libwww-perl --> Processing Dependency: perl(Compress::Zlib) for package: perl-libwww-perl --> Running transaction check ---> Package perl-BSD-Resource.i386 0:1.28-1.fc6.1 set to be updated ---> Package perl-Compress-Zlib.i386 0:1.42-1.fc6 set to be updated ---> Package perl-Digest-HMAC.noarch 0:1.01-15 set to be updated --> Processing Dependency: perl(Digest::SHA1) for package: perl-Digest-HMAC ---> Package perl-HTML-Parser.i386 0:3.55-1.fc6 set to be updated --> Processing Dependency: perl-HTML-Tagset >= 3.03 for package: perl-HTML-Parser --> Processing Dependency: perl(HTML::Tagset) for package: perl-HTML-Parser ---> Package perl-Net-IP.noarch 0:1.25-2.fc6 set to be updated ---> Package perl-Net-SSLeay.i386 0:1.30-4.fc6 set to be updated --> Running transaction check ---> Package perl-Digest-SHA1.i386 0:2.11-1.2.1 set to be updated ---> Package perl-HTML-Tagset.noarch 0:3.10-2.1.1 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size ================================================================================================= Installing: mod_perl i386 2.0.4-6.el5 base 4.0 M perl-IO-Socket-SSL noarch 1.01-1.fc6 base 49 k perl-Net-DNS i386 0.59-3.el5 base 215 k perl-URI noarch 1.35-3 base 116 k perl-XML-Parser i386 2.34-6.1.2.2.1 base 210 k perl-libwww-perl noarch 5.805-1.1.1 base 376 k Installing for dependencies: perl-BSD-Resource i386 1.28-1.fc6.1 base 29 k perl-Compress-Zlib i386 1.42-1.fc6 base 52 k perl-Digest-HMAC noarch 1.01-15 base 12 k perl-Digest-SHA1 i386 2.11-1.2.1 base 48 k perl-HTML-Parser i386 3.55-1.fc6 base 92 k perl-HTML-Tagset noarch 3.10-2.1.1 base 15 k perl-Net-IP noarch 1.25-2.fc6 base 31 k perl-Net-SSLeay i386 1.30-4.fc6 base perl-TimeDate noarch 1:1.16-5.el5 base 32 k Transaction Summary ================================================================================================= Install 15 Package(s) Upgrade 0 Package(s) Total download size: 5.4 M Is this ok [y/N]: y Downloading Packages: (1/15): perl-Digest-HMAC-1.01-15.noarch.rpm | 12 kB 00:00 (2/15): perl-HTML-Tagset-3.10-2.1.1.noarch.rpm | 15 kB 00:00 (3/15): perl-BSD-Resource-1.28-1.fc6.1.i386.rpm | 29 kB 00:00 (4/15): perl-Net-IP-1.25-2.fc6.noarch.rpm | 31 kB 00:00 (5/15): perl-Digest-SHA1-2.11-1.2.1.i386.rpm | 48 kB 00:00 (6/15): perl-IO-Socket-SSL-1.01-1.fc6.noarch.rpm | 49 kB 00:00 (7/15): perl-Compress-Zlib-1.42-1.fc6.i386.rpm | 52 kB 00:00 (8/15): perl-HTML-Parser-3.55-1.fc6.i386.rpm | 92 kB 00:00 (9/15): perl-URI-1.35-3.noarch.rpm | 116 kB 00:00 (10/15): perl-Net-SSLeay-1.30-4.fc6.i386.rpm | 195 kB 00:00 (11/15): perl-XML-Parser-2.34-6.1.2.2.1.i386.rpm | 210 kB 00:00 (12/15): perl-Net-DNS-0.59-3.el5.i386.rpm | 215 kB 00:00 (13/15): perl-libwww-perl-5.805-1.1.1.noarch.rpm | 376 kB 00:00 (14/15): mod_perl-2.0.4-6.el5.i386.rpm | 4.0 MB 00:07 (15/15): perl-TimeDate-1.16-5.el5.noarch.rpm | 32 kB 00:00 ------------------------------------------------------------------------------------------------- Total 310 kB/s | 5.4 MB 00:17 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : perl-Net-SSLeay 1/15 Installing : perl-BSD-Resource 2/15 Installing : perl-Digest-SHA1 3/15 Installing : perl-Compress-Zlib 4/15 Installing : perl-URI 5/15 Installing : perl-Digest-HMAC 6/15 Installing : perl-HTML-Tagset 7/15 Installing : perl-Net-IP 8/15 Installing : perl-IO-Socket-SSL 9/15 Installing : perl-HTML-Parser 10/15 Installing : perl-Net-DNS 11/15 Installing : mod_perl 12/15 Installing : perl-libwww-perl 13/15 Installing : perl-XML-Parser 14/15 Installing : perl-TimeDate 15/15 Installed: mod_perl.i386 0:2.0.4-6.el5 perl-IO-Socket-SSL.noarch 0:1.01-1.fc6 perl-Net-DNS.i386 0:0.59-3.el5 perl-URI.noarch 0:1.35-3 perl-XML-Parser.i386 0:2.34-6.1.2.2.1 perl-libwww-perl.noarch 0:5.805-1.1.1 Dependency Installed: perl-BSD-Resource.i386 0:1.28-1.fc6.1 perl-Compress-Zlib.i386 0:1.42-1.fc6 perl-Digest-HMAC.noarch 0:1.01-15 perl-Digest-SHA1.i386 0:2.11-1.2.1 perl-HTML-Parser.i386 0:3.55-1.fc6 perl-HTML-Tagset.noarch 0:3.10-2.1.1 perl-Net-IP.noarch 0:1.25-2.fc6 perl-Net-SSLeay.i386 0:1.30-4.fc6 Complete!
Jetzt installiere OTRS anhand des RPM Befehls:
# yum --nogpgcheck install otrs-3.0.11-03.noarch.rpm Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirror.fraunhofer.de * epel: mirror.fraunhofer.de * extras: mirror.fraunhofer.de * rpmfusion-free-updates: download1.rpmfusion.org * rpmfusion-free-updates-testing: download1.rpmfusion.org * rpmfusion-nonfree-updates: download1.rpmfusion.org * rpmfusion-nonfree-updates-testing: download1.rpmfusion.org * updates: mirror.fraunhofer.de addons | 951 B 00:00 base | 1.1 kB 00:00 epel | 3.7 kB 00:00 extras | 2.1 kB 00:00 rpmfusion-free-updates | 2.8 kB 00:00 rpmfusion-free-updates-testing | 2.8 kB 00:00 rpmfusion-nonfree-updates | 2.8 kB 00:00 rpmfusion-nonfree-updates-testing | 2.8 kB 00:00 updates | 1.9 kB 00:00 187 packages excluded due to repository priority protections Setting up Install Process Examining otrs-3.0.11-03.noarch.rpm: otrs-3.0.11-03.noarch Marking otrs-3.0.11-03.noarch.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package otrs.noarch 0:3.0.11-03 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size ================================================================================================= Installing: otrs noarch 3.0.11-03 /otrs-3.0.11-03.noarch 73 M Transaction Summary ================================================================================================= Install 1 Package(s) Upgrade 0 Package(s) Total size: 73 M Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Check OTRS user ... otrs added. Installing : otrs 1/1 Next steps: [httpd services] Restart httpd 'service httpd restart' [mysqld service] Start mysqld 'service mysqld start' [install the OTRS database] Use a webbrowser and open this link: http://ticket.execure.intra/otrs/installer.pl [OTRS services] Start OTRS: 'service otrs start' (service otrs {start|stop|status|restart). ((enjoy)) Your OTRS Team Installed: otrs.noarch 0:3.0.11-03 Complete!
"Apache" und "MySQL" wurden neu gestartet nach der OTRS Installation. Sichere das Konfig File des "Apache":
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.back
Editiere nun das Konfig File des "Apache" auf folgenden Positionen (Minimum requirements):
# vi /etc/httpd/conf/httpd.conf --------------- /etc/httpd/conf/httpd.conf --------------- ServerAdmin netadmin@execure.ch ServerName ticket.execure.intra:80 Listen 10.150.0.13:80 --------------- /etc/httpd/conf/httpd.conf ---------------
Starte "Apache" neu damit die Modifikationen aktiviert werden:
# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
Kontrolliere das Log:
# cat /var/log/httpd/error_log
Die OTRS Grundkonfiguration
Nun werden wir OTRS anhand eines WebInstallers konfigurieren:
http://ticket.execure.intra/otrs/installer.pl
Datei:OTRS-Install-01.jpg
Akzeptiere die Lizenzvereinbarung:
Datei:OTRS-Install-02.jpg
Setze das "root" Passwort, dass bei der "MySQL" Initierung (Secure script) gesetzt wurde:
Datei:OTRS-Install-03.jpg
Setze nun einen OTRS Datenbank Benutzer mit dessen Passwort:
Datei:OTRS-Install-04.jpg Datei:OTRS-Install-05.jpg
Gebe nun für OTRS allgemeine Angaben an:
Datei:OTRS-Install-06.jpg
Ueberspringe diese Konfig da wir für die Uebermittlung "postfix" benutzen werden:
Datei:OTRS-Install-07.jpg Datei:OTRS-Install-08.jpg
Die Webinstaller Konfig wurde durchgeführt. Nun kann auf folgenden Link verbunden werden mit folgenden Zugangsinfos:
Startseite: http://ticket.execure.intra/otrs/index.pl Benutzer: root@localhost Passwort: root
Die Mail Konfiguration
Damit die Mail korrekt uebermittelt werden dh. in das OTRS installieren Postfix:
# yum install postfix Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirror.fraunhofer.de * epel: mirror.fraunhofer.de * extras: mirror.fraunhofer.de * rpmfusion-free-updates: download1.rpmfusion.org * rpmfusion-free-updates-testing: download1.rpmfusion.org * rpmfusion-nonfree-updates: download1.rpmfusion.org * rpmfusion-nonfree-updates-testing: download1.rpmfusion.org * updates: mirror.fraunhofer.de 187 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package postfix.i386 2:2.3.3-2.3.el5_6 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size ================================================================================================= Installing: postfix i386 2:2.3.3-2.3.el5_6 base 3.5 M Transaction Summary ================================================================================================= Install 1 Package(s) Upgrade 0 Package(s) Total download size: 3.5 M Is this ok [y/N]: y Downloading Packages: postfix-2.3.3-2.3.el5_6.i386.rpm | 3.5 MB 00:06 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : postfix 1/1 Installed: postfix.i386 2:2.3.3-2.3.el5_6 Complete!
Kontrolliere ob der Service korrekt läuft:
# chkconfig --list postfix postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Modifiziere die globalen Konfig Files von Postfix:
# grep -v \# main.cf --------------- /etc/master.cf --------------- queue_minfree = 41943040 message_size_limit = 20971520 queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix myhostname = ticket.execure.intra mydomain = execure.intra inet_interfaces = $myhostname, localhost mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain unknown_local_recipient_reject_code = 550 relay_domains = $mydestination relayhost = srv711.execure.intra alias_maps = hash:/etc/aliases, hash:/etc/postfix/otrs-aliases alias_database = hash:/etc/aliases, hash:/etc/postfix/otrs-aliases smtpd_banner = $myhostname ESMTP debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.3.3/samples readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES transport_maps = hash:/etc/postfix/transport transport_database = hash:/etc/postfix/transport --------------- /etc/master.cf ---------------
# grep -v \# master.cf --------------- /etc/master.cf --------------- smtp inet n - n - - smtpd pickup fifo n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr fifo n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap smtp unix - - n - - smtp relay unix - - n - - smtp -o fallback_relay= showq unix n - n - - showq error unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} old-cyrus unix - n n - - pipe flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user} cyrus unix - n n - - pipe user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient --------------- /etc/master.cf ---------------
# vi /etc/postfix/otrs-aliases --------------- /etc/postfix/otrs-aliases --------------- support: "|/opt/otrs/bin/otrs.PostMaster.pl" --------------- /etc/postfix/otrs-aliases --------------- # /usr/sbin/postmap -v /etc/postfix/otrs-aliases
# vi /etc/postfix/transport --------------- /etc/postfix/transport --------------- execure.ch :[FQDN Exchange] --------------- /etc/postfix/transport --------------- # /usr/sbin/postmap -v /etc/postfix/transport
Kontrolliere das Log:
# /var/log/maillog
OTRS ist in der Lage, E-Mails über ein Kommandozeilen-Programm (bin/otrs.PostMaster.pl) zu empfangen. Es nimmt die Mails über STDIN entgegen und fügt sie direkt in das OTRS-System ein. Das bedeutet, dass E-Mails im OTRS angezeigt werden, wenn der MDA (mail delivery agent) die E-Mails an bin/otrs.PostMaster.pl" weiterleitet.
Um dies zu testen kann folgendes ausgeführt werden:
# cd bin # cat ../doc/sample_mails/test-email-1.box | ./otrs.PostMaster.pl #
Nun logge ein auf dem OTRS und gehe nach:
Tickets > Ansicht nach Queus
Danach klicke auf "Raw" und dort sieht man -sofern alle Perl Module installiert sind das Test Mail:
Von: System Tester I An: darthvader@otrs.org This is the first test. Adios ... Little "Skywalker" -- System Tester I - <skywalker@otrs.org> -- Old programmers never die. They just branch to a new address.
Die Uebermittlung der Mails steht ebenfalls im Zusammenhang mit der folgenden Datei:
/opt/otrs/.procmailrc
In dieser Datei muessen folgende Eintraege vorhanden sein:
--------------- /opt/otrs/.procmailrc --------------- SYS_HOME=$HOME PATH=/bin:/usr/bin:/usr/local/bin # -- # Pipe all email into the PostMaster process. # -- :0 : | $SYS_HOME/bin/otrs.PostMaster.pl --------------- /opt/otrs/.procmailrc ---------------
Die Cron Installation
OTRS Installation benötigt für bestimmte Funktionen bestimmte immer wiederkehrende Funktionen wie "Queque" Optimierung! Diese Funktionen findet man im Verzeichnis:
/opt/otrs/var/cron
In diesem Verzeichnis existieren die zuständigen Scripts für die zuständigen Funktionen:
-rw-rw-r-- 1 otrs apache 426 Oct 11 14:11 aaa_base -rw-rw-r-- 1 otrs apache 546 Oct 11 14:11 cache -rw-rw-r-- 1 otrs apache 562 Oct 11 14:11 fetchmail -rw-rw-r-- 1 otrs apache 696 Oct 11 14:11 generic_agent -rw-rw-r-- 1 otrs apache 515 Oct 11 14:11 generic_agent-database -rw-rw-r-- 1 otrs apache 490 Oct 11 14:11 pending_jobs -rw-rw-r-- 1 otrs apache 630 Oct 11 14:11 postmaster -rw-rw-r-- 1 otrs apache 506 Oct 11 14:11 postmaster_mailbox -rw-rw-r-- 1 otrs apache 487 Oct 11 14:11 rebuild_ticket_index -rw-rw-r-- 1 otrs apache 509 Oct 11 14:11 session -rw-rw-r-- 1 otrs apache 493 Oct 11 14:11 unlock
Die einzelnen Scripts haben die folgenden Funktionen:
Script Function aaa_base Sets the basics for the crontab of the OTRS user. fetchmail Used only if new mails will be fetched with fetchmail into the ticket system. generic_agent Executes the jobs of the GenericAgent that are not stored in the database but in own config files. generic_agent-database Executes the jobs of the GenericAgent that are stored in the database. pending_jobs Checks in the system for pending tickets. postmaster Checks the message queue of the ticket system and delivers messages that are still in the queues. postmaster_pop3 Fetches the mails from the POP3 accounts that were specified in the admin area, in the section for "PostMaster POP3 Account". rebuild_ticket_index Rebuilds the ticket index, which improves the speed of the QueueView. session Removes old and no longer needed session ID's. unlock Unlocks tickets in the system.
Diese Scripts werden wiederum gesteuern resp. ausgeführt über das folgende Script:
/opt/otrs/bin/Cron.sh
Möchte man das Script auf Kommandozeile ausführen so muss das Kommando folgendermassen lauten:
# sh -x /opt/otrs/bin/Cron.sh otrs ++ whoami + CURRENTUSER=root + CRON_USER=otrs + test -n otrs + test root '!=' root + test -z otrs ++ dirname Cron.sh + cd ./../ ++ pwd + OTRS_HOME=/opt/otrs + cd - /opt/otrs/bin + test -e /opt/otrs/var/cron + OTRS_ROOT=/opt/otrs + CRON_DIR=/opt/otrs/var/cron + CRON_TMP_FILE=/opt/otrs/var/tmp/otrs-cron-tmp.5230 + echo 'Cron.sh - start/stop OTRS cronjobs - <$Revision: 1.19 $> ' Cron.sh - start/stop OTRS cronjobs - <$Revision: 1.19 $> + echo 'Copyright (C) 2001-2009 OTRS AG, http://otrs.org/' Copyright (C) 2001-2009 OTRS AG, http://otrs.org/ + case "$1" in + test -n otrs + CRON_USER=' -u otrs' + mkdir -p /opt/otrs/var/cron + cd /opt/otrs/var/cron + ls -d aaa_base cache fetchmail generic_agent generic_agent-database pending_jobs postmaster postmaster_mailbox rebuild_ticket_index session unlock + grep -v .dist + grep -v .rpm + xargs cat + grep -v CVS + crontab -u otrs /opt/otrs/var/tmp/otrs-cron-tmp.5230 + rm -rf /opt/otrs/var/tmp/otrs-cron-tmp.5230 + echo '(using /opt/otrs) done' (using /opt/otrs) done + exit 0
Führt man dieses Kommando aus so wird ein File erzeugt im "/var/spool/cron" das die nötigen Anweisungen enthält. Dies bedeutet wird das Verzeichnis modifiziert in "/opt/otrs/var/cron" so muss dieses Script "Cron.sh" wiederum ausgeführt werden oder das File in "/var/spool/cron/otrs" muss modifiziert werden. Wenn bestimmte Scripts nicht ausgeführt werden soll so modifiziere das File "/var/spool/cron/otrs" oder benenne das nicht benötigte Script um in *.dist zB :
# mv /opt/otrs/var/cron/fetchmail /opt/otrs/var/fetchmail.dist # mv /opt/otrs/var/cron/unlock /opt/otrs/var/cron/unlock.dist
Nachträgliche führe wiederum den Cron.sh Befehl aus:
# /opt/otrs/bin/Cron.sh start otrs
Nun kontrolliere das Cron Script das angelegt wurde:
# more /var/spool/cron/otrs
Sofern alles ok starte den Cron Job neu:
# service crond restart