sterretje-cluster:cluster-hosting_local-en-software

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sterretje-cluster:cluster-hosting_local-en-software [2020/05/20 05:30] (current)
Line 1: Line 1:
 +==== Filesysteem layout: /local en /software ====
 +Een vergelijkbare methode om te kunnen schakelen tussen onderliggende storage wordt ook door ons toegepast voor de distributie van software. Zo kan er snel geschakeld worden naar andere (minor) versies van software. Via deze constructie kan dat zonder dat de oude minor versie vervangen hoeft te worden of dat de configuratie bij elke instantie veranderd moet worden. /local zijn als het ware de paden onder /e en /software zijn vergelijkbaar met /d. 
 +
 +Voorbeeld:
 +<​code>​
 +/​local/​applicatie2.3 -> /​software/​applicatie2.3.45 ​
 +</​code>​
 +
 +//​Applicatie 2.3 krijgt een belangrijke update, de ge├╝pdatete versie plaatsen we er naast. ​
 +We passen de symlink aan:// ​
 +<​code>​
 +/​local/​applicatie2.3 ​ -> /​software/​applicatie2.3.56
 +</​code>​
 +
 +Hieronder is het relevante stukje uit de beheer documentatie geknipt:
 +
 +''​---------begin knip hier---------''​
 +
 +In onze setup gebruiken we de directories ''/​local''​ en
 +''/​software''​ om onze software in te zetten. Door slim gebruik te
 +maken van symlinks kunnen we hier heel eenvoudig de versies van de
 +gebruikte software veranderen. De software benader je uiteindelijk door
 +''/​local/​bin''​ en evt. ''/​local/​sbin''​ in je ''​PATH''​ te
 +hebben.
 +
 +Stel je hebt een software pakket "​foo"​ met versie nummer 2.71. Dan wordt
 +de software neergezet onder ''/​software/​foo-2.71''​. Stel dat "​foo"​
 +bestaat uit 2 executables ''​bar''​ en ''​baz''​ met bij horende
 +manpages, dan krijg je zo'n structuur:
 +<​code>​
 +/​software/​foo-2.71/​bin/​bar
 +/​software/​foo-2.71/​bin/​baz
 +/​software/​foo-2.71/​man/​man3/​bar
 +/​software/​foo-2.71/​man/​man3/​baz
 +</​code>​
 +
 +Om dit te benaderen moeten er nu in ''/​local/​bin''​ en in
 +''/​local/​man/​man3''​ wat symlinkjes gezet worden. Deze worden niet
 +direct naar ''/​software/​foo-2.71/​...''​ gelinked maar deze lopen via
 +een extra symlinkje in ''/​local''​. Dit extra linkje ziet er zo uit:
 +
 +<​code>​
 +/local/foo -> /​software/​foo-2.71
 +</​code>​
 +
 +En de rest van de linkjes onder ''/​local''​ zo:
 +
 +<​code>​
 +/​local/​bin/​bar -> /​local/​foo/​bin/​bar
 +/​local/​bin/​baz -> /​local/​foo/​bin/​baz
 +/​local/​man/​man3/​bar -> /​local/​foo/​man/​man3/​bar
 +/​local/​man/​man3/​baz -> /​local/​foo/​man/​man3/​bar
 +</​code>​
 +
 +Dit schept een werkend geheel. En nu het slimme stuk. Er komt een
 +belangrijke nieuwe versie van "​foo"​ uit, versie 3.14. En je wilt hier
 +naar upgraden. Deze versie zet je weer onder ''/​software''​ neer, en
 +wel zo:
 +
 +<​code>​
 +/​software/​foo-3.14/​bin/​bar
 +/​software/​foo-3.14/​bin/​baz
 +/​software/​foo-3.14/​man/​man3/​bar
 +/​software/​foo-3.14/​man/​man3/​baz
 +</​code>​
 +
 +Het actief maken is nu een simpele kwestie van het vervangen van een
 +enkele symlink:
 +
 +<​code>​
 +/local/foo -> /​software/​foo-2.71
 +</​code>​
 +
 +door:
 +
 +<​code>​
 +/local/foo -> /​software/​foo-3.14
 +</​code>​
 +
 +''​---------einde knip hier---------''​
 +
 +Concreet betekent dit dat bv de mysql software staat onder /​local/​mysql,​
 +maar dat een mysql instantie leeft onder /e/db/...
 +
 +Zelfde voor apache met /​local/​apache en /e/fp/...
 +
 +Om te zien welke versies actief zijn, kan men ''​ls -l /​local''​ doen, dat
 +geeft een lijst met symlinks naar de exacte versies onder /software.
 +
 +Om niet eindeloos je $PATH aan te hoeven passen is er ook nog de
 +/local/bin directory, deze heeft voor elk geinstalleerd pakket
 +(dat zelf onder /​local/​pakket leeft)
 +een setje symlinks onder /local/bin en /local/man staan naar
 +/​local/​pakket/​bin.
 +
 +Bijvoorbeeld,​ het mysql dump tool staat in /​local/​mysql/​bin/​mysqldump.
 +Maar, wij hebben ook een symlink /​local/​bin/​mysqldump naar
 +/​local/​bin/​mysqldump.
 +Het nut hiervan is dat alleen /local/bin in je $PATH hoeft te staan, om
 +bij alle geinstalleerde pakketten te kunnen.
  
  • sterretje-cluster/cluster-hosting_local-en-software.txt
  • Last modified: 2020/05/20 05:30
  • (external edit)