Archive | November 2013

Specifičnosti u izdanju Wheezy 4: Mysql events

Ukoliko ste korisnik CARNetove usluge sys.backup, nakon nadogradnje možda ćete početi primjećivati ovakve poruke:

Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

Radi se o tablicama events, koje su uvedene u inačici 5.1.6. Events su vremenski okidači, koji obavljaju unaprijed određene operacije unutar Mysql-a, baš kao što to čini cron unutar linuxa. Ukoliko ih ne rabite, možete jednostavno ignorirati ovu poruku, ili u potpunosti izgasiti dump ovih tablica:

# mysqldump -u root -p --events --ignore-table=mysql.event --all-databases > mysql_dump.sql

Ukoliko rabite ovu mogućnost Mysql-a, upute vam vjerojatno ne trebaju, ali ipak – ako želite dumpati i ove tablice, oblik naredbe je:

# mysqldump -uroot -p --events --all-databases > mysql_dump.sql

Datoteka u kojoj sve to možete promijeniti je /etc/bacula/run-before-job.d/db-dump (ukoliko se oslanjate na sys.backup), ili jednostavno u vašim skriptama koje rabite za backup.

Više na adresi: http://sistemac.carnet.hr/node/1334.

Specifičnosti u izdanju Wheezy 3: nema subjecta ni pošiljatelja u Squirrelmailu

Kada smo u roku sat vremena zaprimili četiri upita kako “Squirrelmail ne prikazuje imena pošiljatelja”, shvatili smo da bi problem mogao biti ozbiljan, te da smo potcijenili koliko je “vjeverica” zapravo popularna među korisnicima. Problem je prouzročio novi PHP, a o njemu ćemo, sasvim smo sigurni, još slušati narednih mjeseci.

NAPOMENA: Od inačice paketa squirrelmail-cn 2:1.4.23+2 ne treba primjenjivati ovu zakrpu.

U PHP-u 5.4.0 koji dolazi s izdanjem Wheezy, nalazi se mnogo promjena koje će na različite načine utjecati na rad vaših aplikacija. U ovoj situaciji sa Squirrelmailom glavni problem leži u funkciji htmlspecialchars. Kod ove funkcije se pretpostavljeni encoding promijenio s ISO8859-1 na moderniji UTF-8. Rezultat je vraćanje praznog niza umjesto dekodiranog stringa, što se vrlo zorno može vidjeti u praznom popisu poruka unutar Squirrelmailovog prozora. Panika vaših korisnika je sada već očigledna, a telefoni počinju zvoniti.

Navedeni problem je u Debianu uočen na vrijeme, i zakrpa je ubačena prije izlaska Wheezya. To je i dokumentirano u datoteci /usr/share/doc/squirrelmail/changelog.Debian.gz:

