Lorsque vous effectuez un déploiement continu avec Git, comment gérez-vous les fichiers ignorés dans gitignore? Ces fichiers sont ignorés pour des raisons de confidentialité (c'est-à-dire qu'ils ne veulent pas qu'ils soient envoyés vers d' autres référentiels distants, comme GitHub), mais avec ces fichiers ignorés qui ne sont pas poussés vers le référentiel de déploiement continu, leur application ne s'exécutera pas (car les fichiers ignorés sont requis pour que le logiciel fonctionne correctement).
Comment les gens s'y prennent-ils généralement? Dans ce cas, Git n'est-il pas le meilleur candidat pour un déploiement continu en raison de fichiers ignorés?
version-control
user3175663
la source
la source
Réponses:
Si votre logiciel ne fonctionne pas sans ces fichiers, vous aurez un problème avec tout type de déploiement, manuel, automatique ou continu, avec tout type de VCS, ou même sans VCS. Donc, modifiez votre logiciel afin qu'il puisse s'exécuter sans ces fichiers (par exemple, il pourrait supposer une sorte de "paramètres par défaut" si les fichiers sont manquants), ou fournissez une version de ces fichiers adaptée au déploiement qui est copiée ( dans le cadre de l'étape de déploiement) vers l'environnement de destination dans le cas où aucune version "privée" de ces fichiers n'est en place.
Si vous parlez de quelque chose comme un fichier contenant des informations d' identification de base de données d' ouverture de session sur le serveur, ce qui, pour des raisons de sécurité, vous ne voulez pas être dans le contrôle de version, vous devrez mettre ce fichier dans l'environnement de déploiement une fois , probablement manuellement , par une personne disposant de droits suffisants ou connaissant le mot de passe. Mais cela est intentionnel et ne devrait pas vous empêcher de déployer de nouvelles versions quotidiennes de votre logiciel. Assurez-vous simplement qu'un fichier d'informations d'identification en place n'est pas remplacé lorsque vous déployez une nouvelle version.
la source
Une autre option consiste à stocker les informations sensibles à l'intérieur de votre outil de déploiement. Et la configuration de l'outil de déploiement dans un référentiel source privé distinct.
Laisser les données sensibles sur la machine cible fonctionne, mais cela pourrait pourrir - quelqu'un change cela sans suivre les procédures, la machine freine et personne ne se souvient des paramètres corrects, etc.
Saltstack par exemple a https://docs.saltstack.com/en/latest/topics/pillar/index.html
la source