Request Tracker pour les Nuls. Yves Agostini - YVESAGO



Documents pareils
Systèmes de tickets avec RT

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Installation de Zabbix

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

TD4 - Supervision et métrologie des réseaux. 1 Supervision des applications et services réseaux et des ressources locales

Simplifier l authentification avec Kerberos

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

HowTo Installer egroupware 1.2 sur SME Serveur 7.0

Open Source Job Scheduler. Installation(s)

Installation et configuration d OCS/GLPI sur un Serveur Debian

Serveur Subversion Debian GNU/Linux

Pratique et administration des systèmes

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Ce guide détaille pas à pas les étapes d installation et de configuration de la solution jusqu'à la sauvegarde des BDD.

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

M2-ESECURE Rezo TP3: LDAP - Mail

Gérer ses environnements de développement avec Vagrant RMLL 2012

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

PPE GESTION PARC INFORMATIQUE

Architecture de la plateforme SBC

Utiliser Améliorer Prêcher. Introduction à LDAP

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

sshgate Patrick Guiran Chef de projet support

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Tutoriel compte-rendu Mission 1

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Samson BISARO Christian MAILLARD

Attaques applicatives

équipement radio Procédure

Service d'authentification LDAP et SSO avec CAS

Module pour la solution e-commerce Magento

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Développement Web. Les protocoles

WDpStats Procédure d installation

InstallatIon et configuration d une Infrastructure réseau sans-fil. Avec. Interface de gestion utilisateurs

Module 7 : Configuration du serveur WEB Apache

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

CDS Invenio Installation et configuration de base

TelSurvey Système CATI pour LimeSurvey 11 novembre Manuel administrateur

ADF Reverse Proxy. Thierry DOSTES

Procédure d'installation

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Exercice sur les Dockers

CASE-LINUX MAIL - ROUNDCUBE

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Installation et configuration d Apache sous Linux RedHat 7.1. Pascal AUBRY Ambroise DIASCORN IFSIC Université de Rennes 1

Les infrastructures de clés publiques (PKI, IGC, ICP)

Installation d un hébergement Web à domicile

Gestion d identités PSL Exploitation IdP Authentic

Authentification unifiée Unix/Windows

LDAP et carnet d'adresses mail

EJBCA PKI Open Source

UE5A Administration Réseaux LP SIRI

Client windows Nagios Event Log

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Outils de développement collaboratif

Mise en place d un serveur Proxy sous Ubuntu / Debian

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

PLANNING DES ACTIVITES PROFESSIONNELLES

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux

WWSympa, une interface web pour Sympa

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Guide d installation de SugarCRM Open Source version 4.5.1

Mise en œuvre de Rembo Toolkit

JOSY. Paris - 4 février 2010

Installation d'un serveur FTP géré par une base de données MySQL

PHP et les Bases de données - Généralités

Hébergement de site web Damien Nouvel

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Mise en place d un proxy Squid avec authentification Active Directory

Olivier Mondet

Installation du DNS (Bind9)

Outils Logiciels Libres

2011 Hakim Benameurlaine 1

Guide Installation Serveur Extensive Testing

Mise en place d annuaires LDAP et utilisation dans plusieurs applications

Passerelle VPN : OpenVPN Debian GNU/Linux

SUPERVISION DE RÉSEAU AVEC NAGIOS

EXALOGIC ELASTIC CLOUD MANAGEMENT

INTRODUCTION À PYRAMID Gaël Bearstech. Crédits: Blaise Laflamme

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

1/15. Jean Bernard CRAMPES Daniel VIELLE

INTRODUCTION. Mysql-server est un serveur de bases de données. Cest un logiciel libre.

table des matières Administration système

Déploiement d'un serveur ENT

Polux Développement d'une maquette pour implémenter des tests de sécurité

OpenPaaS Le réseau social d'entreprise

S28 - La mise en œuvre de SSO (Single Sign On) avec EIM (Enterprise Identity Mapping)

SERVEUR HTTP Administration d apache

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN

Transcription:

Yves Agostini - YVESAGO