squirrelmail (2:1.4.23~svn20120406-2) unstable; urgency=medium

  * Add patch from upstream to cope with changed behaviour of
    htmlspecialchars() in PHP 5.4 (closes: #664895).

No, čini se da to nije bilo dovoljno. U logovima i dalje možete vidjeti poruke poput ove:

[Mon Nov 11 08:15:19 2013] [error] [client X.149.Y.252] PHP Warning:  htmlspecialchars(): charset `is
o-8859-2' not supported, assuming utf-8 in /usr/share/squirrelmail/functions/strings.php on line 1508

Iako smo našli nekoliko rješenja, nijedno nije bilo potpuno. Primjerice, pošiljatelji bi bili prikazani, ali sadržaj maila nakon otvaranja ne bi bio vidljiv ukoliko bi sadržavao naše znakove, ili znakove iz drugih skupova znakova iz standarda ISO-8859-*. No, na forumu squirrelmaila na razvojnom sjedištu sourceforge.net našli smo rješenje kolege Tonija Rutar-Lokara iz Slovenije:

http://sourceforge.net/p/squirrelmail/bugs/2806/?page=6

Zakrpa je kratka, i iako rabi malo više resursa, zasada predstavlja zadovoljavajuće rješenje. U datoteci /usr/share/squirrelmail/functions/strings.php u funkciji sm_encode_html_special_chars treba zakomentirati tri retka (početak je u retku 1507), te potom dodati par novih redaka:

#if (check_php_version(5, 2, 3))
#  return htmlspecialchars($string, $flags, $encoding, $double_encode);
#return htmlspecialchars($string, $flags, $encoding);

   $string=iconv ($encoding, 'UTF-8',$string);

   if (check_php_version(5, 2, 3))
      $ret=htmlspecialchars($string, $flags, 'UTF-8', $double_encode);
   else $ret=htmlspecialchars($string, $flags, 'UTF-8');
      return iconv ('UTF-8', $encoding, $ret);

Kako je zakrpa neslužbena i stara samo dva tjedna, vidjet ćemo hoćemo li je isporučiti u obliku novog paketa squirrelmail-cn, ili ćemo problem riješiti na neki drugi način.

Više na adresi: http://sistemac.carnet.hr/node/1332.

Specifičnosti u izdanju Wheezy 2: gdje je nestao syslog?

Na syslog smo navikli u tolikoj mjeri da ne razmišljamo o mogućnosti da ga uopće nema. A upravo to nam se može dogoditi nakon nadogradnje na wheezy.

Da bi se ovo dogodilo morate od prije imati instaliran paket sysklogd. Problem s ovim paketom je što je godinama neodržavan, te je izbačen iz Debiana. Ovo izbacivanje se konačno dogodilo tek u izdanju wheezy, iako je paket  u upstreamu napušten već dulje vrijeme.

Kako mnogi “vuku” svoje instalacije Debiana od izdanja Sarge ili čak ranije, tako se ovaj paket provukao sve do danas. Rješenje je jednostavno: instalacija nekog drugog paketa koji donosi servis syslog.

Paketa koji donose podršku za sustav syslog ima dosta, a dva najpopularnija su rsyslog i inetutils-syslogd. Zasada je svejedno koji paket odaberete, mi smo odabrati inetutils-syslogd, no možete odabrati i rsyslog, konfiguracijske datoteke su iste.

Još jedna specifičnost paketa sysklogd je što program sam vrši rotaciju logova i ne oslanja se na logrotate. No, nas to više i ne zanima, jer zamjenski paketi se u potpunosti oslanjaju na logrotate i donose odgovarajuću konfiguraciju sa sobom.

Na vama je jedino da podesite postavke koje želite: koliko dana će se čuvati komprimirane datoteke, hoće li se logovi odmah komprimirati i slično.

Dakle, ne treba oklijevati, nego odmah instalirati (najbolje prije nadogradnje na wheezy) jedan od zamjenskih paketa, na uobičajen način:

# apt-get install inetutils-syslogd

ili

# apt-get install rsyslog

Zanimljiv artefakt zamjene syslog daemona može biti da se logovi ne rotiraju. Događa se situacija da se logovi zapravo ne
rotiraju, nego se svaki dan generira nova datoteka preko stare, primjerice /var/log/syslog.

Da biste to spriječili, stare logove prebacite na neko drugo mjesto (možete i obrisati, ali logove je najbolje čuvati dulje vrijeme), a u /var/log ostavite samo aktivne datoteke.

Koje datoteke kreira rsyslog, odnsno inetutils-syslogd? To su:

/var/log/auth.log
/var/log/daemon.log
/var/log/debug
/var/log/kern.log
/var/log/lpr.log
/var/log/mail.*
/var/log/messages
/var/log/ppp.log
/var/log/user.log
/var/log/uucp.log
/var/log/syslog

Znamo da volite skripte, pa evo jedne koja će prebaciti stare logove na neko drugo mjesto, a nakon toga možete instalirati zamjenski syslog.

#!/bin/sh
set -e

DAT="auth.log.* daemon.log.* debug.* kern.log.* lpr.log.* mail.err.* mail.warn.* mail.info.* \
mail.log.* messages.* ppp.log.* user.log.* uucp.log.* syslog.*"

BACKUP="/var/backups/logovi"

test -d $BACKUP || mkdir -p $BACKUP
cd /var/log

for file in $DAT
do
mv "$file" "$BACKUP"
done

echo "Done."


Više na adresi http://sistemac.carnet.hr/node/1331.

Specifičnosti u izdanju Wheezy

Nakon nadogradnje poslužitelja obično je potrebno napraviti neke modifikacije, popravke i prepravke u nekom od paketa. Pri tome ne mislimo na razlike u konfiguracijama između inačica paketa, nego na razlike između različitih izdanja Debianove distribucije Linuxa.

Za ove razlike je teško znati prije trenutka same instalacije, ukoliko niste pročitali dokument “RELEASE NOTES”, koji ide uz svako novo izdanje Debiana. Čak i ukoliko jeste pročitali taj 44 strane dugačak dokument (nalazi se na adresi http://www.debian.org/releases/stable/releasenotes), u njemu nisu navedene sve promjene. U nekim slučajevima promjene uopće nisu vezane uz trenutno izdanje (ali utječu i na njega).

Kako bi vam pomogli u pripremi i lakšoj provedbi nadogradnje na izdanje Wheezy, pripremili smo niz kraćih članaka. U njima će se naći rezultati naših saznanja i iskustava, ali i iskustva vaših kolega koje ćemo, sasvim očekivano, zaprimiti na sys.help.

Preporučujemo da članke pročitate prije odluke o nadogradnji, jer će neke korake biti moguće provesti prije nadogradnje, što je uvijek bolje nego tijekom nadogradnje kada korisnici čekaju da se servisi ponovo pokrenu.

Prvi u nizu članaka je onaj o syslogu i zašto je nekima “nestao” nakon nadogradnje na Wheezy.

Kako instalirati CARNet-Wheezy na “čisti” poslužitelj?

Na institucijama članicama CARNeta postoji poslužitelj sa operativnim sustavom Linux, kojeg institucija više ili manje redovito nadograđuje po preporučenim procedurama i paketima koje isporučuje CARNet. No kako potrebe institucije rastu, tako raste i potreba za dodatnim poslužiteljima. Iz tog razloga često do Službe pomoći sistem-inženjerima dolaze pitanja kako instalirati CARNetovu distribuciju na “čisti” poslužitelj, dakle onaj na kojemu nije instalirana prethodna ili bilo bilo koja druga inačica Debiana. Često se traži i lokacija datoteke s preslikom (“imageom”) instalacijskog CD-a. No, instalacijskog CD-a nema jer za njim više nema potrebe: zbog sve većeg broja hardverski različitih poslužitelja prešlo se s vlastitog instalacijskog CD-a na originalnu Debianovu instalacijsku proceduru.

Sve što vam treba je preslik originalnog Debianovog instalacijskog CD-a u ISO formatu (.iso). Dovoljno je skinuti najmanji (netinst.iso) preslik, a sve ostalo što vam treba možete instalirati naknadno preko APT-a.

Preslik Debianove instalacije možete skinuti s adrese http://mirror.carnet.hr/debian-cd/. Zadnji dostupni preslik je ovaj (za 64-bitnu arhitekturu): http://cdimage.debian.org/debian-cd/7.2.0/amd64/iso-cd/debian-7.2.0-amd64-netinst.iso.

Provjerite imate li CARNetove repozitorije u datoteci /etc/apt/sources.list. Ona mora izgledati ovako kako bi mogli doći do CARNetovih paketa:

# Paketi za Debian Wheezy
deb http://ftp.hr.debian.org/debian/ wheezy main contrib non-free

# Ex-volatile
deb http://ftp.hr.debian.org/debian/ wheezy-updates main contrib non-free

# Sigurnosne nadogradnje
deb http://security.debian.org/ wheezy/updates main contrib non-free

# Paketi za CARNet-Debian
deb http://ftp.carnet.hr/carnet-debian/ carnet-wheezy main non-free

# SRCE AAI@EduHr
deb http://ftp.srce.hr/srce-debian/ srce-wheezy main

# Odkomentirajte ukoliko želite instalirati source-pakete
#deb-src http://ftp.hr.debian.org/debian/ wheezy main contrib non-free
#deb-src http://ftp.hr.debian.org/debian/ wheezy-updates main contrib non-free
#deb-src http://security.debian.org/ wheezy/updates main contrib non-free
#deb-src http://ftp.carnet.hr/carnet-debian/ carnet-wheezy main non-free
#deb-src http://ftp.srce.hr/srce-debian/ srce-wheezy main

# Odkomentirajte ukoliko želite pakete iz stabla Backports
#deb     http://mirrors.kernel.org/debian wheezy-backports main contrib
#deb-src http://mirrors.kernel.org/debian wheezy-backports main contri

Nakon osnovnog podešavanja (IP adresa, ime poslužitelja i slično), sve što treba je skinuti skriptu sa adrese ftp://ftp.carnet.hr/carnet-debian/dists/carnet-wheezy/carnet-wheezy.sh i pokrenuti je kao korisnik root. Skripta će sama povući i instalirati neke CARNet pakete, koji će vam olakšati instalaciju. Sav posao će odraditi CARNetov paket “carnet-debian” i pojedinačne instalacijske procedure ostalih CARNet paketa. Na taj način ćete dobiti standardni poslužitelj s distribucijom CARNet-Wheezy i paketima koje ste odabrali.

Imajte na umu da CARNetovi paketi podrazumijevaju da je poslužitelj na koji se instaliraju glavni poslužitelj ustanove i tako se podešavaju (primjerice, podrazumijeva se da taj poslužitelj zaprima poštu za cijelu vašu domenu). Zbog toga će neke pakete trebati naknadno podesiti s naredbom “dpkg-reconfigure paket“, a možda i ručno u konfiguracijskoj datoteci paketa.

S druge strane, ako samo želite instalirati dodatni web-poslužitelj, razmislite jesu li vam CARNet paketi uopće potrebni.

Ukoliko želite sustav koji je identičan nekom drugom poslužitelju (primjerice, hardver starog poslužitelja je postao preslab i selite sav njegov softver na novi poslužitelj), skinite popis paketa i njihovu debconf konfiguraciju s tog drugog poslužitelja:

# dpkg --get-selections > paketi.txt
# apt-get install debconf-utils
# debconf-get-selections > debconf-selections.txt

U datoteci paketi.txt će se naći svi paketi s njihovim statusom (instaliran/nije instaliran), a u datoteci debconf-selection.txt njihova konfiguracija, onako kako ste odgovarali na pitanja kod instalacije). Datoteke jednostavno prebacite na novi poslužitelj te napravite:

# dpkg --set-selections < paketi.txt
# apt-get install dselect
# dselect update
# apt-get dselect-upgrade
# debconf-set-selections < /tmp/debconf-selections.txt
# dpkg-reconfigure --all

Ova jednostavna procedura će dodati nove i obrisati stare pakete, konfigurirati sustav po vašim prethodnim odgovorima i ukratko, klonirati instalaciju sa starog sustava.

Na gore opisani način dobijete “CARNet-Wheezy” distribuciju na poslužitelju na kojem nikad nije bila instalirana CARNetova inačica operativnog sustava Debian.

Više na adresi http://sistemac.carnet.hr/node/1329.

Objavljena CARNetova distribucija Debiana – CARNet-Wheezy

Image

Objavljena je CARNetova inačica Linuxove distribucije Debian. Kodne ime ove inačice je Wheezy, a numerička inačica je 7. Ova distribucija je namijenjena poslužiteljima koji rade unutar CARNetove mreže, iako je mogu rabiti svi koji to žele jer je javno dostupna na poslužiteljima CARNeta.

Glavna prednost uporabe CARNetove inačice Debiana je u tome što donosi postavke prilagođene CARNetovoj mreži, kako bi instalacija bila što jednostavnija za sistemca, a poslužitelj bio pušten u rad u što kraćem vremenu.

CARNetov Debian sačinjavaju dvije komponente: jedna komponenta su CARNetovi paketi, a druga je instalacijska procedura, “carnet-upgrade“.

Pakete je moguće rabiti neovisno o drugim dijelovima paketne distribucije, pa poslužitelj može rabiti samo dio paketa iz CARNetove distribucije. Ukoliko želite instalirati sve pakete koje nudimo, to je najlakše napraviti preko paketa carnet-upgrade, ali i u tom slučaju možete izbaciti nepotrebne pakete i servise.

S paketom carnet-upgrade dolazi dokumentacija koja se nalazi u direktoriju /usr/share/doc/carnet-upgrade. Tu su upute i savjeti koji će vam pomoći da nadogradnja prođe što  jednostavnije i brže. Isti dokument u PDF formatu nalazi se na adresi:

http://sistemac.carnet.hr/system/files/carnet-upgrade.pdf (inačica 7.0)

Dobro proučite ovaj dokument prije zahvata na poslužitelju, pogotovo ako instalaciju radite prvi put. Također, preporučujemo da napravite potpuni backup podataka, a za radove odaberite termin koji će odgovarati vašim korisnicima.

Možete očekivati da će postupak trajati od dva do četiri sata, ovisno o brzini poslužitelja, brzini veze vaše ustanove, te broju servisa na poslužitelju.

Kako nije moguće predvidjeti sve probleme koji se mogu pojaviti prilikom instalacije, u slučaju potrebe podršku potražite u službi pomoći za sistem-inženjere (syshelp@carnet.hr).

Napomena: probleme u vezi sa sustavom AAI@EduHr rješava isključivo AAI@EduHr tim, koji je dostupan na adresi paketi@aaiedu.hr.

Nadamo se da će CARNet-Wheezy ispuniti vaša očekivanja.

Više informacija na adresi http://sistemac.carnet.hr/node/1327.