Support-infrastructuur: verschil tussen versies
(Beginnetje aan pagina over Support-infrastructuur) |
(Schrijf "Installatie", beginnetje aan "Configuratie") |
||
Regel 15: | Regel 15: | ||
Het bleek dat Request Tracker dit allemaal kon, of gemakkelijk aan te vullen was zodat het dit kon. Op deze pagina beschrijf ik hoe we de boel hebben geïmplementeerd, voor het geval we het nog eens moeten doen en in de hoop dat het nuttig is voor anderen. | Het bleek dat Request Tracker dit allemaal kon, of gemakkelijk aan te vullen was zodat het dit kon. Op deze pagina beschrijf ik hoe we de boel hebben geïmplementeerd, voor het geval we het nog eens moeten doen en in de hoop dat het nuttig is voor anderen. | ||
+ | |||
+ | == Installatie == | ||
+ | |||
+ | De Request Tracker-installatie draait op de Debian-machine <tt>api.limesco.nl</tt>. Installatie op Debian is zo simpel als <tt>apt-get install request-tracker4</tt>. Tijdens de installatie wordt gevraagd om de naam van de Request Tracker-instance. In ons geval is dat <tt>rt.limesco.nl</tt>: | ||
+ | |||
+ | <pre> | ||
+ | $ host rt.limesco.nl | ||
+ | rt.limesco.nl mail is handled by 20 relay.transip.nl. | ||
+ | rt.limesco.nl mail is handled by 10 api.limesco.nl. | ||
+ | </pre> | ||
+ | |||
+ | Request Tracker gaat uitgevoerd worden als de user <tt>www-data</tt> omdat er niets anders als de <tt>www-data</tt>-gebruiker uitgevoerd wordt. Zouden er al bestaande services gebruikmaken van die user, dan zouden we de voorkeur hebben een aparte gebruiker aan te maken voor RT. Op de vraag "Handle RT_SiteConfig.pm permissions?" antwoorden we nu dus ja. De databaseconfiguratie kan ook automatisch worden gedaan ("Yes") en voor het initial root password kiezen we een lang, onraadbaar wachtwoord. Zodra RT is geïnstalleerd maken we een setje accounts voor mensen; de root-account wordt dan alleen nog gebruikt voor geautomatiseerde scripts. | ||
+ | |||
+ | == Configuratie website == | ||
+ | |||
+ | Op <tt>api.limesco.nl</tt> gebruiken we nginx, een snelle lichte webserver met CGI-support. Om nginx en Request Tracker samen te laten werken zijn de packages <tt>spawn-fcgi</tt> en <tt>libfcgi-perl</tt> nodig, en installeren we <tt>/etc/init.d/rt</tt> (zie [[#/etc/init.d/rt|hieronder]]). | ||
+ | |||
+ | == Bestanden == | ||
+ | |||
+ | === /etc/init.d/rt === | ||
+ | |||
+ | <pre> | ||
+ | #!/bin/sh | ||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: rt | ||
+ | # Required-Start: $remote_fs $syslog | ||
+ | # Required-Stop: $remote_fs $syslog | ||
+ | # Default-Start: 2 3 4 5 | ||
+ | # Default-Stop: 0 1 6 | ||
+ | # X-Start-Before: nginx | ||
+ | # X-Stop-After: nginx | ||
+ | # Short-Description: Start spawn-fcgi for serving RT through nginx. | ||
+ | # Description: Start spawn-fcgi for serving RT through nginx. | ||
+ | ### END INIT INFO | ||
+ | # Adapted from: | ||
+ | # http://rodenberg.blogspot.nl/2011/08/install-request-tracker-4-with-nginx.html | ||
+ | # Adapted by Sjors Gielen, Limesco, february 2013 | ||
+ | |||
+ | . /lib/lsb/init-functions | ||
+ | |||
+ | RTPATH=/usr/share/request-tracker4 | ||
+ | RTUSER=www-data | ||
+ | |||
+ | case $1 in | ||
+ | start) | ||
+ | log_begin_msg "Starting RT: " | ||
+ | spawn-fcgi -F 3 -u www-data -g www-data -a 127.0.0.1 -p 9000 \ | ||
+ | -- /usr/share/request-tracker4/libexec/rt-server.fcgi | ||
+ | log_end_msg 0 | ||
+ | ;; | ||
+ | |||
+ | stop) | ||
+ | log_begin_msg "Stopping RT: " | ||
+ | PIDS=`ps axww | awk '/[r]t-server.fcgi/ { print $1}'` | ||
+ | if [ -n "$PIDS" ]; then | ||
+ | kill $PIDS | ||
+ | else | ||
+ | echo RT not running | ||
+ | fi | ||
+ | log_end_msg 0 | ||
+ | ;; | ||
+ | |||
+ | restart|force-reload) | ||
+ | $0 stop | ||
+ | $0 start | ||
+ | ;; | ||
+ | |||
+ | *) | ||
+ | log_action_msg "Usage: /etc/init.d/rt {start|stop|restart|force-reload}" | ||
+ | ;; | ||
+ | |||
+ | esac | ||
+ | </pre> | ||
[[Categorie:Infrastructuur]] | [[Categorie:Infrastructuur]] |
Versie van 17 feb 2013 om 20:56
Support@ is sinds het begin bemand geweest door Sjors, Gerdriaan en Mark, waarbij Sjors de meeste mails afhandelde. Omdat puur e-mail gebruiken tracken lastiger maakt, en er wel eens voor zorgde dat Sjors en Gerdriaan tegelijkertijd een antwoord stuurden, zijn we begin 2013 gaan kijken naar een ticketingsysteem. We hebben geëxperimenteerd met Request Tracker en hebben besloten dat we dat systeem als implementatie gaan gebruiken voor support-tickets.
We hadden verschillende eisen voor dit systeem:
- Het moet duidelijk zijn wie een ticket behandelt (eigenaar & claimfunctionaliteit)
- We moeten wel alle tickets in kunnen zien, ongeacht eigenaar
- Het systeem moet mailnotificaties sturen als er interessante dingen gebeuren
- Alle communicatie in een ticket moet in 1 overzicht zichtbaar zijn
- We willen extra properties kunnen zetten op een ticket, zodat een mail automatisch interessante informatie verzamelt (accountnaam, SIM-gegevens, eventuele SpeakUp-ticketnummers)
- Tickets moeten via een commandline-interface in te zien en te wijzigen zijn
- Voortgang van tickets moet snel zichtbaar zijn
- Er moet een systeem voor reminders zijn, bijv. "over 2 dagen nog eens kijken hoe het staat" of "moet maximaal over 3 dagen opgelost zijn"
- Dat systeem voor reminders moet ons ook kunnen e-mailen
- We moeten vanaf de commandline mensen e-mail kunnen sturen, zo dat replies automatisch in dezelfde ticket komen
Het bleek dat Request Tracker dit allemaal kon, of gemakkelijk aan te vullen was zodat het dit kon. Op deze pagina beschrijf ik hoe we de boel hebben geïmplementeerd, voor het geval we het nog eens moeten doen en in de hoop dat het nuttig is voor anderen.
Installatie
De Request Tracker-installatie draait op de Debian-machine api.limesco.nl. Installatie op Debian is zo simpel als apt-get install request-tracker4. Tijdens de installatie wordt gevraagd om de naam van de Request Tracker-instance. In ons geval is dat rt.limesco.nl:
$ host rt.limesco.nl rt.limesco.nl mail is handled by 20 relay.transip.nl. rt.limesco.nl mail is handled by 10 api.limesco.nl.
Request Tracker gaat uitgevoerd worden als de user www-data omdat er niets anders als de www-data-gebruiker uitgevoerd wordt. Zouden er al bestaande services gebruikmaken van die user, dan zouden we de voorkeur hebben een aparte gebruiker aan te maken voor RT. Op de vraag "Handle RT_SiteConfig.pm permissions?" antwoorden we nu dus ja. De databaseconfiguratie kan ook automatisch worden gedaan ("Yes") en voor het initial root password kiezen we een lang, onraadbaar wachtwoord. Zodra RT is geïnstalleerd maken we een setje accounts voor mensen; de root-account wordt dan alleen nog gebruikt voor geautomatiseerde scripts.
Configuratie website
Op api.limesco.nl gebruiken we nginx, een snelle lichte webserver met CGI-support. Om nginx en Request Tracker samen te laten werken zijn de packages spawn-fcgi en libfcgi-perl nodig, en installeren we /etc/init.d/rt (zie hieronder).
Bestanden
/etc/init.d/rt
#!/bin/sh ### BEGIN INIT INFO # Provides: rt # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # X-Start-Before: nginx # X-Stop-After: nginx # Short-Description: Start spawn-fcgi for serving RT through nginx. # Description: Start spawn-fcgi for serving RT through nginx. ### END INIT INFO # Adapted from: # http://rodenberg.blogspot.nl/2011/08/install-request-tracker-4-with-nginx.html # Adapted by Sjors Gielen, Limesco, february 2013 . /lib/lsb/init-functions RTPATH=/usr/share/request-tracker4 RTUSER=www-data case $1 in start) log_begin_msg "Starting RT: " spawn-fcgi -F 3 -u www-data -g www-data -a 127.0.0.1 -p 9000 \ -- /usr/share/request-tracker4/libexec/rt-server.fcgi log_end_msg 0 ;; stop) log_begin_msg "Stopping RT: " PIDS=`ps axww | awk '/[r]t-server.fcgi/ { print $1}'` if [ -n "$PIDS" ]; then kill $PIDS else echo RT not running fi log_end_msg 0 ;; restart|force-reload) $0 stop $0 start ;; *) log_action_msg "Usage: /etc/init.d/rt {start|stop|restart|force-reload}" ;; esac