sterretje-cluster:cluster-hosting_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:

/local/applicatie2.3 -> /software/applicatie2.3.45 

Applicatie 2.3 krijgt een belangrijke update, de geüpdatete versie plaatsen we er naast. We passen de symlink aan:

/local/applicatie2.3  -> /software/applicatie2.3.56

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:

/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

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:

/local/foo -> /software/foo-2.71

En de rest van de linkjes onder /local zo:

/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

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:

/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

Het actief maken is nu een simpele kwestie van het vervangen van een enkele symlink:

/local/foo -> /software/foo-2.71

door:

/local/foo -> /software/foo-3.14

———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/10/17 11:12
  • (external edit)