• Skip to primary navigation
  • Skip to main content

Towards a delicious future

  • home
  • about me
  • lost&found
  • login
  • sitesenkit
  • about

beheer

Managing WordPress via de command-line

11/11/2012 by Hans Pronk

keyboard

WordPress geldt vandaag de dag als het meest gebruikte blog-platform of beter gezegd content management systeem van het internet. Zo’n 63% van de ‘top-miljoen’ sites gebruikt WP als basis voor hun web-presence.
Door deze populariteit is er veel voor het platform beschikbaar, uiteenlopend van een keur aan standaard-template’s (theme’s) en alle denkbare uitbreidingen (plugins in WP-lingo) tot hosting en support.
Een minder mooi gevolg van deze populariteit is dat het ook een doelwit bij uitstek geworden is voor hackers. Een echt lek in de basis functionaliteit geeft je toegang tot de genoemde 63% van de top-sites op internet.
En omdat dergelijke problemen nu eenmaal optreden in de echte wereld komen er met grote regelmaat updates uit voor zowel de basis- als de extra functies van WordPress.
Een ieder die van WordPress gebruik maakt zou daarom eigenlijk met zeer grote regelmaat moeten controleren of er updates beschikbaar zijn en – zo ja – of deze geïnstalleerd kunnen worden.
Een klus die voor een beetje IT-afdeling dagelijkse kost is/zou moeten zijn, maar die in de praktijk voor veel individuen en bedrijven een grote uitdaging betekent.
Ik heb in elk geval zelf gemerkt dat je – zeker als je meerdere wp-sites hebt – er gauw een vergeet, en daarbij dat je vervolgens al je sites langs moet om de verschillende installaties weer up to date te brengen.

oa5_

Na een aantal pogingen om dit proces te stroomlijnen – leuk zo’n webinterface, maar wel ‘lastig’ te scripten – heb ik nu een tool gevonden die het mogelijk maakt dit 1) via de commandline uit te voeren en 2) in hoge mate te automatiseren.
Het product heet overigens WordShell en is het product van David Anderson, een zendeling die in Kenia werkzaam is en een tool nodig had om een groot aantal WordPress websites op basis van de command-line te managen, een noodzaak gegeven de internet connectiviteit aldaar.

De eerste ervaringen zijn ondertussen zeer positief. Je kunt bijvoorbeeld met één commando een willekeurig aantal WP-sites controleren op updates en deze installeren. Het is verder een behoorlijk robuust geheel, zo wordt voor elke update een backup van een en ander gemaakt en je kan bij eventuele mishaps deze ook weer eenvoudig ongedaan maken. En omdat het een command-line tool is kan ik nu ook simpel dagelijks de verschillende WP-sites automatisch checken en het resultaat ervan in mijn mailbox laten vallen.
Kortom: een goed doordacht tool wat na minder dan 24 uur gebruik al onderdeel van mijn workflow geworden is, e.g. een aanrader!

En om een idee te geven van de capabilities hier een overzicht (van de site) van de features van het programma


Feature List WordShell

  • Full plugin management
  • Full support for themes
  • Work with child themes
  • Full support for managing WordPress core
  • Database management
  • Full version management for plugins, themes, core and databases
  • Disaster-recovery capable: does not assume your site is working
  • Backs up and restores any extra files you have added to WordPress core. Tests your site before + after any change operations.
  • Hugely configurable – but by default, “does the right thing”
  • Manage maintenance mode
  • Works on a wide variety of site types
  • Remote log-in mode:

NB: Wordshell is overigens niet gratis maar is IMHO het geld volledig waard! Het draait probleemloos op Linux en zou in principe op alle Unix-achtigen moeten werken.

© Hans Pronk / 2012

Filed Under: Tech-notes Tagged With: beheer, wordpress, wordshell

Mosh, high-latency terminal-emulatie done right!

05/08/2012 by Hans Pronk

beheer en terminals

Hoewel voor de gemiddelde gebruiker een terminal-sessie met een server of bulletin-board toch echt iets uit het verleden is, is dit voor een ieder die iets met beheer doet nog steeds de standaardprocedure voor veel beheerwerk. Er zijn echter weinig specifieke programma’s beschikbaar voor dit nobele beheerwerk. Waarschijnlijk komt dit doordat het in toenemende mate een niche-markt is geworden EN omdat goede connectiviteit steeds meer een gegeven is. Want zolang je maar via een stabiele high-speed/low-latency verbinding toegang tot de host-systemen kan verkrijgen voldoen de standaard programma’s als ssh goed.

