Changes between Initial Version and Version 1 of SynAutomation


Ignore:
Timestamp:
08/08/08 00:10:41 (16 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SynAutomation

    v1 v1  
     1= Syn-3 automatisch dingen laten doen =
     2
     3De filosofie van Syn-3 is dat alles automatisch en intelligent moet gebeuren, zonder dat de user zich hier druk om hoeft te maken. Deze pagina legt uit hoe je dit optimaal kan doen.
     4
     5
     6== Opstarten van services (daemons) ==
     7
     8Services kun je gewoon in /service te staan, zoals beschreven bij SynServices.
     9
     10Het update systeem zorgt zelf dat de service gestopt word en gerestart na het installeren van het pakketje.
     11
     12Zet de run, start en stop scripts in je package svn directory en pas de slackbuild aan zodat ze naar de juiste plek gekopieerd worden. (/service/servicename/...)
     13
     14== Post installatie scripts ==
     15
     16Vaak is het nodig om na de installatie van een pakketje nog dingen te doen. Bijvoorbeeld users aanmaken of databases vullen.
     17
     18Dit kun je eenvoudig doen door een executable script te maken in '''/etc/postinst.d/post.''packagename'''''.
     19
     20Na installatie worden deze scripts uitgevoerd:
     21
     22 * Als het script exit met code 0 dan word de x-bit verwijderd zodat het script niet meer uitgevoerd word.
     23 * Als het script exit met een andere code blijft het x-bit staan. Bij een volgende postinstall run word het script opnieuw uitgevoerd. De gebruiker word op de hoogte gesteld van deze fout via het monitoring systeem. SynMonitor.
     24
     25Wellicht is het handig om in bestaande post installatie scripts te kijken. Als je een service down wilt hebben tijdens de post installatie zal je script er ongeveer zo uit zien:
     26{{{
     27svcstop /service/naam || exit 1
     28...doe allerlei shit
     29svcreset /service/naam || exit 1
     30}}}
     31
     32Gebruik dus svcreset ipv svcstart, omdat je voorkomen dat je dingen start die de user eigenlijk down wou hebben.
     33
     34Denk erom dat een pakketje later nog een keer geinstalleerd kan worden (bij een update bijvoorbeeld.) Zorg dus dat je script wat intelligenter worden en rekening houden met bestaande instellingen en degelijke.
     35
     36Bij de eerste installatie van een Syn-3 machine worden de post installatie pas uitgevoerd nadat het systeem helemaal geboot is.
     37
     38=== Dingen alleen bij eerste installatie laten doen ===
     39
     40Soms wil je dat dingen slechts 1x gebeuren en bij een update niet meer. Het down gooien van de dhcp server is hier een goed voorbeeld van:
     41
     42{{{
     43[Syn-3] root@darkstar.example.net /service/dhcpd# cat /etc/postinst.d/post.dhcp
     44#!/bin/bash
     45
     46#first time installation?
     47if [ `ls /var/log/packages/dhcp-* 2>/dev/null|wc -l` == "1" ]; then
     48        #make sure dhcpd is down by first time installation
     49        touch /service/dhcpd/down
     50fi
     51
     52exit 0
     53}}}
     54
     55
     56== Config files ==
     57
     58Configfiles worden normaal gesproken gewoon overschreven net als alle andere files.
     59
     60Wil je dit niet, geef dan de config file een naam die eindigd op '''.new'''. Het systeem overschrijft dan bestaande files niet. Je kan je postinstall script eventueel zo slim maken om simpelle wijzigingen aan bestaande configfile te doen.
     61
     62== Backup systeem ==
     63
     64Alle files die je onder /home/system/ zet worden zowieso gebackupped. Zorg dus dat alle files waar de user en eindusers wijzigingen in kunnen hier in een subdir staan! Dus '''/home/system/''packagename'''''.
     65
     66Als je een database of iets anders hebt wat 'gedumpt' moet worden voor een backup, dan kun je hiervoor een speciale backup en restore scripts maken in /usr/backup. Kijk in SynBackup hoe dit moet. Een backup word altijd 'hot' gemaakt: services worden dus niet uitgeschakeld tijdens een backup.
     67
     68== Iets uitvoeren na het booten ==
     69
     70Wil je iets automatisch uitvoeren tijdens het booten, zet deze scripts dan in /etc/boot.d/ en maak ze executable. Symbolic links zijn ook toegestaan.
     71
     72De exit code word gechecked en de user word op de hoogte gesteld van eventuele errors. (exit anders dan 0)
     73
     74== Een taak schedulen ==
     75
     76Moet er iets elk uur/dag/week/maand gebeuren, plaats dan je script in de /etc onder cron.daily    cron.hourly   cron.monthly  of cron.weekly.
     77
     78Een cronjob voor root kun je automatisch toevoegen in een postinstall file, maar de voorkeur heeft dat je dit niet doet! Dit kan problemen opleveren als je dit niet goed script. Gebruik dus altijd de directorys in /etc als het kan.
     79
     80== Monitoring en logging voor de eind gebruiker ==
     81
     82Wil je een tekst naar de logs, console of eindgebruiker sturen?
     83
     84Wil je de status van een bepaald iets bijhouden zodat de user hiervan op de hoogte gesteld word via de SCC en email?
     85
     86Kijk dan bij SynMonitor.
     87