upgrading a dozen of servers from 7.0 to 8.1

Radomskiy Yuriy yurius.r at yandex.ua
Fri Jan 21 14:12:10 UTC 2011


I have around 15 servers running FreeBSD 7.0 across the country.
I would like to upgrade them to 7.3 or even 8.1 using binary updates.
They are primary mail servers all running apache-2.0 + php5-5.2.10, mysql-server-5.1, exim-4.69, dovecot-1.1
They are almost identical - they were identical a couple of years ago, but now they have some minor differences (soft, settings, scripts)
Hardware is all the same.
All the servers are in production.

The steps I have to do and the questions about them i have:
1. update all soft to current versions (including change of config files)
apache - goto v2.2
php - goto v5.3
mysql - stick with 5.1
exim - goto 4.73
dovecot - goto 1.2.16
how can upgrading to apache 2.2 + php5.3 be done with minimal downtime?
can i upgrade or is it better to rebuild it from the scratch (because of major version changes)?

2. do a binary upgrade of OS according to handbook http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-upgrading-freebsdupdate.html

3. rebuil all the software again
portupgrade -af

I have two scenarios for this:
1. restore a server from a backup on a dedicated machine.
2. do all the upgrade procedures on this dedicated server.
3. clone this upgraded server to the original server.
4. Repeat this procedure for each server.
 - almost garanteed reliability.
 - need to sync data from the last backup with current one.
 - takes very long time.

1. restore one server from backup on a dedicated machine.
2. do all the upgrade procedures on this restored server.
3. write some sort of script that does the upgrate (or makes it easier).
4. upgrate all the servers (since they are almost identical) one at a time.
 - should be faster 
 - something might go wrong on some particular server(s).

Which method would you sudgest? 
Is there any other method or maybe enhancements ones to do the upgrade?
How can it be used that all servers are almost identical?
How can the process be automated?
Should i be looking into building binary packages of required software and redistributing them to the servers instead of building them from the ports tree (as it is done now)?


More information about the freebsd-questions mailing list