Outils pour utilisateurs

Outils du site


doc:formations:hebergement:service:gitolite

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doc:formations:hebergement:service:gitolite [2021/12/09 17:25] – [Installation] jeremiedoc:formations:hebergement:service:gitolite [2022/08/09 09:03] (Version actuelle) – [Principes] jeremie
Ligne 16: Ligne 16:
 ''git'' est le système de versioning de source le plus utilisé et probablement le plus performant à l'heure actuelle. Il repose sur une approche distribuée de "patches" (modifications incrémentales) stockés sous forme arborescente. ''git'' est le système de versioning de source le plus utilisé et probablement le plus performant à l'heure actuelle. Il repose sur une approche distribuée de "patches" (modifications incrémentales) stockés sous forme arborescente.
  
-On appelle un "repository" un lieu commun qui permet à un ou plusieurs développeurs de récupérer et pousser des modifications dans des projets git, mais cette notion même de "dépot" est subjective. En effet, ajouter un localement un ou plusieurs "remote", n'est rien d'autre que d'indiquer un ou plusieurs lieu tiers où se trouvent d'autres copies de l'arborescence que l'on a chez soi. Et ''git'' excelle pour comparer, réconcilier et créer diverses versions d'un projet.+Voyez [[doc:formations:git|cette page]] pour une introduction progressive et plus précise à l'usage de git. 
 + 
 +On appelle un "repository" un lieu commun qui permet à un ou plusieurs développeurs de récupérer et pousser des modifications dans des projets git, mais cette notion même de "dépot" est subjective. En effet, ajouter un ou plusieurs "remote", n'est rien d'autre qu'indiquer un ou plusieurs lieu tiers où se trouvent des *copiesde l'arborescence que l'on a chez soi, qui servent de points de comparaison et d'approvisionnement pour d'autres développeurs. Et précisément, git excelle pour comparer, réconcilier et créer diverses versions d'un projet.
  
 Sans aller hors-sujet, et dans tous les cas, il est utile d'avoir un "dépot central" qui sert de point d'échange principal pour le code source d'un projet. Cela sert aussi comme sauvegarde lorsqu'il se trouve sur un serveur indépendant du poste client. Sans aller hors-sujet, et dans tous les cas, il est utile d'avoir un "dépot central" qui sert de point d'échange principal pour le code source d'un projet. Cela sert aussi comme sauvegarde lorsqu'il se trouve sur un serveur indépendant du poste client.
Ligne 34: Ligne 36:
 ===== Installation ===== ===== Installation =====
  
-Sur votre poste client, si besoin, simplifiez-vous l'accès au bon serveur, port et (futur) utilisateur, en ajoutant un alias vers le bon serveur et le bon port dans votre ''~/.ssh/config'', par exemple: +Astuce: sur votre poste client, si besoin, simplifiez-vous l'accès au bon serveur, port et (futur) utilisateur, en ajoutant un alias vers le bon serveur et le bon port dans votre [[doc:formations:hebergement:serveur:ssh#configurer_des_option_selon_l_utilisateur|~/.ssh/config]].
- +
-<code> +
-Host repos gitolite +
-  Hostname git.mondomaine.com +
-  User gitolite +
-  Port 12345 +
-</code>+
  
 On crée maintenant sur le serveur un utilisateur ''gitolite'' dédié et on installe le gestionnaires (notez que l'on passe ici par la version la plus récente de https://gitolite.com/gitolite et non la version ''apt''): On crée maintenant sur le serveur un utilisateur ''gitolite'' dédié et on installe le gestionnaires (notez que l'on passe ici par la version la plus récente de https://gitolite.com/gitolite et non la version ''apt''):
Ligne 64: Ligne 59:
  
 <code> <code>
-!ssh +$ ssh gitolite@repos
-ssh repos +
-PTY allocation request failed on channel 0+
 hello jeremie, this is gitolite@git.mondomaine.com running gitolite3 v3.6.11-4-gef9ab68 on git 2.17.1 hello jeremie, this is gitolite@git.mondomaine.com running gitolite3 v3.6.11-4-gef9ab68 on git 2.17.1
  
Ligne 78: Ligne 71:
 Au delà de vous-mêmes, vous pourez ajouter/retirer des utilisateurs identifiés par leur clé SSH publique, et leur donner des droits projet par projet. Au delà de vous-mêmes, vous pourez ajouter/retirer des utilisateurs identifiés par leur clé SSH publique, et leur donner des droits projet par projet.
  
-Ces opérations passent elles-mêmes par git: les changements de configurations seront donc suivies et historisées! Depuis son poste client, on commence par récupérer le projet suivant:+**Cette configuration passe elle-même par git**: les changements de configurations seront donc suivies et historisées! Depuis son poste client, on commence par récupérer le projet suivant:
  
   git clone gitolite@repos:gitolite-admin   git clone gitolite@repos:gitolite-admin
Ligne 91: Ligne 84:
 ==== Ajout d'un utilisateur à gitolite ==== ==== Ajout d'un utilisateur à gitolite ====
  
-Pour ajouter un utilisateur ''marcel'' qui vous aurait donné sa clé SSH publique ''/tmp/marcel.pub'', on l'ajoute donc dans le repository ''gitolite'':+Pour ajouter un utilisateur ''marcel'' qui vous aurait donné sa clé SSH publique ''/tmp/marcel.pub'', on l'ajoute d'abord dans le repository ''gitolite'' (sur votre poste, pas sur le serveur) :
  
-  cp /tmp/marcel.pub keydir+  cp /tmp/marcel.pub keydir/
   git add keydir   git add keydir
   git commit -m "ajout de marcel"   git commit -m "ajout de marcel"
Ligne 124: Ligne 117:
       RW+       marcel       RW+       marcel
  
 +Des droits complexes sont possibles avec ''gitolite'', comme la gestion groupée ou l'interdiction pour une personne de faire un ''push'' sur la branche ''master'' (voyez  [[https://github.com/sitaramc/gitolite#access-rule-examples|cette section]] par exemple).
  
 ===== Création d'un projet ===== ===== Création d'un projet =====
Ligne 184: Ligne 178:
 Dans le cas d'un email mal formé, on peut cependant spécifier l'utilisateur par son nom seulement ("joe" ici, mais ce n'est pas idéal). Explications [[https://stackoverflow.com/questions/13957954/gitolite-usernames-in-authorized-keys-file|ici]] ("l'idée du @suffix est de permettre à l'administrateur d'ajouter facilement plusieurs clés pour un même utilisateur").  Dans le cas d'un email mal formé, on peut cependant spécifier l'utilisateur par son nom seulement ("joe" ici, mais ce n'est pas idéal). Explications [[https://stackoverflow.com/questions/13957954/gitolite-usernames-in-authorized-keys-file|ici]] ("l'idée du @suffix est de permettre à l'administrateur d'ajouter facilement plusieurs clés pour un même utilisateur"). 
  
 +==== Configuration coté client de son .ssh/config pour gitolite ====
 +
 +A propos de SSH, voyez les bénéfices de configurer votre ''$HOME/.ssh/config'' sur [[https://wiki.tecrd.com/doku.php?id=doc:formations:hebergement:serveur:ssh#options_du_cote_client|la page ssh]].
 ====== Usage de git ====== ====== Usage de git ======
  
doc/formations/hebergement/service/gitolite.1639070741.txt.gz · Dernière modification : 2021/12/09 17:25 de jeremie