Preface

I first wrote RT because I had to. I was a summer intern for a now-defunct web design shop called Utopia Inc. Half my time was to be spent hacking Perl code for customer projects. The other half of my time, I was to be the office’s second sysadmin. The company did most everything by email, including ask the other sysadmin, my boss, to take care of work. Everything the company’s 30-member staff needed us to do ended up in her inbox. When I got there, I suggested that we deploy a ticketing system, such as the one I’d set up for my university helpdesk. She seemed to think this was a pretty good idea except she thought we’d be better off if I implemented a new ticketing system from scratch.

At the end of the summer, I managed to convince the company’s founders that they should let me take my creation with me, continue to hack on it, and give it away.[1] Flash forward a couple years: I placed an order for a DSL line with a national DSL provider and got back a ticket from their RT instance. A quick calculation showed that they were creating over 1,000 tickets a day—a couple orders of magnitude more than I’d ever imagined anyone handling with RT. This was just the nudge I needed to rebuild RT from the ground up.

Over the next few years, I found more and more organizations picking RT up for tracking everything from security incidents to sales inquiries to email counseling sessions for troubled teens. Our current best guess is that over 10,000 organizations use RT. The community that has grown up around RT is amazingly vibrant. When you’re working with RT either as an administrator or developer, it’s quite worthwhile to join the community on rt-users and rt-devel mailing lists as well as our wiki, wiki.bestpractical.com. (We’ll talk a bit more about the community in Chapter 10.)

When I first wrote RT in 1996, I had no idea it was going to be more than a summer project. It’s been an amazing first nine years.

—Jesse Vincent

Audience

We designed this book to be useful to end-users, systems administrators, and developers who interact with RT on an occasional or regular basis.

If you’re an end user

Start off with Chapter 1 to learn about ticketing systems. Then skip forward to Chapter 3 to find out how to use RT’s web interface. If you’re comfortable getting things done with command-line interfaces, read Chapter 4 to see how to use and automate RT with rt. After that, pick and choose whatever sounds interesting.

If you’re a systems administrator

Chapter 1 will give you a background in ticketing systems. Chapter 2 helps you get set up with a live RT instance. After that, jump ahead to Chapter 5 for help setting up users, groups, queues, and access control. Chapter 7 is filled with suggestions for potential uses of RT inside your organization. Once you have RT up and running, Chapters 3 and 4 will help with day to day interaction and should make a good guide to help your users get comfortable working with RT on their own.

Once RT is up and running, you should check out the rest of the book, which focuses on development and customization.

If you’re a developer

If you’re a developer, it probably makes the most sense to read this book straight through before you start hacking. The first section focuses on getting a system up and running. The second section talks about basic customization and configuration. The third section focuses on how RT’s code and database are put together.

If you’re chomping at the bit to get started, read Chapter 2 to find out the basics of installation, then Chapter 10 to learn a few tricks that will make your development process much smoother. Chapters 9 and 10 will explain how everything fits together.

Assumptions This Book Makes

Except for Chapter 1, this book assumes that you use (or want to use) RT to manage tasks. [2] As you delve deeper into the book, various sections will be considerably more useful to you if you have at least a basic understanding of the Unix command line, basic Unix systems administration skills, and at least a little bit of experience programming in Perl.

What’s Inside

Chapter 1, What Is Ticketing?

Provides some background about what ticketing systems are and how they can help save your job and your sanity.

Chapter 2, Installation

Walks you through the process of setting up an RT server and configuring sane system defaults.

Chapter 3, Getting Started

Will help you get up and running with RT’s web interface.

Chapter 4, Command-Line Interface

Explains how to interact with RT from your shell or console window.

Chapter 5, Administrative Tasks

Steps you through the basics of turning a virgin RT server into a useful tool for tracking what you need to do inside your organization.

Chapter 6, Scrips

Shows you how to extend RT’s standard behavior with custom business logic.[3]

Chapter 7, Example Configurations

Provides a look inside the RT configuration at Yoyodyne Propulsion Systems, a nonexistent company that makes heavy use of RT to manage their internal processes.

Chapter 8, Architecture

Covers the nuts and bolts of how RT is put together. This chapter walks you through RT’s files on disk, as well as the details of its database tables.

Chapter 9, API

Describes how DBIx::SearchBuilder works. SearchBuilder is the object-relational mapping framework that ties RT to the database backend.

Chapter 10, Development Environments

Helps you set up a local sandbox for modifying and extending RT without putting your production server in harm’s way.

Conventions

Constant width

Used for literal text, module names, function names, method names, and keywords

Constant width italic

Used to show text that should be replaced with user-supplied values

Constant width bold

Used to show commands or other text that should be typed literally by the user

Italic

Used for filenames, components, commands, URLs, emphasis, and terms when they are first introduced

Using Code Examples

This book is here to help you get your job done. In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product’s documentation does require permission.

We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “RT Essentials by Jesse Vincent, Robert Spier, Dave Rolsky, Darren Chamberlain, and Richard Foley. Copyright 2005 O’Reilly Media, Inc., 0-596-00668-3.” If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at .

We’d Like to Hear from You

Please send comments and questions concerning this book to the publisher at the following address:

O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(800) 998-9938 (in the United States or Canada)
(707) 829-0515 (international or local)
(707) 829-0104 (fax)

We have a web page for this book, where we list errata, examples, or any additional information. You can access this page at:

http://www.oreilly.com/catalog/rtessentials

To comment or ask technical questions about this book, send email to:

For more information about our books, conferences, Resource Centers, and the O’Reilly Network, see our web site at:

http://www.oreilly.com

Safari® Books Online

Note

Safari Books Online is an on-demand digital library that lets you easily search over 7,500 technology and creative reference books and videos to find the answers you need quickly.

With a subscription, you can read any page and watch any video from our library online. Read books on your cell phone and mobile devices. Access new titles before they are available for print, and get exclusive access to manuscripts in development and post feedback for the authors. Copy and paste code samples, organize your favorites, download chapters, bookmark key sections, create notes, print out pages, and benefit from tons of other time-saving features.

O’Reilly Media has uploaded this book to the Safari Books Online service. To have full digital access to this book and others on similar topics from O’Reilly and other publishers, sign up for free at http://my.safaribooksonline.com.

Acknowledgments

Neither this book nor RT would be here without the community that has grown around RT since it was first released almost 10 years ago. The thousands of members of the rt-users and rt-devel mailing-lists have made RT a pleasure to work on and to use.

Nat Torkington is responsible for making this book happen in the first place. Simon Cozens singlehandedly convinced the publisher that an RT book should happen. Our editor, Allison Randal, moved heaven and earth to get the project back on track after what seemed like certain doom.

Last, but only because they all managed to do a fantastic job reviewing this book’s content on a very tight schedule at the last minute, we would like to thank our technical reviewers: Todd Chapman, Simon Cozens, Andy Harrison, Phil Homewood, Autrijus Tang, Greg Williamson, and Ruslan Zakirov.

Ruslan is also responsible for the majority of the content on wiki.bestpractical.com, which is an incredibly valuable companion to this book.



[1] It wasn’t exactly a hard sell. They thought this was a great idea.

[2] Chapter 1’s job is to convince you that you need a system like RT.

[3] Please forgive us for the name Scrip. Jesse coined it in the middle of the dot com boom to describe a cross between “script” and “subscription.” Everybody was inventing words back then and it seemed like a good idea at the time.

Get RT Essentials now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.