4. Installatie van een release op een Brocade server

Oud BVV nr 2999

4.1. Abstract

Op het ogenblik dat de software is uitgerijpt en dat een nieuwe release van Brocade kan worden ingepakt, dienen nog een aantal voorafgaandelijke dingen te gebeuren. Dit document beschrijft ze. Het is dan ook een zuiver technisch betoog. In dit stuk documentatie komt geregeld de benaming release x.xx voor. Hierbij stelt x.xx de gangbare release voor.

4.2. Algemeen

Er zijn 3 servers betrokken bij de installatie van een release.

  • dev.anet.be: de ontwikkelmachine
  • anet.be: de eerste productiemachine waarop de release werd geïnstalleerd
  • target: de productiemachine waarop nu de release wordt geïnstalleerd.

Algemene richtlijnen:

  • Werk op elke server met screen
  • Hou bij hoe lang de diverse operaties duren
  • Installeer nooit vooraleer de release werkt op anet.be
  • Controleer de backup van target
  • Lees op voorhand de release notes
  • Voer de elementen uit die vooraf moeten worden uitgevoerd.

Beslis of de webserver minimaal moet werken: het voordeel is dat er niemand acties kan uitvoeren op de webserver terwijl er toch een boodschap is voor de gebruiker.

Er zijn echter twee nadelen:

  • niemand kan werken op de server terwijl er toch weinig hinder is
  • bepaalde testen die gebruik maken van de webserver gaan falen.

Indien de productieserver een aparte documentserver voert, dan moet ook de release worden geïnstalleerd op deze server. Dit moet tegelijkertijd gebeuren.

Je kan eenvoudig testen of er een aparte documentserver is:

# op anet.be (werk als root)
export DR=`delphi -key docman-redirect`
export DH=`delphi -key docman-host`
test 1 = $DR && echo "Document server: " $DH

4.3. Administratief

Bij de eerste installatie op een productiesysteem (op anet.be) van de nieuwe release dient de ontwikkelgroep te worden verwittigd: de ontwikkelaars moeten weten dat de beta release in productie wordt genomen en dat dit gevolgen heeft voor verdere aanpassingen aan de release.

Na de installatie dienen de ontwikkelaars en gebruikers ook op de hoogte te worden gebracht.

4.4. Eerste stappen op dev.anet.be

Voer uit:

# op anet.be (werk als root)
export RELEASE=x.xx

Maak een aantal directories aan

mkdir -p /library/cd/Install$RELEASE/globals
mkdir -p /library/cd/Install$RELEASE/release/always
mkdir -p /library/cd/Install$RELEASE/release/current
mkdir -p /library/cd/Install$RELEASE/client

Updating van de postcodes:

  • Download een lijst <http://www.bpost.be/site/nl/residential/customerservice/search/postal_codes.html>__ met de actuele postcodes:

  • Converteer dit bestand naar een *.csv bestand

    • gebruik UTF-8 codering
    • bewaar in: /universe/postcodes/zipcodes.csv
  • Check /universe/postcodes in

  • Verifieer de import

Deze actie kan een paar dagen voor installatie op anet.be worden uitgevoerd.

Zet de documentatie (onder andere de release documentatie) up-to-date:

docpublish -rebuild

Controleer of deze ook daadwerkelijk beschikbaar is.

4.5. Voorbereiding op anet.be

Voer uit:

# op anet.be (werk als root)
export RELEASE=x.xx

Breng het software archief up-to-date.

Voer dan uit:

