IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GIT Discussion :

Gitlab public/privé + miroir ?


Sujet :

GIT

  1. #1
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 371
    Points : 276
    Points
    276
    Par défaut Gitlab public/privé + miroir ?
    Bonjour,
    Je cherche à mettre mon code sur Internet entre autre parce que je cherche du travail et que dans mon précédent travail, je ne pouvais rien mettre sur le Net.

    Je me pose toutefois une question : est-il sécure d'avoir un Gitlab accessible depuis internet avec dans les dépôts/projets les clefs de déploiement et des fichiers de mots de passe applicatif ?

    Gitlab propose de masquer/protéger les couples de variables qu'on désire (ici, par exemple des mots de passe). Ansible donne la possibilité de chiffrer des fichiers. Mais je ne suis pas du tout rassuré quant au fait de laisser ces fichiers chiffrés dans le dépôt. Je ne fais pas non plus confiance à Gitlab pour la protection des clés SSH et les variables secrètes.

    Qu'en est-il vraiment?

    Est-il plus judicieux d'avoir un Gitlab non accessible depuis Internet et d'en avoir un miroir visible sur internet ? Si oui, comment ne pas envoyer sur le miroir certains fichiers ?

    Merci d'avance pour vos retours,
    Pierre.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 410
    Points : 23 806
    Points
    23 806
    Par défaut
    Bonjour,

    Citation Envoyé par vandman Voir le message
    Je cherche à mettre mon code sur Internet entre autre parce que je cherche du travail et que dans mon précédent travail, je ne pouvais rien mettre sur le Net.

    Je me pose toutefois une question : est-il sécure d'avoir un Gitlab accessible depuis internet
    Attention : par un « un Gitlab », est-ce que veux dire « ouvrir un compte chez gitlab.com » ou installer une instance du logiciel Gitlab sur un serveur qui t'es propre ?

    avec dans les dépôts/projets les clefs de déploiement et des fichiers de mots de passe applicatif ?
    Non. Ça, ce n'est jamais une bonne idée, quel que soit le serveur sur lequel tu es hébergé. Ces choses-là doivent en principe être déposé au minimum dans un fichier de configuration dédié, considéré comme de la « donnée » et pas comme du code. En temps normal, il ne devrait jamais faire partie du dépôt de développement mais s'il est nécessaire de les conserver/partager/faire évoluer, alors tu peux les mettre sur une branche dédiée, que tu ne partages jamais à l'extérieur.

    Le corollaire, naturellement, est que cela dépend de l'environnement avec lequel tu développes.


    Gitlab propose de masquer/protéger les couples de variables qu'on désire (ici, par exemple des mots de passe). Ansible donne la possibilité de chiffrer des fichiers. Mais je ne suis pas du tout rassuré quant au fait de laisser ces fichiers chiffrés dans le dépôt. Je ne fais pas non plus confiance à Gitlab pour la protection des clés SSH et les variables secrètes.

    Qu'en est-il vraiment?
    Tu as résumé la chose toi-même : ce sont des fonctionnalités appréciables en elles-mêmes lorsque l'on est devant le fait accompli, confronté au problème et qu'il faut agir vite mais lorsque l'on conçoit un projet en amont, il ne faut pas tabler dessus d'emblée.

    Est-il plus judicieux d'avoir un Gitlab non accessible depuis Internet et d'en avoir un miroir visible sur internet ? Si oui, comment ne pas envoyer sur le miroir certains fichiers ?
    D'abord, il faut savoir qu'un dépôt Git en général n'est pas forcément un dépôt Gitlab en particulier. Un simple accès en écriture à un système de fichiers suffit pour travailler avec, et même en lecture simple pour y accéder et le cloner : Git lui-même gère nativement l'accès à ce dépôt soit avec SSH, soit avec HTTP, soit avec le protocole Git (qui nécessite alors de lancer un serveur sur la machine-hôte).

    Ensuite, si tu as vraiment besoin de versionner tes mots de passe (ou si tu veux tout simplement les conserver au sein du même projet mais de façon privée), le mieux est d'utiliser une branche dédiée au contenu privé pour éviter de la publier en même temps que le reste. De là, deux approches possibles :

    • Soit ton travail est vraiment collaboratif (tu travailles déjà en équipe ou tu souhaites que ton produit devienne libre et que la communauté y participe) et tu veux également pouvoir y travailler depuis n'importe où depuis une machine qui n'est pas forcément la tienne. Dans ce cas, le dépôt public doit devenir le dépôt principal. Le mieux de déclarer un répertoire pour tout ce qui est « privé » (config et mots de passe) et d'utiliser une branche dédiée pour le suivre, et de le placer a contrario dans le .gitignore de la branche principale, s'il y en a un, pour éviter qu'il soit visité par Git en permanence en conditions normales (et de l'ajouter au tronc principal par accident) ;

    • Soit tu travailles principalement seul depuis chez toi et tu veux simplement mettre en ligne ton produit pour le présenter (comme expliqué au dessus) et là, tu continues d'utiliser des répertoires distincts pour les choses publiques et privées (à dire vrai, c'est même encore mieux si tu sépares les sources des autres ressources telles que la documentation, par exemple) puis tu déclares une branche dédiée à la publication. Tu configures cette branche pour qu'elle « suive » (track) le dépôt public et seulement elle, pour éviter de risquer de publier du contenu privé par accident avec git push.

      Tu travailles alors normalement sur main, master ou autre branche et chaque fois que tu estimes que tu es arrivé à un niveau digne d'être publié (même si ce n'est pas une version stable), tu effectues un merge de la branche principale vers la branche de publication, en enregistrant éventuellement la résolution des conflits. Ceci te permet alors de faire un dernier audit de ta branche avant de la publier avec un simple git push.

  3. #3
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 371
    Points : 276
    Points
    276
    Par défaut
    Bonjour,
    J'utilise Gitlab en auto-héberger et je veux l'utiliser pour bénéficier des ci/cd proposer, c'est aussi une compétence à avoir. C'est un bon produit que je maîtrise un peu et facile à installer et gérer (pour moi et pour l'instant).
    Non. Ça, ce n'est jamais une bonne idée, quel que soit le serveur sur lequel tu es hébergé. Ces choses-là doivent en principe être déposé au minimum dans un fichier de configuration dédié, considéré comme de la « donnée » et pas comme du code. En temps normal, il ne devrait jamais faire partie du dépôt de développement
    J'utilise Ansible pour provisionner mes serveurs. Ansible a besoin de clef ssh ou d'un couple login/Mot de passe pour se connecter aux machines. Dans un CI, comment donner à Ansible ces données sans sans les stoker dans le runner ou dans Gitlab?
    Pour configurer les applications il est nécessaire d'avoir un certain nombres d'éléments (ip, login, mot de passe...). Dans Ansible, il est possible de masquer ces valeurs, mais il faut bien stoker ces valeur quelque part, même sous forme de fichier de configuration pour pouvoir configurer les applications? Si utilisation de CI, ou stoker ces valeurs?

    Merci

Discussions similaires

  1. Factory constructeur public/privé
    Par BigNic dans le forum C#
    Réponses: 5
    Dernier message: 23/07/2009, 17h56
  2. Control cache public, privé
    Par econo-ecolo dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 25/06/2009, 16h27
  3. Eclipse SVN SSH clé public privé
    Par =FdK= dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/07/2008, 10h14
  4. Site avec espace public & privé & TLS(SSL)
    Par flow38 dans le forum Langage
    Réponses: 1
    Dernier message: 07/08/2006, 11h43
  5. [en vrac] politique,public/privé,enseignement......
    Par CUCARACHA dans le forum Politique
    Réponses: 28
    Dernier message: 21/10/2005, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo