1 votes

de svn à git (+ LDAP + mises à jour sans mot de passe + contrôle d'accès par mot de passe)

Nous avons une installation SVN et il y a des choses que nous n'aimons pas et d'autres que nous aimons. Nous voulons passer à git, mais nous ne savons pas exactement quelle configuration nous conviendrait. Nous utilisons actuellement SVN (avec Authz) + Apache (avec WebDAV & LDAP).

  1. Accrocher pour mettre à jour le site en direct [comme]
  2. La mise à jour en direct du site ne nécessite aucune interaction supplémentaire [like]
  3. La mise à jour en direct du site utilise un mot de passe stocké [dislike]
  4. commits nécessite une authentification centralisée par mot de passe [like]
  5. commit à partir d'un site réel modifie les informations d'identification stockées [dislike].
  6. Contrôle d'accès (par référentiel) pour commits [like]

Le point 5 ci-dessus est celui qui continue à nous perturber. Quelqu'un fait un commit depuis le site live et le crochet se casse.

Nous pensons utiliser gitosis/gitolite pour obtenir un contrôle d'accès, mais comme ils utilisent des clés ssh, nous n'aurons pas besoin de mots de passe. Nous pensons également utiliser git-http-backend, et utiliser Apache pour l'authentification, mais perdons-nous alors le contrôle d'accès ? Le site live peut-il être automatiquement mis à jour à partir d'un hook si Apache requiert une authentification ? Peut-on combiner git-http-backend et gitosis/gitolite d'une manière ou d'une autre ? Peut-on stocker les identifiants http avec git ?

1voto

Devin Ellis Points 21

Si vous préférez toujours utiliser svn up pour le site en direct, lire svn help up attentivement et de prêter attention à certaines options afin de gérer les informations d'identification de manière intelligente.

Global options:
  --username ARG           : specify a username ARG
  --password ARG           : specify a password ARG
  --no-auth-cache          : do not cache authentication tokens

1voto

JustJeff Points 6070

Nous envisageons également d'utiliser git-http-backend, et d'utiliser Apache pour l'authentification, mais perdons-nous alors le contrôle d'accès ?

Non, vous pouvez configurer l'authentification avec ldap presque exactement comme vous l'avez fait pour SVN. Gitweb et git-http-backend utilisent mod_ldap comme SVN pour l'authentification.

Le site en ligne peut-il être mis à jour automatiquement à partir d'un hook si Apache requiert une authentification ?

Git est livré par défaut avec gitweb. C'est principalement ce qui est utilisé pour un navigateur en ligne pour votre base de code source. Vous pouvez le configurer derrière Apache avec mod_ldap pour l'authentification, tout comme git-http-backend. Aucun hook n'est nécessaire pour mettre à jour le navigateur en ligne et les dépôts qui y sont listés. Tout cela est maintenu par le cgi, git-http-backend.

Peut-on combiner git-http-backend et gitosis/gitolite d'une manière ou d'une autre ?

La gitolite est ce qu'il vous faut :

https://github.com/sitaramc/gitolite/wiki/

La Gitose est essentiellement dépréciée :

Ubuntu-server : convention de nommage des utilisateurs de gitosis

Personnellement, nous utilisons uniquement LDAP pour l'autorisation et l'authentification des utilisateurs. Vous n'avez pas vraiment besoin de gitolite pour la gestion des utilisateurs si vous utilisez LDAP. Vous pouvez utiliser n'importe quel outil général de gestion des utilisateurs LDAP pour cela. La plupart des distributions Linux sont livrées avec une variété d'outils d'interface utilisateur pour gérer openLDAP. Si vous utilisez Windows, utilisez simplement active directory.

L'approche par défaut (git, gitweb, git-http-backend, LDAP) et gitolite prennent en charge les éléments suivants :

  • il ne s'agit pas de "vrais" utilisateurs, c'est-à-dire de connexions sur le boîtier physique qui les héberge (selon la manière dont vous utilisez LDAP)
  • ils n'ont pas accès à Shell (selon la façon dont vous utilisez LDAP)
  • contrôler l'accès à plusieurs dépôts git
  • accès en lecture contrôlé au niveau du repo
  • peut être installé sans accès root, en supposant que git et perl soient déjà installés l'authentification se fait le plus souvent à l'aide de sshd, mais vous pouvez également utiliser httpd si vous préférez (cela peut nécessiter un accès root).

Cependant, si vous souhaitez une gestion fine des utilisateurs sans LDAP et que vous répondez aux critères suivants, gitolite peut être une meilleure solution :

  • utiliser un seul utilisateur Unix (utilisateur "réel") sur le serveur
  • fournir un accès à de nombreux utilisateurs de gitolite
  • accès en écriture contrôlé au niveau des branches/étiquettes/fichiers/répertoires, y compris les personnes autorisées à rembobiner, créer et supprimer des branches/étiquettes

De http://sitaramc.github.com/gitolite/index.html#gl_what

Peut-on stocker les identifiants http avec git ?

Oui, vous pouvez stocker/assigner des utilisateurs en utilisant git config :

git config --global user.name "Foo Bar"
git config --global user.email "your@mail.address.com"
git config --global user.password "yourpassword"
git config --global github.user "yourusername"
git config --global github.password "yourpassword"

Cependant, si vous l'utilisez avec SSH, assurez-vous d'utiliser des certificats CA et non des certificats auto-signés. Git a ce hack bizarre, sslVerify=false, pour le faire fonctionner avec des certificats auto-signés, ce qui semble aller à l'encontre de l'objectif d'utiliser des certificats.

Lorsque vous allez migrer du code de svn vers git, vous aurez besoin d'un bon outil d'importation. Je n'en ai pas trouvé qui fonctionne bien pour les gros dépôts, alors j'ai écrit le mien. N'hésitez pas à expérimenter si vous rencontrez des problèmes avec git-svn :

https://github.com/onepremise/SGMS

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X