Ausrollen von CronJobs auf 4YBK (und später andere)
Moin, Durch die Umstellungen des Deployments heute ist es nun möglich (und für bereits umgestellte Systeme erforderlich), CronTabs auf KundenSysteme auszurollen. Ziele: * Durch ein Git-Repo ist nachvollziehbar, wer wann welche CronTabs geändert hat und was als "Kommentar" dazu notiert wurde. * Deployment-ToDos in Form von CronTabs können vorab in einem Release-Branch geändert und zum Livegang einer xRes-Version in den "master" übernommen werden. Damit werden Deployment-ToDos schneller und sicherer. * Änderungen können per Deployment-Click zurückgedreht werden. * Über einen (noch zu integrierenden) Check wird es (ähnlich UnitTests) nicht mehr möglich sein, "kaputte" CronTab-Dateien in den master-Branch zu mergen und live zu nehmen. Vielen Dank an Viktoras für den Vorschlag eines geeigneten Parser-Tools! Wie geht das? 1. Bitte checkt bei Euch das git-Repo "build_customer_config" aus: git clone ssh://git@stash.app.infra.gs.xtrav.de:7999/php/build_customer_config.git 2. Darin ist das Verzeichnis "xres_system_config" allgemein dafür gedacht "Konfigurationen" (Apache-Configs, CronTabs, Logrotate-Configs, ...) auf xRes-Systeme auszurollen und unter /var/xres abzulegen. Von dort werden alle mit xres_ beginnenden Dateien im Deploiyment automatisch nach /etc/cron.d/ gesymlinkt und somit aktiviert. 3. Jeder Kunde hat in diesem Ordner "sein eigenes" Verzeichnis für kundenspezifische Dateien => so ist z.B. die Liste der laufenden Importe eines Data01 natürlich keine zentrale CronTab (für alle Kunden / Maschinen), sondern spezifisch für einen Data01 eines Kunden JT abzulegen. Darüber hinaus ist im Verzeichnis "XX" jedoch vorgesehen, Konfigurations-Dateien über Kunden und / oder Maschinen hinweg abzulegen und damit auf ALLEN Kundensystemen oder allen Service01 ALLER Kunden auszurollen. So liegt zum Beispiel die CronTab für die Rotation der xRes-HTML-Logs an nur genau EINER Stelle des Vz. Baums build_customer_config/xres_system_config/XX/XX/etc/cron.d/ => Die Ordernerstruktur ist sicher intuitiv. 4. Ihr erstellt Euch in Zukunft bitte einen Branch vom "master", ändert darin eine CronTab und gebt dies wie immer als PullRequest an einen anderen Entwickler zur Prüfung. 5. Nach dem Merge kann die Config per Bamboo http://bamboo.luan.xres.de/deploy/viewDeploymentProjectEnvironments.action?i... auf Kundensysteme ausgerollt werden und ist sofort live. Nächste Schritte: * Ich bitte Euch DRINGEND, den Kunden 4YBK NUR NOCH auf oben genanntem Weg auszurollen. Manuelle Änderungen an CronTabs würden anderenfalls beim nächsten Deployment zerstört und nicht mehr aktiv sein. * Parallel werde ich mich kümmern, auch alle anderen Kunden und Systeme auf diesen Prozess umzustellen. Dies bedeutet besonders den Download der aktuellen CronTabs, Modularisierung in viele kleine CronTabs und Einchecken in das oben genannte Repo. Natürlich informiere ich alle Beteiligten, bevor ein Kunden umgestellt und "überrollt" wird. * Natürlich wünsche ich mir Eure Anregungen und Vorschläge, das System anzupassen, einfacher und "besser" zu machen. VG SRK -- Mit freundlichen Grüßen Stefan Rank-Kunitz - Lead Developer - ________________________________________________________ TraSo GmbH Nonnenstraße 42 D-04229 Leipzig Tel.: +49 341 355 740 - 43 E-Mail: s.rank-kunitz@traso.de ________________________________________________________ Handelsregister: Amtsgericht Leipzig, HRB 21850
participants (1)
-
Stefan Rank-Kunitz