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?
- 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
- 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.
- 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.
- 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.
- Nach dem Merge kann die Config per Bamboo
http://bamboo.luan.xres.de/deploy/viewDeploymentProjectEnvironments.action?id=14221313
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