Plan 1. Présentation 2. Installation 3. Gestion par mail 4. Authentification 5. Concepts 6. Configuration 7. Adaptations 8. Usages 9. Exemples API REST 10. Conclusion Page 1/43

Présentation 1. Présentation Système de gestion de tickets générique distribution / partage de tâches gestion de la communication très très souple Page 2/43

Présentation Histoire 1994-1996 : WebReq - CGI - Jesse Vincent, 2000 : RT 1.0 - CGI - Jesse Vincent, 2001 : RT 2.0 - mod_perl/mason - Best Practical 2003 : RT 3.0 / RTIR - Best Practical 2011 : RT 4.0 700 références sur http://requesttracker.wikia.com/wiki/rtusers MIT, NASA, Nike,... RTIR: JANET, IRIS-CERT, CERT.PT, GOVCERT.NL, SWITCH-CERT, RENATER,... Page 3/43

Présentation RT 3.6-2006 Page 4/43

Présentation RT 3.8 Page 5/43

Présentation RT 4 Page 6/43

Présentation Bilan Expérience fonctionnelle : workflows délégations authentifications bugtracker (CPAN) RTIR Inertie technologique gestion continuité des services IHM : de CGI à Ajax Page 7/43

Installation 2. Installation Debian / Ubuntu $ apt-get install request-tracker4 rt4-apache2 c est réglé $ mysql -u root -p mysql> GRANT ALL PRIVILEGES ON rtdb.* TO ³rtuser ³@ ³localhost ³ IDENTIFIED BY ³pass ³; mysql> FLUSH PRIVILEGES; QUIT Set up RT database : $ /usr/sbin/rt-setup-database-4 --action init --dba root --prompt-for-dba- password Config : $ vi /etc/request-tracker4/rt_siteconfig.pm Page 8/43

Installation Mécanique interne Stockage mysql ou autres peu de tables (26 : ACL, Tickets, Queues, Attachments,...) Services perl / mason surcharge Configuration stockage dans la base : ACL, Templates,... Page 9/43

Gestion par mail 3. Gestion par mail Page 10/43

Gestion par mail procmail VERBOSE=1 LOGFILE=$HOME/.procmail.log LOCKFILE=$HOME/.procmail.LCK ARG1=$1 MAILDOMAIN=support.univ.fr RT_MAILGATE="/usr/bin/rt-mailgate" RT_URL="http://support.univ.fr/rt/" :0 { TO= formail -c -xreceived: grep $MAILDOMAIN sed -e ³s/.*for *<*\(.*\)>* } *;.*$/\1/ ³ QUEUE= echo $TO $HOME/get_queue.pl ACTION= echo $TO $HOME/get_action.pl :0 h b w /usr/bin/perl $RT_MAILGATE --queue $QUEUE --action $ACTION --url $RT_URL Page 11/43

Gestion par mail API REST <Location /rt/rest/1.0> Order allow,deny Allow from 127.0.0.1 Allow from xxx.yyy.zzz.aaa Satisfy any </Location> Page 12/43

Authentification 4. Authentification Authentification externe : RT::Authen::ExternalAuth OpenLDAP, Active Directory DBI MySQL, Oracle, PostgreSQL Fichiers... Mail création id RT CAS login RT Page 13/43

Authentification RT_SiteConfig.pm ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ Set($WebExternalAuth, 1); # CAS auth Set($WebFallbackToInternalAuth, 1); Set($WebExternalAuto, 1); Set($ExternalSettings, { # LDAP mapping My_LDAP => { ³type => ³ldap ³, ³server => ³ldap.univ.fr ³, ³base => ³ou=people,dc=univ,dc=fr ³, ³filter => ³(objectClass=*) ³, ³attr_match_list => [ ³Name ³, ³EmailAddress ³, ³RealName ], ³attr_map => { ³Name => ³uid ³, ³EmailAddress => ³mail ³, ³RealName => ³cn } } }); Page 14/43

Authentification Apache CAS <Location /> SetHandler perl-script PerlHandler RT::Mason AuthType Apache2::AuthCASSimple PerlAuthenHandler Apache2::AuthCASSimple PerlSetVar CASServerName auth.univ.fr PerlSetVar CASServerPath / PerlSetVar CASSessionTimeout 360 PerlSetVar CASSessionDirectory /tmp require valid-user </Location> Page 15/43

