= Administrer un projet = == Organisation générale == Un projet se compose: * d'un utilisateur du nom du projet * d'un groupe de même nom * de un ou plusieurs administrateur de projet * d'utilisateurs == Informations relatives aux projets == Vous pouvez rentrer un certain nombre d'informations depuis [https://forge.ipsl.jussieu.fr/admin]: === Purement informatives === || '''Contact''' || le mail de la personne à contacter pour participer au projet || || '''Url''' || L'url vers le site relatif au dévelopement du projet, le wiki de trac par exemple || || '''Description''' || Une courte description du projet qui permet de le lister sur la page principale || === Administratives === || '''descriprion de l'utilisateur''' || Une courte description de l'utilisateur du projet pour mieux l'identifier sur la machine || || '''mail''' || un mail utilisé pour retransmettre les quelques mails que l'utilisateur du projet pourrait recevoir, en général des mails du système || || '''mode de passe''' || Le mot de passe de l'utilisateur du projet, il vous permet de devenir cet utilisateur en vue d'administrer le projet , il permet également l'accès aux ressources de la machine telle que base de donnée || == Permissions == L'utilisateur du projet est propriétaire des fichiers concernant l'administration du projet. Pour les modifer et dans certains cas y accéder vous devez devenir cet utilisateur. Trois méthodes sont possibles: '''ssh''':: En se connectant directement sur la machine sous ce compte en utilisant ssh et le mot de passe de cet utilisateur '''su''':: En étant connecté sur la machine avec la commande {{{su }}}, le mot de passe de cet utilisateur vous sera demandé '''sudo''':: sûrement la méthode la plus pratique car elle vous dispense de connaître le mot de passe de l'utilisateur de projet. sudo est configuré pour autoriser les administrateurs de projet d'exécuter n'importe quelle commande sous le compte de l'utilisateur de projet. Pour ouvrir une session: {{{ sudo -H -s -u }}} Le mot de passe qui est demandé est alors le vôtre. == Création de compte utilisateur == Les '''administrateurs de projet''' peuvent créer des comptes sur la machine via l'interface d'aministration: [https://forge.ipsl.jussieu.fr/admin]. Ces comptes utilisateurs doivent être strictement '''personnels''' et '''dûment renseignés''' (nom et prénom, mail). Il ne vous est pas possible de détruire ces comptes, en revanche il est possible de les retirer de votre projet et donc de leurs enlever les droit d'interagir avec. * '''La création d'un compte n'est pas une chose anodine, elle donne de facto un accès et des droits sur la machine,''' * '''Tout incident concernant les comptes utilisateurs (mauvaise utilisation, compte erroné, expiré, etc...) doit être remonté aux administrateurs de la machine.''' == Organisation des fichiers == === sur la machine === Tous les fichiers de vos projets doivent être situés dans la home directory de l'utilisateur du projet. Bien que vous soyez relativement libres dans l'organisation, il est préférable de respecter une certaine organisation. Tout les projets sont hébergés dans le répertoire {{{/ipsl/forge/projets/}}}, donc pour chaque projet: {{{/ipsl/forge/projets//}}} ou plus simplement {{{~/}}}. ==== Dépot de versionnement ==== Les dépôts de code seront placés dans un sous-répertoire significatif: '''subversion: {{{~/svn}}}''':: Si vous utilisez subversion, ce répertoire contiendra le dépôt. Il sera accessible en utilisant ssh via {{{ svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets//svn/ }}} '''darcs: {{{~/darcs}}}''':: Le fonctionnement de darcs implique rapidement d'avoir plusieurs dépôts, chaque dépôt sera donc situé dans un sous-répertoire de {{{~/darcs}}}, ils seront accessible en utilisant ssh: {{{ forge.ipsl.jussieu.fr:/ipsl/forge/projets//darcs// }}} ==== Trac ==== Si vous utilisez trac, l'environement de celui-ci sera situé dans {{{~/trac}}}. Pour administrer trac, se loguer en tant qu'utilisateur de projet et taper {{{ trac-admin ~/trac }}} ce qui ouvrira un pseudo shell et vous permettra de modifier les permissions, les versions, etc... Certaines configurations nécessitent de modifier le fichier de configuration {{{~/trac/conf/trac.ini}}}. Pour améliorer les performances, toutes les données sont stockées dans des base de données PostgreSQL. La base s'appelle {{{_trac}}}. * '''Comment voir les tickets en interactif sur forge?''' Lancer psql : {{{ forge$ sudo -u psql igcmg_trac igcmg_trac=> select * from ticket; id | type | time | ... 1 | defect | 1144660514 | 11 ... igcmg_trac=> \q forge$ }}} * '''Comment détruire un ticket (rempli par un spam par exemple)?''' Lancer psql : {{{ forge$ sudo -u psql igcmg_trac igcmg_trac=> begin; BEGIN igcmg_trac=> delete from ticket where id>3 and id<11; DELETE 7 igcmg_trac=> commit; COMMIT igcmg_trac=> \q forge$ }}} Pour annuler la dernière transaction psql : {{{ igcmg_trac=> rollback; ROLLBACK }}} '''Note sur les permissions''' Trac est accédé et rempli depuis le web, l'utilisateur apache doit donc pouvoir accéder à certains fichiers || '''fichier''' || '''apache''' || '''reste du monde''' || || trac/conf/trac.ini || lecture seulement || rien, il contient un mot de passe (accès à la base de donnée) || || trac/attachments/ || écriture (dépôt de fichiers depuis le web || tout sauf écriture || Pour que trac fonctionne correctement, et préserver la sécurité de votre projet, veillez à ce que ces permissions soit respectées. Malheureusement, seul un administrateur peut donner les permissions à apache en utilisant les droits standard UNIX. Il est possible de donner les droits à apache sans être administrateur avec une ACL, voici un exemple qui donne les droits en lecture/écriture: {{{ setfacl -m u:apache:rw chemin }}} === web === == Applications globales == === Retour d'expérience === Notes de travail de Françoise Pinsard pour création d'un nouveau projet [raw-attachment:retour_exp_fp.html] === Plugins trac === Voir la liste des plugins trac [http://trac-hacks.org/ ici] et la procédure d'installation [http://trac-hacks.org/wiki/Install là]. Liste des plugins installés sur le projet trac orchidee (et d'autres) : 1. !TracFigure-0.2.0-py2.5.egg 1. !TracRevtreeLogEnhancer-0.2.0dev-py2.5.egg 1. !TracRevtreeMergeInfoEnhancer-0.2.1dev-py2.5.egg 1. !TracRevtreePlugin-0.6.3dev-py2.5.egg 1. !TracStats-0.3-py2.5.egg 1. !TracTocMacro-11.0.0.3-py2.5.egg 1. !TracWikiPrintPlugin-1.8.4-py2.5.egg Si vous récupérez les plugins pré-compilés directement pour trac-0.11 (notre version), vous pouvez simplement les copier dans votre trac/plugins. Pour les activer, il suffit d'éditer le fichier trac/conf/trac.ini : {{{ [components] figure.* = enabled logenhancer.* = enabled logenhancer.enhancer.logenhancer = enabled mergeinfoenhancer.* = enabled mergeinfoenhancer.enhancer.mergeinfoenhancer = enabled revtree.* = enabled revtree.enhancer.* = enabled revtree.optimizer.* = enabled revtree.web_ui.* = enabled RevtreePlugin.LogEnhancer = enabled RevtreePlugin.MergeInfoEnhancer = enabled RevtreePlugin.Changelog = enabled tractoc.macro.* = enabled webadmin.* = enabled }}} Le dernier plugin (webadmin) est l'un des plugins inclus dans la distribution trac. Il permet d'activer l'onglet admin si vous êtes l'administrateur du site. Etapes d'installation d'un plugin récupéré sous la forme d'un paquet zip : 1. unzip revtreeplugin-r9404.zip 1. cd revtreeplugin/0.11 1. chmod -R ug+rX * 1. python setup.py bdist_egg 1. cp dist/!TracRevtreePlugin-0.6.4dev-py2.5.egg ~/trac/plugins