Force early oidentd upgrade before kernel-2.6-cn overwrites the config.
[carnet-upgrade.git] / doc / carnet-upgrade.sgml
1 <!doctype debiandoc system>
2 <debiandoc>
3
4   <book>
5     <titlepag>
6       <title>CARNet Debian 4.0 (etch) nadogradnja</title>
7       <author>
8         <name>Zoran Dželalija</name>
9       </author>
10       <author>
11         <name>Ivan 'ico' Rako</name>
12       </author>
13       <author>
14         <name>Valentin Vidić</name>
15       </author>
16       <version>Verzija 4.0.0</version>
17
18       <abstract>
19         Ovaj priručnik opisuje postupak nadogradnje CARNet Debian
20         distribucije sa verzije 2.1 (sarge) na verziju 4.0 (etch).
21         CARNet Debian 4.0 (etch) je treća generacija CARNet Debian
22         distribucije i temelji se na Debian GNU/Linux 4.0 (etch) distribuciji.  
23         Priručnik je zamišljen kao pomoć CARNetovim sistem inženjerima koji
24         na svojim poslužiteljima imaju instaliran CARNet Debian i
25         trebao bi obuhvatiti cjelokupan postupak nadogradnje, kao i 
26         tipične probleme na koje se može naići. Za tu svrhu pripremili smo
27         paket carnet-upgrade verzije 4.0, koji se nalazi na CARNetovom FTP
28         poslužitelju u Sarge repozitoriju paketa.
29       </abstract>
30     </titlepag>
31
32     <toc detail="sect1">
33
34     <chapt id="backup">
35       <heading>Backup</heading>
36
37       <sect><heading>Datotečni sustav</heading>
38         <p>
39         Prije bilo kakve veće instalacije ili nadogradnje, strogo se
40         preporučuje izvršiti backup trenutnog stanja sustava, tako da u
41         slučaju bilo kakvih problema bude moguć povratak na stanje prije
42         nadogradnje. Nakon izvršenog backupa treba provjeriti mogu li se
43         vratiti podaci s takve kopije, npr. vraćanjem sadržaja na neko
44         drugo računalo, rezervni disk, ili barem probnim vraćanja nekoliko
45         datoteka. Datotečni sustav se može backupirati na uobičajeni način,
46         korištenjem tračnog uređaja (dump/restore, tar...), ili drukčije. Za
47         ovu svrhu preporučujemo backup svih podataka (level 0 backup).
48         Također je potrebno osigurati ispravnost pohranjenih podataka, što
49         znaci da baze podataka (OpenLDAP, MySQL, PostgreSQL) treba
50         backupirati na ispravan način, jer backup datotečnog sustava za
51         takve servise nije dovoljan i ne garantira ispravnost i
52         konzistenciju podataka. Svaka baza podataka donosi zasebne programe
53         koji omogućavaju izvoz sadržaja baze u oblik pogodan za backup.
54         </p>
55       </sect>
56
57       <sect><heading>OpenLDAP</heading>
58         <p>
59         Prije backupa OpenLDAP-a potrebno je spustiti FreeRADIUS i OpenLDAP
60         servise. FreeRADIUS je potrebno ugasiti da bi CMU usluga nastavila
61         funkcionirati za vrijeme backupa, jer lokalni FreeRADIUS daemon radi
62         neispravno ukoliko je LDAP poslužitelj nedostupan. To radite na
63         sljedeći način:
64
65 <example>
66 # /etc/init.d/freeradius stop
67 # /etc/init.d/slapd stop
68 </example>
69         </p>
70
71         <p>
72         Backup OpenLDAPa napravite koristeći naredbu <prgn>slapcat</prgn>:
73
74 <example>
75 # slapcat -l /var/backups/slapcat.cn-upgrade
76 </example>
77         </p>
78
79         <p>
80         Umjesto <file>/var/backups/slapcat.cn-upgrade</file> možete upisati
81         bilo koje ime za izlaznu datoteku. Nakon toga možete vratiti servise
82         u radno stanje:
83
84 <example>
85 # /etc/init.d/slapd start
86 # /etc/init.d/freeradius start
87 </example>
88         </p>
89
90         <p>
91         Za više informacija o backupu OpenLDAP baze pogledajte man stranicu
92         naredbe <prgn>slapcat</prgn>.
93         </p>
94       </sect>
95
96       <sect><heading>MySQL</heading>
97         <p>
98         Prilikom backupa MySQL baze, mysqld poslužitelj mora biti pokrenut.
99         Backup možete izvršiti na sljedeći način:
100
101 <example>
102 # mysqldump --all-databases > /var/backups/mysqldump.sql.cn-upgrade
103 </example>
104         </p>
105
106         <p>
107         Za više informacija o backupu MySQL baze pogledajte
108         <url name="MySQL dokumentaciju" 
109         id="http://dev.mysql.com/doc/refman/4.1/en/disaster-prevention.html">.
110         </p>
111       </sect>
112
113       <sect><heading>PostgreSQL</heading>
114         <p>
115         Backup PostgreSQL baze podataka možete napraviti na sljedeći način:
116
117 <example>
118 # su - postgres -c /usr/lib/postgresql/bin/pg_dumpall \
119     >/var/lib/postgres/postgres.sql.cn-upgrade
120 # mv /var/lib/postgres/postgres.sql.cn-upgrade /var/backups
121 </example>
122         </p>
123
124         <p>
125         Za više informacija o backupu PostgreSQL baze podataka pogledajte
126         <url name="PosgreSQL dokumentaciju"
127         id="http://www.postgresql.org/docs/7.4/static/backup.html">.
128         </p>
129       </sect>
130     </chapt>
131
132     <chapt id="nadogradnja">
133       <heading>Nadogradnja</heading>
134
135       <sect>
136         <heading>Prije početka</heading>
137         <p>
138         Prije instalacije paketa za nadogradnju i same nadogradnje, potrebno
139         je izvršiti nadogradnju tekuće inačice distribucije na najsvježije
140         pakete. To se najjednostavnije izvodi sa naredbom
141         <prgn>apt-get</prgn>:
142
143 <example>
144 # apt-get update
145 # apt-get dist-upgrade
146 </example>
147         </p>
148       </sect>
149
150       <sect><heading>Paket carnet-upgrade</heading>
151         <p>
152         U paketu <prgn>carnet-upgrade</prgn> nalazi se istoimena skripta,
153         koja služi za nadogradnju poslužitelja. Skripta carnet-upgrade
154         zapisuje izvršene radnje u datoteku
155         <file>/var/log/carnet-upgrade.log</file>, koju možete konzultirati u
156         slučaju nepredviđenih problema da bi ustanovili do koje faze je
157         skripta stigla s radom. Pored skripte, u paketu se nalazi i
158         kompletna dokumentacija. Paket se instalira na uobičajen način:
159
160 <example>
161 # apt-get update
162 # apt-get install carnet-upgrade
163 </example>
164         </p>
165
166         <p>
167         Time ste instalirali paket koji je potreban za upgrade. Ukoliko
168         paket nije dostupan, postoji mogućnost da nemate ispravne postavke
169         za repozitorij CARNetovih paketa u
170         <file>/etc/apt/sources.list</file> datoteci, koja treba sadržavati
171         sljedeći redak:
172
173 <example>
174 deb http://ftp.carnet.hr/carnet-debian carnet-sarge main non-free
175 </example>
176         </p>
177
178         <p>
179         To je uobičajena konfiguracija popisa repozitorija na CARNet Debianu
180         2.x. Ako tog retka nema, dodajte ga i ponovite postupak instalacije
181         paketa.
182         </p>
183       </sect>
184
185       <sect><heading>Nadogradnja</heading>
186         <p>
187         Poslije napravljenog backupa i dist-upgradea, možemo pokrenuti
188         skriptu za nadogradnju. Preporučamo je pokrenuti unutar naredbe
189         script, da imate zabilježen log svih akcija i problema):
190
191 <example>
192 # script upgrade.log
193 Script started, file is upgrade.log
194 # carnet-upgrade
195 </example>
196         </p>
197
198         <p>
199         Pojaviti će se pozdravni prozor koji podsjeća na potrebne
200         predradnje:
201
202 <example>
203 +-----------------------------------------------------------------+
204 | Nadogradnja CARNet Sarge->Etch                                  |
205 +-----------------------------------------------------------------+
206 | PAZNJA! PAZNJA!                                                 |
207 |                                                                 |
208 | Pokrenuli ste proceduru nadogradnje CARNet Linux distribucije.  |
209 | Podsjecamo Vas da prije ove skripte svakako pokrenete 'apt-get  |
210 | dist-upgrade'. Strogo preporucujemo i backup cijelog sustava, s |
211 | posebnim naglaskom na instalirane baze podataka poput MySQL i   |
212 | PostgreSQL.                                                     |
213 |                                                                 |
214 | Takodjer pazljivo procitajte dokumentaciju za ovu nadogradnju   |
215 | koja se nalazi u:                                               |
216 |                                                                 |
217 |  /usr/share/doc/carnet-upgrade/carnet-upgrade.pdf               |
218 |                                                                 |
219 | Zelite li nastaviti?                                            |
220 +-----------------------------------------------------------------+
221 |                 < Yes >            < No  >                      |
222 +-----------------------------------------------------------------+
223 </example>
224         </p>
225
226         <p>
227         U sljedećem koraku biti će izvršena provjera nadogradnje na zadnju
228         inačicu prethodne distribucije za kritične servise
229         (<prgn>amavisd-cni</prgn>, <prgn>bind9-cn</prgn>,
230         <prgn>clamav-cn</prgn>, <prgn>nessus-cn</prgn>). Ako neki od njih
231         najnovije inačice, pojavit će se poruka:
232
233 <example>
234 CARNet Debian 2.1 ­ Nadogradnja distribucije sa CARNet Debian 1.x str. 7/14
235 </example>
236         </p>
237
238         <p>
239         Izvršite navedene upute, napravite dist-upgrade, te ponovno
240         pokrenite skriptu. Ako je sve uredno instalirano, skripta će otići
241         na idući korak. Instalacija prethodne inačice CARNetove
242         distribucije, CARNet Linux 2, donosila je mnoštvo programskih paketa
243         koji nisu nužno potrebni za uobičajen rad poslužiteljskog računala.
244         Brisanjem tih aplikacija ubrzati ćete proceduru nadogradnje, kao i
245         smanjiti zauzeće diskovnog prostora. Sve aplikacije koje ostanu
246         označene za brisanje se brišu nakon pritiska na tipku ENTER. Oznaka
247         se može maknuti pritiskom na SPACE, i time spriječiti brisanje
248         aplikacije.
249         </p>
250
251         <p>
252         U sljedećem koraku skripta će provjeriti da li u
253         <file>/etc/dpkg/dpkg.cfg</file> postoji opcija
254         <tt>force-overwrite</tt> koja nije preporučljiva za uobičajen rad.
255         Ako postoji, zakomentirat će je, i krenuti dalje. Ukoliko je želite
256         koristiti, nakon nadogradnje je odkomentirajte.
257         </p>
258
259         <p>
260         U sljedećem koraku skripta sprema jos jedan backup OpenLDAP (slapd)
261         baze, s obzirom na važnost podataka u LDAP imeniku. Novi Debian
262         paketi bi trebali neometano nastaviti raditi sa trenutnim sadržajem
263         baze, a ovaj backup možete obrisati kad se uvjerite da LDAP radi
264         ispravno nakon nadogradnje.
265
266 <example>
267 CARNet Debian 2.1 ­ Nadogradnja distribucije sa CARNet Debian 1.x str. 9/14
268 </example>
269         </p>
270
271         <p>
272         Ova skripta će napraviti i backup direktorija <file>/etc</file>. Ako
273         će biti potrebna neka stara konfiguracijska datoteka, potražite je
274         pomoću naredbe tar u arhivi <file>/var/backups/cn4-etc.tar.gz</file>.
275         </p>
276
277         <p>
278         Slijedi instalacija <file>/etc/apt/sources.list</file> datoteke
279         podešene za CARNet Debian 4.0, s uključenim repozitorijima za
280         CARNetove i Debian Etch pakete, te obnova apt baze paketa. Vaše
281         dodatne repozitorije nakon završetka rada ove skripte možete
282         kopirati u tu datoteku iz stare datoteke, koja će biti spremljena
283         kao <file>/etc/apt/sources.list.cn-upgrade</file>.
284         </p>
285
286         <p>
287         Poslije osvježavanja popisa repozitorija kreće skidanje paketa na
288         lokalno računalo. To može trajati od nekoliko minuta do nekoliko
289         sati, ovisno o brzini veze. Tipično trajanje na 2 Mbps linku je oko
290         40 minuta. Cijela nadogradnja je "teška" oko 400-700MB, ovisno o
291         instaliranom softveru. U slučaju da nakon skidanja paketa nemate
292         dovoljno prostora za fazu nadogradnje (cca 200MB), skripta će
293         prekinuti s radom. Kad oslobodite dovoljno prostora na
294         <file>/var</file> particiji, ponovo pokrenite
295         <prgn>carnet-upgrade</prgn>. Nakon ovoga kreće instalacija novih
296         paketa, tj. sama nadogradnja. Prilikom procesa nadogradnje Debianov
297         paketni sustav će postaviti veći broj upita vezanih za izmjenu
298         konfiguracijskih datoteka. Radi optimalnog rada sustava nakon
299         nadogradnje, pripremili smo popis upita za koje preporučujemo
300         odgovore koji nisu podrazumni (eng. default). Najčešće se radi o
301         forsiranoj instalaciji novih inačica konfiguracijskih datoteka.
302         </p>
303
304         <p>
305         Donji redoslijed ne mora nužno pratiti redoslijed prilikom
306         nadogradnje, kao što ne morate imati instalirane sve navedene pakete
307         s donje navedenim konfiguracijskim datotekama. Pitanja za dolje
308         navedene datoteke će biti upućena ili putem debconf sučelja, ili
309         putem tekstualnog sučelja. Ukoliko ste vlastoručno mijenjali neku od
310         tih datoteka, možete pogledati razlike između stare i nove datoteke
311         (odgovor <tt>d</tt>, od eng. differences ­ razlike) i prenijeti
312         izmjene u novu datoteku ukoliko je potrebno. To se može učiniti
313         odabirom izbora <tt>z</tt>, koji će pokrenuti novu ljusku iz koje
314         možete izvršiti željene izmjene, i nakon njih se s naredbom
315         <prgn>exit</prgn> vratiti u postupak instalacije. Datoteke za koje
316         preporučamo zamjenu novim inačicama su sljedeće (preporučeni izbor
317         je "install the package maintainer's version"):
318
319         <list>
320           <item>/etc/apache/httpd.conf</item>
321           <item>/etc/apache-ssl/httpd.conf</item>
322           <item>sve skripte u /etc/init.d za paket sendmail, sve konfiguracijske
323           datoteke</item>
324           <item>/etc/proftpd.conf</item>
325           <item>/etc/limits.conf</item>
326           <item>sve datoteke u /etc/pam.d</item>
327           <item>sve logrotate konfiguracijske datoteke</item>
328           <item>/etc/postgresql/postmaster.conf</item>
329           <item>/etc/postgresql/postgresql.conf</item>
330           <item>sve snort konfiguracijske datoteke</item>
331           <item>/etc/xinetd.conf</item>
332           <item>/etc/services</item>
333         </list>
334         </p>
335
336         <p>
337         Jedno od pitanja prilikom nadogradnje je željeni raspored tipaka na
338         tastaturi:
339         </p>
340
341         <p>
342         Ovu postavku također možete izmijeniti i nakon instalacije, pozivom:
343
344 <example>
345 # dpkg-reconfigure console-data
346 </example>
347         </p>
348
349         <p>
350         Nakon nadogradnje poslužitelja provjerite da li svi servisi uredno
351         rade. Naša skripta za upgrade provjerava jesu li pokrenuti osnovni
352         servisi, ali nije svemoguća. Također provjerite ispravan rad baza
353         podataka (MySQL, PostgreSQL, OpenLDAP):
354         </p>
355
356         <p>
357         Nakon uspješne nadogradnje možete obrisati skinute pakete koji
358         zauzimaju diskovni prostor na <file>/var</file> particiji. To
359         napravite naredbom:
360
361 <example>
362 # apt-get clean
363 </example>
364         </p>
365       </sect>
366     </chapt>
367
368     <chapt id="izvanredne">
369       <heading>Izvanredne situacije</heading>
370
371       <sect><heading>Premalo mjesta na <file>/var</file> particiji</heading>
372
373         <p>
374         Ako imate premalo mjesta na <file>/var</file> particiji, skripta
375         neće moći skinuti potrebne pakete, i neće htjeti nastaviti
376         nadogradnju. To možete riješiti tako da direktorij
377         <file>/var/cache/apt/archives</file> prebacite na neki drugi disk,
378         te da to polinkate. Kratka kuharica je (u slučaju <file>/home</file>
379         particije):
380
381 <example>
382 # mv /var/cache/apt/archives /home/apt-archives/
383 # ln -s /home/apt-archives /var/cache/apt/archives
384 </example>
385         </p>
386
387         <p>
388         Time će se paketi skidati na <file>/home</file> particiju, na kojoj
389         ima više mjesta. Nakon uspješne nadogradnje, vratite cache
390         direktorij na staro mjesto:
391
392 <example>
393 # rm /var/cache/apt/archives # mv /home/apt-archives
394 # /var/cache/apt/archives/
395 </example>
396         </p>
397       </sect>
398
399       <sect><heading>Problemi sa apt-get</heading>
400         <p>
401         U slučaju greške u nekom paketu, može se dogoditi da kod instalacije
402         <prgn>apt-get</prgn> pukne i instalacija se prekine. U tom slučaju,
403         za početak treba dovršiti instalaciju već otpakiranih paketa:
404
405 <example>
406 # dpkg -configure -a
407 </example>
408         </p>
409
410         <p>
411         Nakon toga treba pokušati dati apt-u mogućnost ispravke ako je
412         greška vezana za međuovisnosti paketa:
413
414 <example>
415 # apt-get -f install
416 </example>
417         </p>
418
419         <p>
420         Ukoliko apt zahtijeva deinstalaciju nekih paketa, možete ih
421         instalirati nakon što ova naredba završi, također pomoću apt-geta.
422         Nakon toga možete ponovo pokrenuti carnet-upgrade skriptu. Ovaj
423         postupak ponovite ako se desi pucanje na nekom drugom paketu.
424         </p>
425       </sect>
426     </chapt>
427
428     <chapt id="kraj">
429       <heading>Napokon kraj</heading>
430
431         <p>
432         Ovo bi bila završna riječ ovog kratkog priručnika. Nadamo se da Vam
433         je pomogao prilikom nadogradnje poslužitelja Vaše ustanove. Svi vaši
434         komentari i sugestije će biti rado saslušani, te ako ih imate,
435         uputite ih službi pomoći sistem-inženjerima.
436         </p>
437     </chapt>
438
439     <appendix id="pregled">
440       <heading>Brzi pregled upgrade procedure</heading>
441
442         <p>
443         Kao prvo, backup svega!
444
445 <example>
446 # apt-get update
447 # apt-get dist-upgrade
448 # apt-get install carnet-upgrade
449 </example>
450
451 Ima li cca 600MB slobodno na <file>/var</file>? A nakon <prgn>apt-get
452 clean</prgn>? Ako nema,
453
454 <example>
455 # mv /var/cache/apt/archives /home/apt-archives
456 # ln -s /home/apt-archives /var/cache/apt/archives
457 # carnet-upgrade
458 </example>
459
460 Odgovoriti sa <tt>Y</tt>, odn. "install package maintainer's version":
461
462 /etc/init.d/*
463 sendmail, sve sto ima veze s njim
464 /etc/proftpd.conf
465 /etc/limits.conf
466 /etc/pam.d/*
467 logrotate, sve /etc/logrotate.d/*, /etc/logrotate.conf logcheck,
468 sve /etc/logcheck/*
469 /etc/postgresql/postmaster.conf,
470 /etc/postgresql/postgresql.conf
471 snort, sve /etc/snort/*
472 /etc/xinetd.conf
473 /etc/services
474
475 Ignorirati poruke o izmjenama u <file>lilo.conf</file> (ali provjeriti radi
476 li nakon reboota)
477
478 <example>
479 dpkg --configure -a
480 apt-get -f install
481 apt-get install obrisani_paketi carnet-upgrade
482 </example>
483
484 Ako instalacija pukne: # # # #
485
486       Na kraju, provjeriti servise:
487       <list>
488         <item>freeradius (spojiti se na CMU i pogledati u logovima),</item>
489         <item>ldap (npr. http://stroj/ldap/),</item>
490         <item>apache (http:// i https://stroj),</item>
491         <item>bind (host www.vasa-domena.hr localhost),</item>
492         <item>slanje i primanje maila (lokalno, sa LAN-a, izvana),</item>
493         <item>antivirus (poslati eicar.com i pogledati mail.log),</item>
494         <item>ftp,</item>
495         <item>ssh,</item>
496         <item>telnet (ako ga slučajno jos koristite),</item>
497         <item>mysql,</item>
498         <item>postgresql,</item>
499         <item>aplikacije koje koriste te baze,</item>
500         <item>i sve ostalo...</item>
501       </list>
502
503 <example>
504 # apt-get clean
505 </example>
506
507       Ako ste premjestili <file>/var/cache/apt/archives</file>, možete ga
508       sada vratiti na staro mjesto. ... i to je to!
509       </p>
510     </appendix>
511
512   </book>
513 </debiandoc>
514 <!-- vim:set ai et sts=2 sw=2 tw=76: -->