Scripts voor server management
Om het werken - bouwen, testen, gebruiken - met webapplicaties makkelijker te maken heb ik ingericht wat in Apache termen ooit "virtual servers" genoemd werd. De configuratiebestanden hiervoor met de hand bijhouden werd na verloop van tijd wat bewerkelijk of saai of zo en scripten met fabric bracht uitkomst. Ik bedacht dat ik het ook kon doen met andere settings bestanden.
Daarnaast waren er server programma's die voor het testen gestopt en herstart moesten worden. Hier iets voor bouwen dat je met parameters (bijvoorbeeld een server naam en een functie om uit te voeren) aan kunt sturen was ook een leuke exercitie.
Het onderstaande smeekt erom om opgesplitst en verder toegelicht te worden maar daar heb ik nu geen zin in
Beschikbare taken:
Nginx
De configuraties staan in een directory genaamd "available". Door een symlink erheen te maken in een directory "enabled" kan Nginx deze ook gebruiken. deze directories zijn niet direct benaderen; aanpassen kan door een lokale versie daarheen te kopiëren, daarvoor zitten deze in een directory onder die waar de scripts staan.
- nginx.editconf <name>
pas een server configuratie bestand (lokaal) aan
- nginx.modconf <name(s)>
kopieer een configuratiebestand naar de Nginx settings; replace versie
- nginx.modconfa <name(s)>
modconf: backup & append versie
- nginx.modconfb <name(s)>
modconf: backup & replace versie
- nginx.addconf <name(s)>
maak één of meer server configuraties bruikbaar
- nginx.newconf <name(s)>
definieer en enable een nieuwe Nginx configuratie in één keer
- nginx.rmconf <name(s)>
maak één of meer server configuraties onbruikbaar zonder ze te verwijderen
- nginx.diffconf [<name(s)>]
vergelijk de genoemde (of alle) configuratie files
- nginx.diffconfg [<name(s)>]
vergelijk de genoemde (of alle) configuratie files en toon de resultaten in een GUI
- nginx.list
maak een lijst met beschikbare configuraties
- nginx.list-domains
maak een lijst met virtual domains per Nginx configuratie
- nginx.restart
restart nginx
- nginx.start
start nginx
- nginx.stop
stop nginx
Apache
Een soortgelijke situatie als voor Nginx beschreven is ook hier van toepassing (en dus ook overeenkomstige scripts). Omdat ik geen Apache gebruik zijn deze scripts al in geen jaren onderhouden
- apache.editconf <name>
pas een server configuratie bestand (lokaal) aan
- apache.modconf <name(s)>
kopieer een configuratiebestand naar de Apache settings; replace versie
- apache.modconfa <name(s)>
modconf met append (en backup)
- apache.modconfb <name(s)>
modconf met backup
- apache.addconf <name(s)>
maak één of meer server configuraties bruikbaar
- apache.rmconf <name(s)>
disable Apache configuration for one or more file names
- apache.diffconf [<name(s)>]
vergelijk de genoemde (of alle) configuratie files
- apache.diffconfg [<name(s)>]
vergelijk de genoemde (of alle) configuratie files en toon de resultaten in een GUI
- apache.restart
restart apache
- apache.start
start apache
- apache.stop
stop apache
PHP
- php.restart
restart php
- php.start
start php
- php.stop
stop php
FTP
- ftp.restart
restart vsftpd
- ftp.start
start vsftpd
- ftp.stop
stop vsftpd
Generieke commando's
bruikbaar voor elk server type. De hierna volgende scripts zijn niet voor de webserver zelf, maar voor programma's die de communicatie m.b.t. webapplicaties regelen. Deze zitten als het ware achter de webserver, die daarvoor als een soort doorgeefluik dient en worden ook "server programma's" genoemd.
- server.check-all [<name(s)>]
controleer of de server "up" is gebaseerd op de aanname dat een server gestart is als er een pid (program id) file aanwezig is. Geen naam opgeven betekent alle locale servers langsgaan
- server.restart
restart local server
- server.start
start local server
- server.stop
stop local server
Specifieke (per servertype) commando's
worden door de voorgaande gebruikt maar los aanroepen is ook mogelijk
Cherrypy
- cherrypy.list-servers
maak een lijst met Cherrypy server namen
- cherrypy.restart [<name(s)>]
restart een Cherrypy site (argument is niet de servernaam maar de projectnaam)
- cherrypy.start [<name(s)>]
start de aangegeven Cherrypy server(s) (via cherryd)
- cherrypy.stop [<name(s)>]
stop de aangegeven Cherrypy server(s)
Django
- django.list-servers
maak een lijst met Django server names
- django.restart [<name(s)>]
restart de aangegeven Django server(s)
- django.start [<name(s)>]
start de aangegeven Django server(s) (met gunicorn)
- django.stop [<name(s)>]
stop de aangegeven Django server(s)
- django.link-admin-css [<name(s)>] [--force]:
maak een symlink naar de admin CSS in een Django project
- django.check-admin-links
Controleer na een Python of Django upgrade of de symlinks naar de admin css ook moeten worden aangepast
Hgweb
- hgweb.restart
restart lokale Mercurial web server
- hgweb.start
start lokale Mercurial web server (met gunicorn over nginx nog niet aan de praat gekregen)
- hgweb.stop
stop lokale Mercurial web server
Plone
- plone.buildout
configureer Plone instance met buildout (vervallen?)
- plone.restart
restart Plone default instance
- plone.start
start Plone default instance
- plone.stop
stop Plone default instance
Trac
- trac.editconf
alias voor (fabsrv) editconf trac
- trac.modconf
alias voor (fabsrv) modconf trac
- trac.restart
restart local trac server
- trac.start
start local trac server
- trac.stop
stop local trac server
Overig
- sites.check-all
controleer of geselecteerde pagina's op alle locale sites het doen
- sites.check-all-pages
volledige controle of alle locale sites het doen
- sites.check-pages <servername(s)>
volledige controle of the genoemde locale sites het doen
- sites.check-project <projectname(s)>
controle of pages for specifieke projecten het doen
- sites.check-project-up <projectname(s)>
controle of (frontpages voor) specifieke projecten het doen
- sites.check-up <servername(s)>
snelle (frontpage only) controle of alle locale sites het doen
- sites.list-domains
maak een lijst met alle domeinen die met deze routines kunnen worden gecontroleerd
Andere commando's
bedoeld voor het managen van andere configuraties (bv. trac, php). Vooral die waar je niet zomaar bij kunt.
- addstartup
Voeg een init file toe aan de system startup sequence. Dit is nog geschreven op Ubuntu/Mint (update-rc.d)
- editconf <name(s)>
pas een bestand voor een gespecificeerde configuratie aan
- listconf
maak een lijst van de configuratiebestanden die met deze routines kunnen worden onderhouden
- modconf <name(s)>
zet aanpassingen voor configuratie bestanden over; vervang versie
- modconfa <name(s)>
modconf: backup & append versie
- modconfb <name(s)>
modconf: backup & replace versie
- diffconf
vergelijk alle of benoemde configuration bestanden die met deze routines kunnen worden onderhouden
- diffconfg
diffconf, grafische versie