You are hereMonthly archive / Juni 2009

Juni 2009


Checklist servermigratie

Deze server verhuist binnenkort naar een nieuwe fysieke machine met volgende specs:

  • Disk: 10 GiB / , 175 GiB /home , 512 MiB swap
  • Memory: 2 GiB RAM
  • CPU: 1 VCPU Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz

Deze pagina is vooral bedoeld als documentatie voor mezelf.

Planning:

  1. DONE 20090610: DNS TTL verlagen van amedee.be, vangasse.eu, dhertefelt.be bij Gandi.
  2. BUSY 20090618: configuratie van intrepid².
  3. DONE 20090620: configuratie testen
  4. DONE 20090621: migratie data van intrepid naar intrepid².
  5. DONE 20090622: DNS records aanpassen + TTL verhogen van amedee.be, vangasse.eu, dhertefelt.be, alle andere domeinen.
  6. DONE 20090622: web + mail testen
  7. DONE 20090629: services down op intrepid

 
Te installeren/configureren op de nieuwe server (intrepid²):

  • admin
  • web
    • apache
    • mysql
    • php5
    • phpmyadmin
    • drupal
  • mail
    • postfix
    • postgrey
    • dovecot
    • procmail
    • fetchmail

Zie ook logging configuratiewijzigingen.

Intrepid²: logboek

Logging van al de kleine en minder kleine configuratiewijzigingen op intrepid².

  • 20090610
    • Locales configureren:
      sudo dpkg-reconfigure locales
      en_US.UTF-8 UTF-8
      nl_BE ISO-8859-1
      nl_BE.UTF-8 UTF-8
      nl_BE@euro ISO-8859-15
    • Geen locale voor root:
      sudo echo export LANG="C" >> /root/.bashrc
    • Software installeren:
      sudo aptitude install bash-completion bzip2 curl di \
           elinks dnsutils htop less localepurge lynx mc nano \
           ncdu netselect-apt patch rsync screen telnet \
           txt2regex
    • Webserver (Apache en aanverwanten) installeren
  • 20090615
    • Hetzner Aptitude mirror instellen (alleen voor packages, niet voor source). De uiteindelijke versie van /etc/apt/sources.list is nu:
      # Packages and Security Updates from the Hetzner Debian Mirror
      deb     ftp://mirror.hetzner.de/debian/packages  lenny          main contrib non-free
      deb     ftp://mirror.hetzner.de/debian/security  lenny/updates  main contrib non-free

      # Debian sources for lenny
      deb-src http://ftp.de.debian.org/debian/         lenny          main contrib non-free
      deb-src http://security.debian.org/              lenny/updates  main contrib non-free
      Reden:
      • Snellere downloads
      • Interne traffiek wordt niet aangerekend bij Hetzner.
      Meer informatie: http://wiki.hetzner.de/index.php/Hetzner_Aptitude_Mirror
  • 20090616
    • Users toevoegen:
      sudo useradd -m -s /bin/bash username
    • Wachtwoorden instellen:
      sudo passwd username
    • Mezelf toevoegen aan de sudoers met visudo:
      amedee  ALL=(ALL) ALL
  • 20090618
    • Dagelijks updates binnenhalen, maar niet installeren + wekelijks opkuis cache:
      amedee@intrepid:~$ sudo crontab -u root -e
      # m h  dom mon dow   command
        0 1  *   *   *     /usr/bin/aptitude --quiet update && /usr/bin/aptitude --quiet --download-only safe-upgrade
       10 1  *   *   1     /usr/bin/aptitude --quiet autoclean
  • 20090620
  • 20090628
    • Data versassen van oude server naar nieuwe server:
      sudo mkdir -p /home/oldserver
      sudo rsync -aczhP --stats --exclude dev --exclude proc --exclude sys --exclude tmp -e ssh root@intrepid.warp.be:/ /home/oldserver
  • 20090630
http://amedee.be/intrepid2-logging-monitoring

intrepid²: webserver

Installatie

Apache, PHP, MySQL en phpMyAdmin tesamen in één keer installeren met:

sudo aptitude install apache2 php5 imagemagick php5-imagick \
     mysql-server phpmyadmin php5-curl php5-dev php-pear make

Debian trekt zelf alle noodzakelijke afhankelijkheden binnen.

Kleine bugjes fixen

