Mit Ansible zum laden einer einzelnen Datei aus einem privaten github-repo zu einem remote-host
Beispiel-Szenario: config-Dateien für einen bestimmten Dienst sind gehalten, unter Versionskontrolle auf einem privaten github-repo. Ich will schreiben, ein playbook, holt sich diese Dateien auf dem remote-Knoten und legt es in die gewünschte Position.
Ich kann mir denken, mehrere Lösungen für dieses:
- Auschecken auf der Maschine läuft ansible (
local_action
) und verwenden Sie dann diecopy
Modul - Auschecken auf dem remote-Knoten (mit der
git
Modul), kopieren Sie die Dateien an die gewünschte Position mitcommand: cp src dest creates=dest
(vielleicht tun Sie dies mit einem hf - erst wenn die repo-änderungen gezogen werden) - verwenden Sie die url-Modul oder
command: wget https://raw.github.com/repo/.../file creates=file
im playbook nur herunterladen der Datei von Interesse. Ist diecommand
Modul eigentlich Los, um zu überprüfen, ob die Datei erstellt werden soll, von der anderen, die möglicherweise bereits vorhanden ist, oder ist es einfach überprüfen Sie die Datei existiert? - wget auf der Maschine läuft ansible (
local_action
) und verwenden Sie dann die copy-Modul zu schieben, um den remote-Knoten
Was sind die Vorteile/Nachteile haben diese. Was (wenn überhaupt), diese könnten als gute Praxis zu empfehlen. Was ist die beste Allgemeine Lösung für dieses?
Lösung 3: auf jeden Fall wählen Sie einfach die Datei vorhanden ist. Und nur, wenn hinzufügen erstellt: parameter für Befehl.
InformationsquelleAutor pldimitrov | 2014-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werde ich beginnen, indem Sie sagen, dass wir wählten die 2. Lösung für unsere Produktionsumgebung und ich garantiere eine Sache - es funktioniert einfach. Jetzt für die längere version:
Keine Lösung. 1:
Keine Lösung. 2:
Keine Lösung. 3/4:
Meine Vermutung, es wird funktionieren, aber fühlt sich ein bisschen seltsam, um Ihre Konfiguration in die Quellcodeverwaltung und dann nicht wirklich mit source-control-Funktionen.
Der Vorteil dieser Lösungen ist, dass man "cherry-pick" die Konfigurations-Dateien, die Sie herunterladen möchten, anstatt Klonen das gesamte repository. Auch dies reduziert die I/O-gegen github als Klonen wird schwerer über die Zeit.
Soweit die Skalierbarkeit betrifft, ich denke, es hängt wirklich davon ab, Ihren Fall. Möchten Sie lieber ein limit Github-Aufrufe oder die Datei kopiert ? Mit der ersten Lösung, Sie müssen nur einen Anruf zu github, aber dann haben Sie X-copy, eine für jeden Knoten. Ihre ansible playbook zwar ein wenig lange, viele remote-Knoten, abhängig von Ihrer Internetverbindung (z.B. kopieren 50MB auf 20 hosts = 1Go von Daten nur für Ihre Steuerung Maschine) in der Erwägung, dass, da jedes Knotens Kontakt github verwenden würde, nur 50MB auf jedem Knoten, und github ist sicherlich skaliert, dass...
InformationsquelleAutor Shahar