PDA

Bekijk Volledige Versie : DA-Toolbox: Bash script om enkele update/installs te vergemakkelijken



Ionstar
21/04/15, 17:42
Ik heb afgelopen week een opensource bash script gelanceerd om op DirectAdmin systemen met CentOS bepaalde taken eenvoudiger uit te voeren. Het gaat hier om:

- PHP Upgrades/updates
- MySQL/MariaDB upgrades/updates
- PHP extensies en modules installeren
- Extra software installeren zoals mod_ruid2 (custombuild 1), Python 2.7, Git, Postgres SQL, etc

Dit script is met name interessant voor hosting bedrijven die een groot aantal servers voor klanten managen, en waar klanten vaak met vragen komen om bepaalde PHP modules te installeren. Ook klanten met relatief weinig linux shell kennis kunnen hier baat bij hebben. Ik ben de ontwikkeling van dit script in 2014 gestart terwijl ik werkzaam was bij een van de grootste hosting bedrijven van Nederland.

Dagelijks kreeg de support afdeling (waar ik ook deel van uitmaakte) vragen van klanten om PHP te upgraden, PHP modules/extensies te installeren, en ook zaken als mod_ruid2. Dit soort repetitieve handelingen vergden nogal wat tijd die ook anders besteed kon worden. Dat was de insteek voor dit script... tijd besparen. Er werd voornamelijk gebruik gemaakt van CentOS 5 en 6, en custombuild 1. Afgelopen maand heb ik het script uitgebouwd met CentOS 7 ondersteuning, alsook Custombuild 2. Andere linux distributies worden op dit moment niet door dit script ondersteund!

Het script is te vinden op:

https://github.com/sempiterna/DA-Toolbox

Ik heb geprobeerd om het redelijk eenvoudig (voor mensen met bash kennis) te maken om nieuwe items aan het script toe te voegen. Ik ga daar nog een handleiding voor schrijven, maar daar ben ik nog niet aan toe gekomen.

Mochten er vragen zijn over dit script en de werking ervan, dan lees ik dat uiteraard graag :)

Kevin Bentlage
21/04/15, 20:46
Ziet er goed uit! Ik ga het eens uittesten.

Hoe is de eventuele foutafhandeling, wat als bepaalde handelingen niet goed gaan door bijvoorbeeld missende dependencies of afwijkende configs?


Sent from my iPhone using webhostingtalk mobile app

Ionstar
21/04/15, 21:22
Het script slaat bij alle acties die config files aanpassen alle configfiles op in een timestamped directory specifiek voor die actie. Wanneer er tijdens het uitvoering een fout wordt geconstateerd wordt er een rollback uitgevoerd. Een rollback naar de vorige actie (en alle acties daarvoor) is ook mogelijk via ofwel het door het script gegenereerde rollback.sh script in de directory voor die actie, of via optie nummer 900 (die optie verschijnt pas als er een rollback actie mogelijk is).

Wanneer er voor een bepaalde actie een extra repo (bijv EPEL) nodig is, wordt deze automatisch toegevoegd. Het is enorm veel (test) werk geweest om ervoor te zorgen dat fouten zo min mogelijk voor komen. Het deel van het script voor Centos 5 en 6 met custombuild 1, wat ik afgelopen jaar ontwikkeld heb, is voor honderden productieservers gebruikt. De compatibiliteit met CentOS 7 en Custombuild 2 is pas afgelopen maand toegevoegd.

Bart L
21/04/15, 22:31
Ziet er goed uit, met een hele hoop speelgoed erin! Goed gedaan, van de week eens testen :D

Ionstar
21/04/15, 22:49
Ziet er goed uit, met een hele hoop speelgoed erin! Goed gedaan, van de week eens testen :D

Dankje :) Mocht je vreemde dingen tegen komen, laat maar even weten. Ik heb net nog een kleine update aan het script in de github repo toegevoegd. Was geen bug, maar meer een irritatie wanneer je een multi-step mysql upgrade uitvoert (bijv van 5.1 naar 5.6).

Boyke
29/04/15, 11:52
"Last month (03/2015) I also added support for Custombuild 2 (including support for 2 simultaneous PHP versions) and CentOS 7."

Zojuist het script getest (op CentOS 7 met CB 2) en het ziet er goed/veelbelovend uit! Tot nu toe ook nog geen fouten tegen gekomen. Ik moet zodadelijk naast een php1 release ook nog een php2 release installeren, is dit mogelijk met de huidige versie van DA toolbox? Kon het zo snel niet vinden namelijk. Anders doe ik het met de hand, is tenslotte net zo lekker ;) (+ mijn excuses voor deze ranzige opmerking!).

Ionstar
02/05/15, 16:00
Het voor de eerste keer activeren van php2 is via het script niet mogelijk (ik heb er wel over gedacht het in te bouwen), maar zodra dat eenmaal is geinstalleerd kan het script er wel mee overweg. Het laat zien welke PHP versie php1 en php2 is, en welke door het script ondersteunde modules/extensies actief zijn. Na het installeren van php2 is het daarom meestal aan te raden om het script even te draaien om ervoor te zorgen dat de modules op beide PHP installaties actief zijn.