Apache gaf wel enkele waarschuwingen tijdens de installatie:

  • Starting web server: apache2apache2: apr_sockaddr_info_get() failed for intrepid
    apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    Oplossing:
    • Toegevoegd aan /etc/hosts:
      188.40.34.110   intrepid   intrepid.amedee.be   amedee.be
    • Toegevoegd aan /etc/apache2/httpd.conf:
      ServerName amedee.be
  • Setting up ssl-cert (1.0.23) ...
    hostname: Unknown host
    make-ssl-cert: Could not get FQDN, using "intrepid".
    make-ssl-cert: You may want to fix your /etc/hosts and/or DNS setup and run
    make-ssl-cert: make-ssl-cert generate-default-snakeoil --force-overwrite
    make-ssl-cert: again.
    Oplossing:
    sudo make-ssl-cert generate-default-snakeoil --force-overwrite

Mod-rewrite aanzetten

Onder andere Drupal heeft mod-rewrite nodig, voor clean URLs. Dus:

sudo a2enmod rewrite

In /etc/apache2/sites-enabled/000-default is er ook nog een aanpassing nodig:

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                #AllowOverride None
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

Dus AllowOverride None moet vervangen worden door AllowOverride All, anders werken de .htaccess-bestanden niet.

phpMyAdmin beveiligen