Ik heb echter aan den lijve ondervonden dat zodra je de wereld van satelliet-internet binnenstapt ssh daar niet zo geschikt voor is. Elke toetsaanslag wordt eerst met een latency van zo’n 800 msec naar de host gezonden die daarna met een zelfde vertraging de scherm-update terug stuurt. Het effect hiervan in de praktijk is dat het best even duurt voor je een ingetypt karakter ook daadwerkelijk op je scherm ziet wat nogal vervelend werkt. De kern van het probleem is dat in de klassieke terminal oplossing de client wel heel erg dom is, waardoor voor alle acties de host de hoofdrol speelt. Dit geeft in een high-latency omgeving een vrijwel onwerkbare situatie die een andere aanpak noodzakelijk maakt.

Mijn eerste oplossingsrichting behelsde het gebruik van telnet3270, een terminal-protocol waarbij een behoorlijk deel van de verwerking op de client gebeurt waardoor de invloed van latency minder wordt. Ik heb namelijk begin jaren negentig een lezing bijgewoond die over problemen met terminals over satellietverbindingen door de US-army in Desert-Storm ging, die dit toen met telnet3270 opgelost had. Een oplosssing uit de oude doos dus. Helaas bleek dat telnet3270-programmatuur voor zowel hedendaagse mac’s als linux-varianten niet beschikbaar is en verder kleven er aan telnet en z’n varianten nogal wat security problemen. Exit telnet3270 dus!

mosh, geen stream maar state machine

Een post op de blog van Jan-Piet Mens attendeerde me op het bestaan van mosh, een nieuwe aanpak voor terminal-verbindingen met remote systemen. Na een korte test bleek deze aanpak een uitstekende oplossing voor mijn uitdaging. En inderdaad, ik ben Jan-Piet Mens een glas bier schuldig :-).

De kern van mosh is dat het in tegenstelling tot traditionele systemen (die feitelijk niet meer doen dan op basis van streams toetsaanslagen van de client heen- en schermupdates van de server terugsturen) een layer-4 state-machine is. De client en de server kennen beiden de eigen status en de veranderingen daarin die ze in continuïteit met elkaar synchroniseren. Ergo, als je bij mosh een toets indrukt zie je het resultaat lokaal direct op het scherm terwijl de client op de achtergrond de status op de host update. Mosh “voorspelt” dus eigenlijk de veranderingen op de host. Netto resultaat: geen optische latency meer bij het typen. Bijkomend voordeel is dat wanneer de verbinding even wegvalt, bijvoorbeeld bij gebruik van Wifi- of 3G-verbindingen, bij herstel ervan de sessie nog steeds bestaat en je weer verder kunt waar je gebleven was. Dit geldt ook als je in de tussentijd een ander ip-adres toegewezen hebt gekregen, iets waar bijvoorbeeld ssh en telnet niet tegen kunnen. Kortom, het werkt ook bij roaming en flaky internet verbindingen.

Voor de initiële connectie wordt een ssh-sessie gestart die de remote-server (in user-space, geen root acces nodig dus) start en vervolgens zichzelf termineert. De client-sessie wisselt vanaf dat moment status-updates uit met de remote-server.
En ja, mosh is secure, het gebruikt AES-128 encryptie en authenticatie (in OCB mode). Om dit alles mogelijk te maken gebruikt mosh geen TCP maar is UDP gebaseerd dus UDP verkeer tussen client en host moet mogelijk zijn.

conclusie

Mosh is onderdeel van mijn dagelijkse routine geworden. Met dit programma kan ik over high-latency vebindingen toch goed met remote hosts werken. Mosh heeft daarom in mijn huidige setup ssh vervangen omdat het voor mij – zover het om pure terminal emulatie gaat – een superieur alternatief is.

verdere wetenswaardigheden

Mosh is geschreven door Keith Winston, het is Open Source en isuitgebracht onder een GNU GPL 3 licentie. Mosh werkt overigens (nog) niet met IPv6 en dus ook niet met IPv4/IPv6 roaming. Verder mist er ook een iPad (en Android) client voor mosh. Het eerste valt voorlopig goed mee te leven maar een iPad client zou me wel blij maken

externe links

  • mosh home
  • research paper over Mosh, USENIX ATC 2012
  • post ‘standalone-sysadmin’ over mosh
  • post Jan-Piet Mens over mosh

© Hans Pronk / 2012

Filed Under: Tech-notes Tagged With: beheer, mosh

© 2025 Towards a delicious future. All Rights Reserved.