rm -rf /library/tmp/sr
mkdir -p /library/tmp/sr
software -brocade /library/tmp/sr
scp /library/tmp/sr/* dev.anet.be:/library/cd/Install$RELEASE/client

Deze actie kan een paar dagen voor installatie op anet.be worden uitgevoerd.

4.6. Voorbereiding op de productieserver

Basis software

Actualiseer de basissoftware: Python, Apache, PHP, Java, OpenLDAP, OpenSSH, Cache of GT.M. Gebruik dezelfde versies als die op de ontwikkelmachine zijn geïnstalleerd.

Indien op deze machien Brocade reeds werd geïnstalleerd, doe je er goed aan om de bestaande software bij te werken:

qtech -sync

Controleer de M configuratie : zo moet minstens een M global kunnen worden weggeschreven met 500 bytes in het linkerlid en 1.000.000 bytes in het rechterlid. U kan dit automatisch checken vanaf release 4.00, door uit te voeren:

qtech -project check /universe/os
Foutendatabanken op de diverse servers
Check nog eens de foutendatabanken. Controleer vooral de productieservers.
Apache ERROR-logs
Bekijk de errorlogs van de Apache webserver. Controleer vooral de productieservers.
Release BVV
Vul de release specifieke documentatie :file:/release/current/release.rst aan [link].

4.7. Op de ontwikkelserver

Analyseer de code op de ontwikkelmachine dev.anet.be

mkdir -p /library/process/duration
echo "qtech -admin sweep" > /library/process/duration/log
date >> /library/process/duration/log
find /library/tmp -mindepth 1 -delete
mutil -kill cache
delphi -add qtech-rcompile-disabled 1
qtech -admin sweep
delphi -del qtech-rcompile-disabled
date >> /library/process/duration/log
echo >> /library/process/duration/log

Kijk de logfiles na in /library/tmp/qtech en los de problemen op.

Bouw de CD omgeving. Dit wordt de CD omgeving genoemd omdat alle instrumenten die nodig zijn om Brocade te installeren hier worden geplaatst.

Voer uit:

# op dev.anet.be (werk als root)
export RELEASE=x.xx

Vervolgens:

cd /library/cd/Install$RELEASE
rm -rf /library/tmp/release
mkdir -p /library/tmp/release
cd /library/tmp/release
qtech -co /release/always
mutil -zwrout URE cwd=/library/cd/Install$RELEASE/globals
cd /library/tmp/release
qtech -ci
cd /library/cd/Install$RELEASE/release/always
qtech -co /release/always

Bundelen van de Brocade software in een bootstrap:

# op dev.anet.be (werk als root)

mkdir -p /library/process/duration
echo "qtech -admin bundle" >> /library/process/duration/log
date >> /library/process/duration/log
find /library/tmp -mindepth 1 -delete
mutil -kill cache
qtech -admin bundle version=$RELEASE
\cp brocade-$RELEASE.zip /library/cd/Install$RELEASE
\cp bootstrap-$RELEASE.py /library/cd/Install$RELEASE
date >> /library/process/duration/log
echo >> /library/process/duration/log

4.8. Afwerking op de target machines

Voer uit:

# op target (werk als root)
export RELEASE=x.xx

Maak plaats:

find /library/tmp -mindepth 1 -delete
mutil -kill glo 'Z*'
mutil -kill glo 'K*'
mutil -kill cache  # werkt slechts vanaf release 4.20

Stop systeem instrumenten:

service procman stop
background -stop
sip2server -stop
explorator -daemon stop

Zet eventueel minimal web aan:

web -minimal

Voer uit:

mkdir -p /library/process/duration
echo "installatie" >> /library/process/duration/log
date >> /library/process/duration/log
mkdir -p /tools
scp dev.anet.be:/library/cd/Install$RELEASE/bootstrap-$RELEASE.py /tools
scp dev.anet.be:/library/cd/Install$RELEASE/brocade-$RELEASE.zip /tools
cd /tools
export count=`delphi -key doc-sphinx-enabled | wc -c`
test 0 -eq $count && delphi -add doc-sphinx-enabled 0
export sphinx=`delphi -key doc-sphinx-enabled`
delphi -add doc-sphinx-enabled 0
py bootstrap-$RELEASE.py
qtech -sync
delphi -add doc-sphinx-enabled $sphinx
mutil -exe 'd %TrnsLgA^uwwwscr'
delphi -refresh
upython
qtech -py /release/always/repository.py
qtech -py /release/always/pythonlib.py
qtech -py /release/always/inxmenu.py
qtech -py /release/always/charloup.py
qtech -py /release/always/buildmenu.py
qtech -py /release/always/inxeusers.py
qtech -project install `delphi -key layout-project`
mutil -exe 'd %EntryAl^bopspars'
date >> /library/process/duration/log
echo >> /library/process/duration/log
httpd -t && service web stop && service web start

4.9. Werkplannen

Voer het werkplan uit!

4.10. Afwerking

Boot de target:

# op target (werk als root)
init 6

Na het heropstarten:

# op target (werk als root)
docpublish -rebuild