Ceci est une ancienne révision du document !
Table des matières
Dépot Git de Mycélium
Nous souhaitons avoir accès à un dépot Git pour poser nos scripts Ansible, et éventuellement d'autres choses.
Le dépot sera hébergé sur la machine de fab.
Cette page raconte d'abord la mise en place de ce dépot Git.
Puis elle raconte comment accéder et utiliser le dépot Git.
Mise en place du dépot
Tout a commencé … par un tutorial qui se promenait sur la toile.
Plutôt que d'utiliser git+ssh, on pourra se pencher sur gitolite et ses frérots : https://linuxfr.org/users/postroutine/journaux/serveur-git-avec-gitolite
En résumé :
- création d'un compte 'mycelium' sur la machine.
- initialiser le dépot Git
- modification de /etc/passwd pour usage du shell restreint git-shell (ou mieux:
chsh -s /usr/bin/git-shell
). (Ne pas prendre à court la doc en le faisant trop tôt.) - ajout de clés SSH des usageres du dépot Git
Petit détour, cette doc indique entre autre comment ajuster un message de bienvenue pour git-shell : https://git-scm.com/docs/git-shell.html
Initialisation du dépot :
mycelium@mplserv:~/mycelium.git$ git --bare init Dépôt Git vide initialisé dans /home/mycelium/mycelium.git/
Après copie de ma clé publique SSH, je tente un commit depuis ma machine locale. Ça fonctionne.
Puis je tente de récupérer le contenu du dépot :
git clone mycelium@mplserv:/home/mycelium/mycelium.git Clonage dans 'mycelium'... remote: Décompte des objets: 3, fait. remote: Total 3 (delta 0), reused 0 (delta 0) Réception d'objets: 100% (3/3), fait.
Tout ça fonctionne !
Utiliser le dépot git chez fab
Envoie ta clé SSH dedieu
D'abord, vous devez m'envoyer votre clé publique SSH (si par email, en pièce jointe de préférence pour éviter les soucis liés à mime/encodage).
Infos sur l'hôte
Sur mon réseau local la machine s'appelle mplserv
, mais sur internet, il s'agit de cacatoes.homenet.org
. L'accès SSH se fait sur le port 20122.
Le compte utilisateur est mycelium
.
Dans mon .ssh/config
, que vous pouvez copier tel quel, j'ai :
Host mplserv Hostname cacatoes.homenet.org HostKeyAlias mplserv CheckHostIP yes Port 20122
Vérifier l'authentification
Si vous avez copié mon bout de config ssh :
$ ssh mycelium@mplserv
Sinon :
$ ssh mycelium@cacatoes.homenet.org -p 20122
Réglages initiaux du dépôt mycelium.git
A compléter, voir aussi: https://wiki.monitoring-fr.org/infra/git
Récupérer le contenu du dépot :
$ git clone ssh://mycelium@cacatoes.homenet.org:20122/~/mycelium.git
ou bien (à condition d'avoir fait la manip précédente du .ssh/config
) :
$ git clone mycelium@mplserv:/home/mycelium/mycelium.git
Après le clone, la première fois, il est préférable de configurer les informations personnelles.
$ git config --local --add user.name "<Prénom> <Nom>" $ git config --local --add user.email "<email>"
Usage basique du dépôt mycelium.git
Récupérer une version récente des fichiers du dépot :
$ git pull
Consulter le journal d'activité :
$ git log
Ajouter un fichier ou répertoire :
$ git add file $ git add directory
Commiter des changements (il faut ajouter les fichiers avant) :
$ git commit -m "Mon super commentaire explicite"
Envoyer le commit sur le dépôt centralisé
$ git push
Le répertoire 'keys'
Le répertoire keys
à la racine du dépôt GIT de mycélium stocke les clés publiques SSH des administeurs Mycélium.
Le format du fichier de la clé doit être : <username>.pub
.
Préférer les clés RSA (2048 ou supérieur) ou EC25519. (éviter les clés DSA et ECDSA)
Envoyer sa clé publique ssh dedans :
git pull git add keys/<username>.pub git commit -m "Add ssh public key for <username>" git push
Erreurs diverses
RSA host key for mplserv has changed and you have requested strict checking.
Ce problème est lié à ssh (et non pas à git). Il signifie que l'empreinte SSH du serveur a changé, ce qui pose la question de son authenticité, et vous devez vous enquérir du pourquoi : réinstallation du serveur, changement de la configuration réseau qui fait parvenir sur un autre serveur SSH…
A moins que vous ne connaissiez la raison de ce changement, vous devriez contacter l'administrateurice du serveur.
Un peu de debug possible avec :
ssh -vvv mycelium@mplserv