Automatisatie in (custom) webdevelopment

Welke taken kan je automatiseren in je alledaags werk? Voor ieder is het antwoord hier anders op. Voor mij persoonlijk is het (onder andere) het opzetten van een website platform. Dat is hetgene dat ik gedaan heb met gebruik van een Digital Ocean Droplet en VestaCP. Tegelijkertijd heb ik weer wat meer bijgeleerd over DNS instellingen en Shell scripts...

 

De opzet

Een project komt binnen, dan wordt een gebruikersaccount aangemaakt, een eigen webruimte, een database. Daarna wordt de laatste versie van een platform gedownload en platform geïnstalleerd om dan daarop verder te bouwen. Er wordt een test link voorzien zodat de klant kan mee kijken en na goedkeuring wordt de Live URL gekoppeld aan de webruimte.

Wat als deze stappen kunnen geautomatiseerd worden of eventueel heel wat gemakkelijker. In de stappen hierboven moet er gewerkt worden met de linux terminal, een control panel, een hosting provider.

Om deze autoamtisatie te testen, heb ik gekozen voor Digital Ocean omdat hun droplets een webdeveloper in staat stellen om snel een webomgeving op te zetten. Daarnaast heb ik gewerkt met VestaCP omwille van de goede api ondersteuning en ook het DNS beheer in dat controle paneel.

Digital Ocean Droplets

Digital Ocean is een website waar je snel een VPS (Virtual Private Server) kan opzetten. Een VPS noemt bij Digital Ocean een ‘Droplet’. Een droplet starten is heel simpel en binnen de minuut kan je al aan de slag. Een droplet is echter ook vaak een lege doos waar gewoon een (linux) besturingssyteem op draait. Het is dan aan de webdeveloper om alle nodige toeters en bellen toe te voegen zoals Apache of nginx, PHP, MySQL/MariaDB, enzovoort.
 

do-droplet-aanmaak.png
Een stap bij het aanmaken van de Digital Ocean Droplet


Het opzetten van een server is toch de job van een server administrator? Vroeger misschien wel, maar kan het kwaad om als webdeveloper die zijn dagen vult met PHP om dan ook te weten hoe die een server kan beheren... Zeker en vast niet. Door een grotere kennis van het opzetten kan een developer ook sneller oplossingen vinden voor problemen die met de server te maken hebben.

VestaCP

VestaCP is een open-source control panel waar je gebruikeraccounts kan beheren. Aan een gebruikersaccount kan je dan een webdomein hangen, DNS instellingen, databases en zelf mail accounts indien je de webserver ook als mailserver zou gebruiken.

Ook installeert VestaCP zaken zoals Apache, nginx, PHP, MySQL/MariaDB zodat de server direct kan gebruikt worden voor PHP websites. Het is wel belangrijk om te weten dat sommige PHP modules niet mee geïnstalleerd worden waardoor er toch nog wat werk via de console moet gebeuren.
 

vestacp startpagina
Startpagina na installeren van VestCP


Andere opties zoals een Firewall, Virus scanner, Spam scanner, Backups en SSL support zijn zeker mooi meegenomen in dit gratis controle paneel. Er is een API voorzien die alle zaken die je manueel in het paneel kan instellen ook kan aanroepen van buitenaf. Dit natuurlijk met de nodige veiligheidsmaatregelen.
Nota: Elk control panel zorgt voor een security issue, want een hacker die een control panel login vindt, zal vaak daar een aanval op starten om binnen te geraken.

De automatisatie

Ben ik vergeten te zeggen dat ik voorheen nog veel andere open-source controle panelen heb uitgetest?
Virtualmin, Froxlor, Sentora, ... zijn allemaal de revue gepasseerd. Deze voldeden echter niet aan de vereisten of waren te uitgebreid voor de toepassing die ik wou bekomen.

Het opzetten van een Digital Ocean Droplet is heel gemakkelijk en zal ik hier niet overlopen. De installatie van VestaCP op die Droplet is heel gemakkelijk door volgende handleiding te volgen :
https://www.digitalocean.com/community/tutorials/how-to-install-vestacp-and-set-up-a-website-on-ubuntu-14-04

Na het volgen van de handleiding, kan je al inloggen op VestaCP. Ook is de API al beschikbaar om aan te roepen. Toch zou ik aanraden om even VestaCP grondig te bekijken en te testen. Alleen zo weet je indien alles er wel in zit dat jij nodig zou hebben.

In elk geval was ik overtuigd van VestaCP door de gemakkelijke interface en ook door de support van SSL via ‘Let’s Encrypt’ (een gratis SSL provider). SSL zorgt voor het veilige transport van gegevens op een website. Dit betekent ook elk veldje die jij zou invullen op een website. Een ranking factor van Google is SSL, dus geen SSL (https) op een website plaatsen is not done.

Na het opzetten van VestaCP en er wat in rond te kijken, is het tijd om de API te beginnen gebruiken. De API documentatie van VestaCP is toch wel een beetje aan de magere kant. Je kan wel via de console van de server alle shell scripts lezen door naar de map te gaan : /usr/local/vesta/bin

De URL’s die het merendeel van de API uit de doeken doen zijn:
https://vestacp.com/docs/api/
https://vestacp.com/docs/CLI.txt