Fortlaufende Bereitstellung mit gitignore

12

Wie gehen Sie mit ignorierten Dateien in Gitignore um, wenn Sie eine kontinuierliche Bereitstellung mit Git durchführen? Diese Dateien werden aus Datenschutzgründen ignoriert (dh sie sollen nicht in andere Remote-Repositorys wie GitHub verschoben werden). Wenn diese ignorierten Dateien jedoch nicht in das Continuous Deployment-Repository verschoben werden, wird die Anwendung nicht ausgeführt (so wie die ignorierten Dateien) erforderlich, damit die Software ordnungsgemäß funktioniert).

Wie gehen die Leute normalerweise vor? Ist Git in diesem Fall aufgrund der ignorierten Dateien nicht der beste Kandidat für eine kontinuierliche Bereitstellung?

user3175663
quelle
2
Ich stimme dafür, diese Frage als "Off-Topic" zu schließen, da sie keinen Mindestaufwand für die Grundlagenforschung aufweist.
Scant Roger
3
Ich sehe keinen Mangel an Forschungsanstrengungen. Die OP scheint zu verstehen , was gitignore tut sehr gut. Was ich sehe, ist ein XY-Problem, aber da sowohl X als auch Y in der Frage erklärt werden, konnte Doc eine anständige Antwort schreiben, die hoffentlich das eigentliche Problem des OP löst.
Ixrec
1
@ScantRoger: Ehrlich gesagt könnte die Frage besser geschrieben werden, aber es ist weit davon entfernt, so schlecht zu sein, dass es eine enge Abstimmung verdient.
Doc Brown

Antworten:

14

Wenn Ihre Software ohne diese Dateien nicht ausgeführt wird, treten Probleme mit jeder Art von Bereitstellung auf, manuell, automatisch oder kontinuierlich, mit jeder Art von VCS oder sogar ohne VCS. Ändern Sie also entweder Ihre Software so, dass sie tatsächlich ohne diese Dateien ausgeführt werden kann (wenn die Dateien fehlen, kann sie beispielsweise eine Art "Standardparameter" annehmen), oder Sie geben eine Version der für die Bereitstellung geeigneten Dateien an, die kopiert werden ( als Teil des Bereitstellungsschritts) in die Zielumgebung, falls keine "private" Version dieser Dateien vorhanden ist.

Wenn Sie über eine Datei mit Datenbankanmeldeinformationen für die Anmeldung am Server sprechen, die aus Sicherheitsgründen nicht in der Versionskontrolle enthalten sein soll, müssen Sie diese Datei einmal , wahrscheinlich manuell , in die Bereitstellungsumgebung einfügen , von einer Person, die über ausreichende Rechte verfügt oder das Passwort kennt. Dies ist jedoch beabsichtigt und sollte Sie nicht davon abhalten, täglich neue Versionen Ihrer Software bereitzustellen. Stellen Sie lediglich sicher, dass vorhandene Anmeldeinformationsdateien beim Bereitstellen einer neuen Version nicht überschrieben werden.

Doc Brown
quelle
Einverstanden, wenn das Auschecken aus vcs nicht ausreicht, um zu erstellen und auszuführen, wenn auch mit reduzierter Kapazität, ist Ihr Quellbaum unvollständig.
Newtopian
@Newtopian: beachte, dass dies tatsächlich beabsichtigt und korrekt sein kann (siehe mein Beispiel).
Doc Brown
2

Eine weitere Option besteht darin, die vertraulichen Informationen in Ihrem Bereitstellungstool zu speichern. Und die Konfiguration des Bereitstellungstools in einem separaten privaten Quellrepository.

Das Belassen der vertraulichen Daten auf dem Zielcomputer funktioniert, ist jedoch möglicherweise fehlerhaft - jemand ändert sie, ohne den Anweisungen zu folgen, die Maschine bremst ab und niemand merkt sich die korrekten Einstellungen usw.

Saltstack hat zum Beispiel https://docs.saltstack.com/en/latest/topics/pillar/index.html

Patrick
quelle