Concepts 5. Concepts Utilisateurs Files Champs personnalisés Articles Scrips Page 16/43

Concepts Utilisateurs Utilisateurs "Privilégiés" accès tableau de bord et gestion des files Page 17/43

Concepts Utilisateurs Groupes systèmes : Tout le monde - Privilégié - Sans droit Rôles: AdminCc ( Cc ) Intervenant Demandeurs Groupes pas de profil d autorisation par défaut Page 18/43

Concepts Files Nom nom@support.univ.fr et nom-comment@support.univ.fr Pas de hiérarchie a Visibilité : fixée par droit du groupe "Sans droits" Gestion par des Observateurs a sauf usage de Champs personnalisés Page 19/43

Concepts Champs personnalisés pour des Tickets, Files, Articles,..., Transactions du ticket Page 20/43

Concepts Articles ex-rtfm Créer CPs : Réponse, Procédure Droits de groupe Réponse "Tout le monde" : Voir les champs personnalisés Groupe "xxx" : Créer, modifier, ajouter,... Procédure Groupe "xxx" : Voir, créer, modifier, ajouter,... Créer une classe d article ajouter les champs personnalisés : Réponse, Procédure Page 21/43

Concepts Usage des réponses Page 22/43

Concepts Scrips Scrip d une File Action: "Défini par l utilisateur", "Lors d une création" Programme de préparation d action personnalisé: return 1; Programme de nettoyage d action personnalisé: my $newowner = "noel"; # Changement proprietaire my ( $status, $msg ) = $self->ticketobj->setowner($newowner); unless ($status) { $RT::Logger->warning("Impossible d ³attribuer le ticket a $newowner: $msg"); return undef; } return 1; Page 23/43

Configuration 6. Configuration "Droits de groupe" (système,spécifique) sur les Files, Articles, Champs personnalisés, Groupes une File peut contenir des CPs avec des Droits de groupe différents! Les Scrips/Modèles/CP peuvent être globaux ou dépendre d une File/Classe pas de gestion de cohérence Difficultés instance de tests et validations Page 24/43

Configuration Configuration 1. Configuration > Global > Droits de groupe 2. Configuration > Files > Choisir > xxxx (a) Observateurs (b) Droits de groupe : ( Tout le monde VoirFile ) (c) Champs personnalisés Page 25/43

Configuration Droits Globaux interface terrifiante 3.8! 4.0 : découpage indicatif en Permissions générales, intervenants, administrateurs Page 26/43

Configuration Droits Globaux Exemple Tout le monde: CreerTicket RepondreTicket VoirChampPersonnalise Sans droits: none Privilegie: ModifierDonneesPerso VoirOngletConfiguration (si on veut laisser gerer les groupes) Page 27/43

Configuration Droits Globaux - Rôles Demandeur: CommenterTicket AfficherTicket RepondreTicket Observer VoirChampPersonnalise FixerChampPersonnalise Intervenant: CommenterTicket SupprimerTicket ModifierTicket RepondreTicket VoirChampPersonnalise AfficherEmailSortant AfficherTicket AfficherCommentairesTickets Page 28/43

Configuration Droits Globaux - Rôles AdminCc (on attribuera par file ie: proprietaire de la file) VoirFile Afficher/Modifier/Supprimer/Prendre/Voler/RepondreTicket AfficherCommentairesTickets VoirClasse Voir/Modifier/Supprimer/CreerArticle Voir/Gerer/Modifier/Supprimer/Fixer/CreerChampPersonnalise GererValeursDeChampsPersonnalises Creer/Afficher/ChargerRechercheSauvee AfficherEmailSortant VoirGroupe DeleguerDroits ModifierObservateurs ObserverCommeAdminCC Afficher/ModifierModele... Tableaux de bords, Approbations,... À titre indicatif! Page 29/43

Adaptations 7. Adaptations Pérennité! Page 30/43