Ik vind het niet zo leuk dat om het even wie met phpMyAdmin kan klooien (ook al staat er een sterk wachtwoord op alle mysql-users. Daarom beveilig ik phpMyAdmin met mod_access door volgende aanpassing van /etc/apache2/httpd.conf:

<Directory /usr/share/phpmyadmin>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 10
    Allow from <mijn-ip-adres>
</Directory>

Van zodra de OpenVPN in orde is, gaat ook de regel Allow from <mijn-ip-adres> er uit, omdat de webserver dan te bereiken zal zijn via een 10.x.x.x adres.

Apache herstarten

Om al deze configuratiewijzigingen toe te passen, moet Apache herstart worden:

sudo /etc/init.d/apache2 restart

Websites overzetten

De websites draaien allemaal op één Drupal-installatie in /var/www maar wel met elk een eigen database.

Eerst de bestanden overzetten:

sudo rsync -aczhP -e ssh root@oldserver.amedee.be:/var/www /var/

Daarna de databases overzetten. Eerst een backup maken op de oude server:

mysqldump -u root -p --all-databases | bzip2 -c > databasebackup.sql.bz2

Vervolgens de backup kopiëren naar de nieuwe server en importeren in mysql:

scp oldserver.amedee.be:"~/databasebackup.sql.bz2" .
bzcat databasebackup.sql.bz2 | mysql -u root -p

Omdat de users database nu ook mee gekopieerd is, moet er ook nog een flush privileges gebeuren in mysql. Dit heb ik via phpMyAdmin gedaan.

Eindresultaat: alle websites zijn getransplanteerd van de oude server naar de nieuwe server. Er zijn nog een paar kleinigheden die nagekeken moeten worden, zoals tijdelijke import-directories voor Drupal, maar voor de rest werkt alles.

Mijn contactgegevens

Wie mij wil contacteren, kan dat als volgt doen:

Email
amedee [at] vangasse [dot] eu (ik check deze mailbox meermaals per dag)
Twitter
@amedee
Facebook
http://facebook.com/amedee.vangasse
LinkedIn
http://be.linkedin.com/in/amedee - als u een HR-mens bent, dan vindt u daar mijn CV.
Jabber, Google Talk
amedee [at] jabber [dot] belnet [dot] be (dit is géén emailadres)
amedee [dot] vangasse [at] gmail [dot] com (email wordt zelden gelezen, gelieve amedee [at] vangasse [dot] eu te gebruiken)
MSN
amedee [at] amedee [dot] be (opnieuw, dit is enkel voor MSN, niet gebruiken voor email)
ICQ
15097784
Skype
amedee.vangasse
GSM
+32 485 805 674
Ik neem niet op bij verborgen nummers. Mijn voicemail staat af, anders is dat wéér een extra kanaal om op te volgen.
SMS of WhatsApp kan uiteraard ook.
Snail Mail
Lepelhoekstraat 116
9100 Sint-Niklaas

intrepid²: ssh zonder wachtwoord

Voor wie nog geen RSA keypair heeft, lees eerst dit artikel: Password-less logins with OpenSSH.

Ik heb wel al een RSA keypair, dus voor mij is het gemakkelijk:

amedee@saruman { ~ }$ ssh-copy-id -i ~/.ssh/id_rsa.pub amedee@migration.amedee.be
amedee@migration.amedee.be's password:
Now try logging into the machine, with "ssh 'amedee@migration.amedee.be'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
gevolgd door:
amedee@saruman { ~ }$ ssh amedee@migration.amedee.be
Linux intrepid 2.6.26-2-xen-amd64 #1 SMP Fri May 29 00:30:34 UTC 2009 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
amedee@intrepid:~$
Bijna klaar. Nu alleen nog voor de security even password enabled root logins afzetten in /etc/ssh/sshd_config:
PermitRootLogin no
gevolgd door herstarten van de OpenSSH service:
/etc/init.d/ssh restart
Ziezo, weeral een klusje dat van de lijst geschrapt kan worden.

intrepid²: mailserver

http://holl.co.at/howto-email/
http://www.debianadmin.com/debian-mail-server-setup-with-postfix-dovecot...
http://www.linuxmail.info/postfix-smtp-auth-dovecot-sasl/
sudo aptitude install dovecot-imapd postfix postgrey policyd-weight procmail squirrelmail
sudo ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
sudo /etc/init.d/apache2 reload
rsync -crtzhP -e ssh intrepid.warp.be:"~/Maildir" .
/etc/aliases is aangepast + sudo newaliases

Intrepid²: logging en monitoring

htop

Installatie:
sudo aptitude install htop
Gebruik:
sudo htop

 

vnstat

Installatie:
sudo aptitude install vnstat
Database aanmaken:
sudo vnstat -u -i eth0
Gebruik:
watch vnstat

 

apachetop

Installatie:
sudo aptitude install apachetop
Gebruik:
sudo apachetop -f /var/log/apache2/access.log

 

mailtail.sh

Zelf geschreven scriptje:
#! /bin/bash
LOGFILE=/var/log/mail.log
SKIP='(dovecot|imap-login|fetchmail|postfix/anvil|qmgr.*removed|postgrey.*cleaning|timeout.after|lost.connection.after|policy-spf)'
tail -F --lines=100 --max-unchanged-stats=5 $LOGFILE | egrep -v $SKIP
Uitvoerbaar maken:
sudo chmod u+x /root/bin/mailtail.sh
Gebruik:
sudo /root/bin/mailtail.sh

 

apticron

Om dagelijks een mailtje te krijgen van beschikbare updates.
Installatie:
sudo aptitude install apticron
Da's alles! Apticron installeert zelf een cronjob en mailt naar root. Da's ok voor mij want /etc/aliases is al aangepast.

 

munin

Luc is zo vriendelijk om munin te draaien op zijn bakje. Ik moet alleen maar munin-node installeren:
sudo aptitude install munin-node
Luc z'n IP-adres toelaten in /etc/munin/munin-node.conf:
allow xxx.xxx.xxx.xxx
Tenslotte munin-node herstarten.
sudo /etc/init.d/munin-node restart
Enkele minuten later zijn er grafiekjes.

 

De hoofddoekenkwestie op die Antwerpse school

TODO: Reactie op @jokerenneboog nav http://www.onnozelheid.be/index.php/2009/06/25/de-hoofddoekenkwestie-op-...
Het valt toch maar op dat het alwéér in Antwerpen is. Ze kunnen daar een ferm pakske zagen. In plaats van een brug of een tunnel, zouden ze niet beter een muur rond Antwerpen zetten?

Is fanatiek atheïsme een religie?

Wie kent er nog het programma Lava van Kamagurka en Herr Seele? Daarin zat een sketch waarin ze 2 oude Grieken spelen die de catalogus met de nieuwe goden overlopen. De laatste in de rij is Atheos, god der ongelovigen.

Ik vind dat eigenlijk wel goed gevonden. Want als ik sommige fanatieke atheïsten bezig zie en hoor, dan vraag ik me soms af of zij vroeger op een internaat gezeten hebben en daar lastig gevallen zijn door priester-leraars. Gasten astemblieft, doe eens normaal. Van intelligente mensen verwacht ik wel wat rationeler gedrag.

For the record: ik omschrijf mezelf momenteel als een ignost (of theologisch noncognitivist). Wat is dat voor een beest? Wel, om het simpel uit te leggen, zijn er volgende antwoorden mogelijk op "de" geloofsvraag:

  • "ja" -> religie
  • "neen" -> atheisme
  • "ik weet het niet" -> agnosticisme
  • "Colorless green ideas sleep furiously" -> ignosticisme

Google dat maar eens! Tongue

Reclame... ;-)

Met dank aan
  • Jasmina
  • Celine
  • Pieter
  • Jeff
  • Hans
  • Jurgen
  • Jurgen
  • Marijke
  • Amedee
  • Erik
  • Danny
  • Sofie
  • Lars
  • Christophe
  • Peter
  • Jeroen
  • Jurgen
om mij een gratis herlading twv €15 te bezorgen!

Waar ben ik?