Im Moment verwenden wir eine Kombination aus Jenkins Pipelines und Ansible Playbooks. Normalerweise enden wir mit kurzen ansprechbaren Spielbüchern, die entweder innerhalb der Jenkins-Pipeline oder einfach als Jenkins-Job laufen.Ansible oder Jenkins Pipelines für größere Jobs
Was wäre ein besserer Ansatz für kompliziertere, mehrstufige Jobs?
Zum Beispiel ein Job besteht aus:
- starten EC2-Instanz von AMI
- Run Migrationen
- neuesten Code Ziehen, kompilieren und starten
- neue AMI Erstellen von temporären Instanz
- Terminate temporäre Instanz
Ich mag die Tatsache, dass ich Benutzereingaben in Jenkins-Pipelines sowie die grafische Darstellung jedes Schrittes in der Pipeline handhaben kann. Im obigen Beispiel wäre jeder Schritt wahrscheinlich sein eigenes kleines sprechbares Spielbuch. Das Übergeben von Parametern von Spielbuch zu Spielbuch ist nicht so einfach, aber wir wissen, wie es geht.
Ich bin nicht 100% sicher, wenn ich dies bis zum besten Standard tue, da während der Erstellung dieser Pipelines denke ich, dass dies wahrscheinlich ansible und anders herum sein sollte.
Gibt es einen Sweet Spot, wie man diese beiden zusammen benutzt?
Ja, ich dachte, es ist nicht gerade nach vorne gehen zu beantworten. Ich mag definitiv Ansible für Dinge wie Deployment, Architekturmanagement usw., einfach wegen seiner Plugins und der einfachen Verbindung zu skalierbaren Instanzen. Aber Pipelines scheinen die bessere Wahl zu sein, um den gesamten Prozess zu orchestrieren. – Tom
Genau, selbst dann könnte man einfach Zeug wie ein dynamisches Inventar haben und einen Schritt auf einer Jenkins-Pipeline machen, um die ganze Serverflotte bereitzustellen. Sie können auch Release-Management-Tools betrachten, ich habe keine Alternative zu Octopus-Deploy in der Benutzerfreundlichkeit gefunden, und die Tatsache, dass es Ihrem Team hilft, eine höhere Ansicht des Prozesses zu erhalten, auf diese Weise wissen Sie, in welcher Umgebung welcher Zustand und kann ältere Releases leicht reproduzieren und auf eine sicherere Weise zurückrollen! –
Fast fertig die Pipeline, die ich ursprünglich geschrieben hatte, lernte definitiv viel. Ansible und Jenkins Dokumentation ... oh Junge ... Ich habe Octopus gesehen, aber ich denke, wir haben es abgewiesen, weil es zu teuer war – Tom