logo_kerberos.gif

Difference between revisions of "RT server configuration"

From K5Wiki
Jump to: navigation, search
(Packages)
Line 35: Line 35:
 
The data in RT is stored in a PostgreSQL database. The postgresql Ubuntu package will install the recommended version of PostgreSQL for the current Ubuntu version.
 
The data in RT is stored in a PostgreSQL database. The postgresql Ubuntu package will install the recommended version of PostgreSQL for the current Ubuntu version.
   
The mail interface to RT is handled by Postfix, so the postfix Ubuntu package is required.
+
The mail interface to RT is handled by Postfix, so the postfix package is required. The libmail-milter-perl package is required for the custom milter script.
   
 
In sum, the following packages must be installed on the RT server:
 
In sum, the following packages must be installed on the RT server:
   
libapache-session-perl
+
libapache-session-perl
libapache2-request-perl
+
libapache2-request-perl
libdbi-perl
+
libdbi-perl
libdbix-datasource-perl
+
libdbix-datasource-perl
libdbix-searchbuilder-perl
+
libdbix-searchbuilder-perl
libfreezethaw-perl
+
libfreezethaw-perl
libhtml-mason-perl
+
libhtml-mason-perl
libhtml-parser-perl
+
libhtml-parser-perl
liblog-dispatch-perl
+
liblog-dispatch-perl
libmailtools-perl
+
libmailtools-perl
libmime-tools-perl
+
libmail-milter-perl
libmldbm-perl
+
libmime-tools-perl
libparams-validate-perl
+
libmldbm-perl
libtext-template-perl
+
libparams-validate-perl
libtext-wrapper-perl
+
libtext-template-perl
libtie-ixhash-perl
+
libtext-wrapper-perl
libtimedate-perl
+
libtie-ixhash-perl
perl
+
libtimedate-perl
perl-base
+
perl
  +
perl-base
 
perl-modules
 
perl-modules
 
postfix
 
postfix

Revision as of 11:53, 31 October 2017

Our installation of Request Tracker is a modified version 2.0.13. Most of the modifications were tracked in CVS; the repository is on drugstore at /cvs/krbdev in the tracking subdirectory. drugstore no longer serves CVS, so the repository must be copied out and checked out locally. A few changes have been made on the running server without version control.

Packages

RT has the following perl dependencies, along with the corresponding Ubuntu packages they reside in:

 Digest::MD5                           perl                                    
 Storable                              perl                                    
 DBI 1.18                              libdbi-perl                             
 DBIx::DataSource 0.02                 libdbix-datasource-perl                 
 DBIx::SearchBuilder 0.48              libdbix-searchbuilder-perl              
 HTML::Entities                        libhtml-parser-perl                     
 MLDBM                                 libmldbm-perl                           
 Net::Domain                           perl-modules                            
 Net::SMTP                             perl-modules                            
 Params::Validate 0.02                 libparams-validate-perl                 
 HTML::Mason 1.02                      libhtml-mason-perl                      
 CGI::Cookie 1.20                      perl-modules                            
 Apache::Cookie                        libapache2-request-perl                 
 Apache::Session 1.53                  libapache-session-perl                  
 Date::Parse                           libtimedate-perl                        
 Date::Format                          libtimedate-perl                        
 MIME::Entity 5.108                    libmime-tools-perl                      
 Mail::Mailer 1.20                     libmailtools-perl                       
 Getopt::Long 2.24                     perl-base                               
 Tie::IxHash                           libtie-ixhash-perl                      
 Text::Wrapper                         libtext-wrapper-perl                    
 Text::Template                        libtext-template-perl                   
 File::Spec 0.8                        perl-base                               
 Errno                                 perl-base                               
 FreezeThaw                            libfreezethaw-perl                      
 File::Temp                            perl-modules                            
 Log::Dispatch 1.6                     liblog-dispatch-perl                    

The data in RT is stored in a PostgreSQL database. The postgresql Ubuntu package will install the recommended version of PostgreSQL for the current Ubuntu version.

The mail interface to RT is handled by Postfix, so the postfix package is required. The libmail-milter-perl package is required for the custom milter script.

In sum, the following packages must be installed on the RT server:

 libapache-session-perl
 libapache2-request-perl
 libdbi-perl
 libdbix-datasource-perl
 libdbix-searchbuilder-perl
 libfreezethaw-perl
 libhtml-mason-perl
 libhtml-parser-perl
 liblog-dispatch-perl
 libmailtools-perl
 libmail-milter-perl
 libmime-tools-perl
 libmldbm-perl
 libparams-validate-perl
 libtext-template-perl
 libtext-wrapper-perl
 libtie-ixhash-perl
 libtimedate-perl
 perl
 perl-base
 perl-modules
 postfix
 postgresql

User accounts

The postgresql package will create a postgres user account.

The following user accounts and group entries must be created manually:

  • group rt
  • user rt: primary group rt, homedir /var/rt2, shell /bin/false
  • user rtcvs: primary group rt, homedir /var/rt2, shell /bin/sh

/var/rt2 should contain an empty .k5login file.

PostgreSQL configuration

Many PostgreSQL files live in directories specific to the PostgreSQL major and minor version, such as /etc/postgresql/8.3 for PostgreSQL 8.3.

The Ubuntu postgresql package will create a "main" cluster with a configuration directory in /etc/postgresql/<version>/main.

In /etc/postgresql/<version>/main/pg_ident.conf, add:

 local		root		root
 local		root		postgres
 local		root		rt_user
 local		rt		rt_user
 local		rtcvs		rt_user
 local		postfix		rt_user
 local		nobody		rt_user

In /etc/postgresql/<version>/main/pg_hba.conf, find the line that reads "local all all peer" and add "map=local" to the end, so it reads "local all all peer map=local". Comment out the line that reads "local all postgres peer", despite the warning not to disable it. Run "service postgresql restart" to reread the affected files. Run "psql -Upostgres --list" to verify that the identity map works.

Run "createuser -Upostgres rt_user" to create the rt_user role.

Run "createdb -ESQL_ASCII -Upostgres -Ttemplate0 rt2" to create the database. This database can be removed with "dropdb -Upostgres rt2" if it becomes necessary to recreate it.

Run "pg_dump -Upostgres -Fc rt2 > /path/to/dumpfile" on the old server, transfer the file to the new server, and run "pg_restore -Upostgres -d rt2 /path/to/dumpfile" on the new server to restore the database. As a simple verification, run "psql -Upostgres -c 'SELECT * FROM keywords;' rt2" on both servers and verify that the tables have the same number of rows.