Adaptations Web # /usr/local/share/request-tracker4/html/callbacks/default/elements/tabs/ Privileged <%INIT> Menu->child( ³home ³)->child( selfservice => title => ³Utilisateur classique ³, path => ³/SelfService/ ³ ); </%INIT> <%args> $toptabs => undef $user_attrs => undef </%args> Ajout du lien SelfService pour les Privilégiés Ajout des recherches sauvées, colorisation de login,...! cache mason /var/cache/request-tracker4/mason_data/ Page 31/43

Adaptations Plugins depuis CPAN ou $ dh-make-perl -build -cpan... RT::Authen::ExternalAuth /usr/local/share/request-tracker4/plugins/rt-authen-externalauth/ _etc _html _Callbacks/ExternalAuth/ _autohandler/auth [_Elements/Header/Head _lib _RT/Authen/ExternalAuth/... dans RT_SiteConfig : Set( @Plugins, qw(rt::authen::externalauth RT::Extension::LDAPImport) ); Page 32/43

Adaptations ExtractCustomFieldValues Sur File : scrip + modèle cf-name Headername or "Body" RE Postcmd Options Page 33/43

Usages 8. Usages Danger! Liste de diffusion Formation des utilisateurs : Prendre un ticket, s abonner Créer un ticket plugin redirect thunderbird Résoudre un ticket Essentiel Chg de File Essentiel Champs personnalisés Essentiel Fusionner (Dépend de, Se rapporte à,...) Relations Investigations chgt de Demandeur Personnes Page 34/43

Usages Usages Nombre de files / files publiques / privées Dispatchers Extensions RTIR bugtracker Page 35/43

Exemples API REST 9. Exemples API REST Page 36/43

Exemples API REST Gestion svn hooks/post-commit #!/bin/sh REPOS="$1" REV="$2"... /usr/share/subversion/hook-scripts/svn-rt-comment.pl "$REPOS" "$REV" Usage: $ git commit -a m ³probleme regle (closes: #17927) ³ $ git svn dcommit Install: apt-get install librt-client-rest-perl Page 37/43

Exemples API REST svn-rt-comment.pl # http://blog.rot13.org/2008/09/request_tracker_subversion_svnweb_microblogging. html use RT::Client::REST; use RT::Client::REST::Ticket; my $rt_re = qr/\brt-ticket: #(\d+)\b/i; my $rt_action = qr/\((closes rt)\s?:\s?#(\d+)\)/i; my $svnweb_fmt = ³https://svn.univ.fr/svnweb/index.cgi/%s/revision/?rev=%d ³; my ( $repo, $rev ) = @ARGV; sub svnlook { my $command = shift; my $txt = svnlook $command --revision $rev $repo ; chomp( $txt ); return $txt; }; my $log = svnlook ³log ³; # my $diff = svnlook ³diff ³; if ( $log =~ $rt_action ) { my $rt = RT::Client::REST->new( server => ³ ³http://sup.u.fr/rt ); $rt->login( username => ³rtsvn ³, password => ³ ³xxx ); my $message = "Commit:\n".sprintf($svnweb_fmt,$repo_only, $rev). "\n". "Author: ".svnlook( ³author ³). "\t". svnlook( ³date ³). "\n\n". svnlook( ³changed --copy-info ³). "\n\n". "--\nmessage:\n".$log ; $ticket->comment( message => $message ); $ticket->status( ³resolved ³) if ( lc($status) eq ³closes ³); # TODO new ticket }; Page 38/43

Exemples API REST Bot jabber Page 39/43

Exemples API REST JabberBot::Plugin::RT https://svn.univ-metz.fr/svnweb/index.cgi/pub_jabberbot/view/trunk sub take { my $rt = shift; my $ticket_id = shift; my ($text,$erreur); my $ticket; RT::Client::REST::Ticket->be_transparent($rt); $ticket = RT::Client::REST::Ticket->new( rt => $rt, id => $ticket_id, ); eval { $ticket->take(); }; if ($@) { $erreur = $@ ; } else { $text = ³take ³.$ticket->id ; }; }; return ($text,$erreur); Page 40/43

Conclusion 10. Conclusion Pas si compliqué Souple Puissant Robuste Page 41/43

Questions? Page 42/43

txt2tags Latex (Prosper) Page 43/43