affettuosamente Tronyx ...
Questo server è stato richiesto dal TronWeb all’istituto per avere l’opportunità di gestire un server in proprio, quando sarà a regime andrà a sostituire il tronlinux e quindi reggerà tra le altre cose diversi siti e servizi. Il server è arrivato il 14 dicembre 2005 e ora si trova a casa di ogeidix per essere installato e configurato durante le feste natalizie.
Il server dovrà fungere da web server e servire diversi siti (tra cui spiccano quello del TronWeb, quello del giornalino di istituto e il sito di EduKnoppix). Verrà inoltre configurato un server di posta per diversi domini. Tutto questo (e molto altro che pera’ ancora e’ solo in fase propositiva) speriamo di riuscire a implementare entro la fine delle vacanze ;)
Il processore un P4 3.0 HT che sul sistema linux viene visto come 2 processori; la ram è di 2 GB Sono presenti due schede di rete: * eth0 10/100/1000 (presa + in alto) * eth1 10/100 (presa + in basso) Gli Hard disk sono SATA: * sda 120 GB * sdb 120 GB piu’ uno USB 2.0 esterno: * sdc 120 GB
0000:00:00.0 Host bridge: Intel Corporation 82875P/E7210 Memory Controller Hub (rev 02) 0000:00:01.0 PCI bridge: Intel Corporation 82875P Processor to AGP Controller (rev 02) 0000:00:03.0 PCI bridge: Intel Corporation 82875P/E7210 Processor to PCI to CSA Bridge (rev 02) 0000:00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02) 0000:00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02) 0000:00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI #3 (rev 02) 0000:00:1d.3 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02) 0000:00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02) 0000:00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2) 0000:00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02) 0000:00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02) 0000:00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02) 0000:00:1f.3 SMBus: Intel Corporation 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02) 0000:02:01.0 Ethernet controller: Intel Corporation 82547EI Gigabit Ethernet Controller (LOM) 0000:03:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) 0000:03:08.0 Ethernet controller: Intel Corporation 82562EZ 10/100 Ethernet Controller (rev 01)
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping : 1
cpu MHz : 2994.402
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
acpi mmx fxsr sse sse2 ss ht tm pbe pni monitor ds_cpl cid xtpr
bogomips : 5914.62
processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping : 1
cpu MHz : 2994.402
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
acpi mmx fxsr sse sse2 ss ht tm pbe pni monitor ds_cpl cid xtpr
bogomips : 5914.62
Module Size Used by e1000 76308 0 e100 26432 0 mii 2944 1 e100 ipv6 188544 12 parport_pc 28004 0 parport 22696 1 parport_pc floppy 45204 0 pcspkr 2764 0 rtc 8940 0 dm_mod 38340 0 ata_piix 6244 0 ahci 7972 0 sata_qstor 6468 0 sata_vsc 5284 0 sata_uli 4576 0 sata_sis 4448 0 sata_sx4 9924 0 sata_nv 5988 0 sata_via 5572 0 sata_svw 4868 0 sata_sil 6116 0 sata_promise 7268 0 libata 28036 12 ata_piix,ahci,sata_qstor,sata_vsc,sata_uli,sata_sis,sata_sx4,sata_nv,sata_via,sata_svw,sata_sil,sata_promise sbp2 17160 0 ohci1394 26388 0 ieee1394 59192 2 sbp2,ohci1394 sl811_hcd 9664 0 ohci_hcd 15396 0 uhci_hcd 24368 0 usb_storage 50464 0 usbhid 26112 0 ehci_hcd 23272 0 usbcore 76892 7 sl811_hcd,ohci_hcd,uhci_hcd,usb_storage,usbhid,ehci_hcd
Il SO installato Gentoo/Linux.
Per l’installazione si è seguito il relativo documento prodotto dal TronWeb, di seguito sono riassunti i passaggi pratici, le scelte fatte e le eventuali particolarità.
Inizio installazione 23:12:05 h 15:10
LiveCD Gentoo 2005.1 # Siamo partiti con il liveCd Gentoo 2005.1 Minimal BOOT:gentoo # Non abbiamo specificato nessuna opzione particolare per il boot
Prepariamo l’ambiente di lavoro:
livecd root # loadkeys it # Carichiamo il layout di tastiera italiano livecd root # passwd # Cambiamo la password di root (questa pwd è temporanea)
livecd root # lspci # Analizziamo l'hardware presente (lspci) e rilevato (lsmod) livecd root # lsmod # [l'output è riportato sopra nella sezione HW x questioni di spazio] livecd root # ifconfig # Analizziamo la situazione di rete
Prepariamo i dischi:
livecd root # modprobe raid1 # Carichiamo il modulo per il RAID1
livecd root # cfdisk /dev/sda # Partizioniamo il primo HD a piacimento
# Sono state create 4 partizioni primarie, una da 100 Mb, una da 2000 Mb, una da 115900 Mb e una da 4000 Mb
# Ricordatevi di impostare il flag 'bootable' attivo alla prima partizione e di selezionare
# per tutte le partizioni il tipo Linux raid autodetect (fd)
#
# Disk /dev/sda: 120.0 GB, 120034123776 bytes
# 255 heads, 63 sectors/track, 14593 cylinders
# Units = cylinders of 16065 * 512 = 8225280 bytes
#
# Device Boot Start End Blocks Id System
# /dev/sda1 * 1 13 104391 fd Linux raid autodetect
# /dev/sda2 14 257 1959930 fd Linux raid autodetect
# /dev/sda3 258 14106 111242092+ fd Linux raid autodetect
# /dev/sda4 14107 14593 3911827+ fd Linux raid autodetect
livecd root # sfdisk -d /dev/sda | sfdisk /dev/sdb # Con questo comando copiamo la tabella delle
# partizioni da un HD all'altro.
livecd root # mknod /dev/md0 b 9 0 # Creiamo i nodi "md" che rappresentano i dispositivi RAID
livecd root # mknod /dev/md1 b 9 1
livecd root # mknod /dev/md2 b 9 2
livecd root # mknod /dev/md3 b 9 3
livecd root # mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 # Eccoci ora alla creazione
livecd root # mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2 # vera e propria del raid1
livecd root # mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
livecd root # mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4
# Ora il sistema iniziera' la creazione degli array.
# Possiamo monitorare lo stato d'avanzamento di questa operazione con:
livecd root # cat /proc/mdstat
# L'operazione non è delle più veloci, almeno per la terza partizione (~40m), le altre sono immediate.
livecd root # mkfs.ext2 /dev/md0 # Creiamo il filesystem sulla partizione di boot (ext2)
livecd root # mkfs.reiserfs /dev/md1 # Creiamo il filesystem sulla partizione di / (reiserfs)
livecd root # mkswap /dev/md3 # Creiamo la partizione di swap
livecd root # swapon /dev/md3 # e attiviamola
livecd root # modprobe dm-mod # Carichiamo il modulo per LVM2
livecd root # mkdir -p /etc/lvm # Impostiamo LVM2 per non utilizzare il CDROM e gli IDE
livecd root # echo 'devices { filter=["r/cdrom/","r/hd[ag]/"] }' >/etc/lvm/lvm.conf
livecd root # vgscan # Controlliamo che non ci siano partizioni in LVM2
livecd root # pvcreate /dev/md2 # Prepariamo la partizione
livecd root # pvdisplay # e verifichiamo che sia andato tutto ok
livecd root # vgcreate vg /dev/md3 # Creiamo un gruppo di volume
livecd root # vgdisplay vg # e verifichiamo
livecd root # lvcreate -L10G -nusr vg # Creiamo le partizioni virtuali
livecd root # lvcreate -L10G -nhome vg
livecd root # lvcreate -L2G -nopt vg
livecd root # lvcreate -L20G -nvar vg
livecd root # lvcreate -L4G -ntmp vg
livecd root # mkfs.reiserfs /dev/vg/usr # e formattiamole con i loro FileSystem
livecd root # mkfs.reiserfs /dev/vg/home # (tutte in reiserfs)
livecd root # mkfs.reiserfs /dev/vg/opt
livecd root # mkfs.reiserfs /dev/vg/var
livecd root # mkfs.reiserfs /dev/vg/tmp # Bene con questo abbiamo finito la preparazione dei dischi
Creiamo i Filesystem e installiamo il sistema minimo
livecd root # mount /dev/md1 /mnt/gentoo # Montiamo il Filesystem di root livecd root # mkdir /mnt/gentoo/boot # Creiamo i mountpoint per gli altri filesystem livecd root # mkdir /mnt/gentoo/home livecd root # mkdir /mnt/gentoo/usr livecd root # mkdir /mnt/gentoo/opt livecd root # mkdir /mnt/gentoo/var livecd root # mkdir /mnt/gentoo/tmp livecd root # mkdir /mnt/gentoo/backup livecd root # mount /dev/md0 /mnt/gentoo/boot # e montiamoli ... livecd root # mount /dev/vg/usr /mnt/gentoo/usr livecd root # mount /dev/vg/home /mnt/gentoo/home livecd root # mount /dev/vg/opt /mnt/gentoo/opt livecd root # mount /dev/vg/var /mnt/gentoo/var livecd root # mount /dev/vg/tmp /mnt/gentoo/tmp livecd root # mount /dev/sdc2 /mnt/gentoo/backup livecd root # cd /mnt/gentoo # Spostiamoci nella futura cartella di root livecd root # wget http://www.die.unipd.it/pub # Scarichiamo lo stage3 dell'installazione /Linux/distributions/gentoo-sources/releases /x86/2005.1-r1/stages/pentium4/stage3-pentium4-2005.1-r1.tar.bz2 livecd root # wget http://www.die.unipd.it/pub /Linux/distributions/gentoo-sources/releases # Scarichiamo il codice di controllo (md5) del file /x86/2005.1-r1/stages/pentium4/stage3-pentium4-2005.1-r1.tar.bz2.md5 livecd root # md5sum -c stage3-pentium4-*.tar.bz2.md5 # Controlliamo che il file non sia corrotto livecd root # tar xvjpf stage3-pentium4-*.tar.bz2 # Untarriamo lo stage nella futura root livecd root # wget http://www.die.unipd.it/pub # Scarichiamo lo snapshot + recente del portage /Linux/distributions/gentoo-sources/snapshots/portage-20051223.tar.bz2 livecd root # wget http://www.die.unipd.it/pub # Controlliamo che il file non sia corrotto /Linux/distributions/gentoo-sources/snapshots/portage-20051223.tar.bz2.md5sum livecd root # md5sum -c portage-20051223.tar.bz2.md5 # Controlliamo che il file non sia corrotto livecd root # tar xvjf portage-20051223.tar.bz2 -C /mnt/gentoo/usr # Untarriamo lo snapshot
Configuriamo il sistema base
livecd root # vim etc/mdadm.conf # Creiamo il file di configurazione per il RAID1
# # Contenuto del file etc/mdadm.conf
# DEVICE /dev/sda*
# DEVICE /dev/sdb*
# ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1
# ARRAY /dev/md1 devices=/dev/sda2,/dev/sdb2
# ARRAY /dev/md2 devices=/dev/sda3,/dev/sdb3
# ARRAY /dev/md3 devices=/dev/sda4,/dev/sdb4
# MAILADDR root@localhost
livecd root # vim etc/make.conf # Creiamo il file di configurazione di portage
# # Contenuto del file etc/make.conf
# (Please consult /etc/make.conf.example for a more detailed example)
# CHOST="i686-pc-linux-gnu"
# CFLAGS="-march=pentium4 -Os -pipe -fomit-frame-pointer"
# CXXFLAGS="${CFLAGS}"
# MAKEOPTS="-j4"
#
# ACCEPT_KEYWORDS="x86"
# FEATURES=""
# LINGUAS="it"
#
# USE="sse sse2 mmx nls nptl nptlonly -ipv6 -X -gnome -kde -qt -gtk -alsa apache2 vhost ssl php mysql"
#
# GENTOO_MIRRORS="http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
#
# PORTDIR_OVERLAY="/usr/local/portage"
# PORTAGE_TMPDIR="/tmp"
# PORTAGE_NICENESS="15"
livecd root # cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf # Copiamo il file dei DNS sulla futura root
livecd root # mount -t proc none /mnt/gentoo/proc # Montiamo una copia di /proc sulla fut. root
livecd root # chroot /mnt/gentoo /bin/bash # Chrootiamoci nella nuova root
livecd root # env-update # e aggiorniamo le variabili di ambiente
livecd root # source /etc/profile # e assumiamo le nuove variabili di profilo
livecd root # emerge sync # Aggiorniamo Portage
livecd root # echo "sys-libs/glibc userlocales" >> /etc/portage/package.use # Configuriamo le glibc
# Controlliamo che siano presenti le seguenti righe in /etc/locales.build :
# it_IT/UTF-8
# it_IT/ISO-8859-1
# it_IT@euro/ISO-8859-15
livecd root # emerge gentoo-sources # Scarichiamo il sorgente del kernel
livecd root # cd /usr/src/linux # Spostiamoci nella cartella del kernel
livecd root # make menuconfig # Configuriamo il kernel
# Ricordarsi il supporto al RAID1 e a LVM2
livecd root # make && make modules_install # Compiliamo il kernel
livecd root # cp arch/i386/boot/bzImage /boot/kernel-2.6.14-gentoo-r5-0 # Copiamo il kernel compilato in /boot
livecd root # cp .config /boot/config-2.6.14-gentoo-r5-0 # e il suo file di config per sicurezza
livecd root # vim /etc/fstab # Configuriamo il file /etc/fstab
# Contenuto di /etc/fstab
# /dev/md0 /boot ext2 noauto,noatime 1 2
# /dev/md1 / reiserfs noatime 0 1
# /dev/vg/usr /usr reiserfs noatime 0 0
# /dev/vg/var /var reiserfs noatime 0 0
# /dev/vg/opt /opt reiserfs noatime 0 0
# /dev/vg/tmp /tmp reiserfs noatime 0 0
# /dev/vg/home /home reiserfs noatime 0 0
#
# /dev/sdc2 /mnt/backup reiserfs noauto,noatime 0 0
#
# /dev/fd0 /mnt/floppy auto noauto 0 0
# /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
#
# /dev/md3 none swap sw 0 0
livecd root # vim /etc/conf.d/hostname # Settiamo l'hostname a 'tronweb'
livecd root # vim /etc/conf.d/domainname # Settiamo il domainname a 'tron'
livecd root # rc-update add domainname default # Aggiungiamo domainname al runlevel
livecd root # ln -s net.eth0 net.eth1 # Aggiungiamo l'init script per eth1
livecd root # rc-update add net.eth0 default # Aggiungiamo eth0 al runlevel
livecd root # vim /etc/hosts # Aggiungiamo l'hostname a localhost
livecd root # passwd # Impostiamo la pwd definitiva di root (ac**dem*a)
livecd root # vim /etc/conf.d/keymap # Configuriamo la keymap (it)
# Installiamo gli ultimi pacchetti di sistema
livecd root # emerge syslog-ng vixie-cron slocate e2fsprogs reiserfsprogs lvm2 raidtools mdadm dhcpcd grub
# Aggiungiamo i nuovi servizi ai runlevels
livecd root # rc-update add syslog-ng default
livecd root # rc-update add vixie-cron default
livecd root # rc-update add mdadm default
livecd root # vim /boot/grub/grub.conf # Configuriamo grub
livecd root # grub # Installiamo grub sugli MBR
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
Ecco installato il sistema di base !! (~2h) Possiamo uscire dal chroot
livecd root # exit
e riavviare
livecd root # reboot
ricordandosi di togliere il cd appena possibile.
Una volta avuto accesso al sistema, dopo essersi rallegrati per l’ottima riuscita del lavoro facciamo un bell’aggiornamento di sistema:
tronweb ~ # emerge -Dau world
Quindi procediamo a installare dei piccoli tools che ci semplificheranno la gestione del server.
tronweb ~ # emerge most screen bash-completion genlop gentoolkit colordiff ccache tronweb ~ # echo 'export MANPAGER="/usr/bin/most"' >> /etc/profile tronweb ~ # bash-completion-config --global --install bash-completion-config tronweb ~ # bash-completion-config --global --install genlop tronweb ~ # vim /etc/skel/.bashrc # rimuovere il commento dall'ultima riga tronweb ~ # cp /etc/skel/.bashrc ./ tronweb ~ # vim /etc/etc-update.conf # settare diff_command a "colordiff -u %file1 %file2" tronweb ~ # vim /etc/dispatch-conf.conf # settare diff a "colordiff -u %s %s | less" tronweb ~ # vim /etc/make.conf # agiungere ccache alle features tronweb ~ # mkdir /tmp/ccache tronweb ~ # echo 'CCACHE_SIZE="2G"' >> /etc/make.conf tronweb ~ # echo 'CCACHE_DIR="/tmp/ccache"' >> /etc/make.conf tronweb ~ # echo 'export CCACHE_SIZE="2G"' >> /etc/profile tronweb ~ # echo 'export CCACHE_DIR="/tmp/ccache"' >> /etc/profile tronweb ~ # env-update && source /etc/profile tronweb ~ # vim /etc/issue # personalizziamo la fase di login
Aggiorniamo GCC secondo la guida http://www.gentoo.org/doc/en/gcc-upgrading.xml
# gcc-config i686-pc-linux-gnu-3.4.4 # source /etc/profile # emerge --oneshot -av libtool # revdep-rebuild --library libstdc++.so.5 # emerge sys-libs/libstdc++-v3
Installato e configurato ssh (come descritto nella guida sul ns. wiki)
# emerge openssh # vim /etc/ssh/sshd_config # Impostiamo PermitRootLogin a no # rc-update add sshd default
Installato e configurato MySql (come descritto nella guida sul ns. wiki)
# emerge mysql # emerge --config =mysql-4.1.14 # /etc/init.d/mysql start # rc-update add mysql default # mysql_secure_installation
Installato e configurato Apache (come descritto nella guida sul ns. wiki)
# emerge -av apache # echo 'app-admin/eselect ~x86' >> /etc/portage/package.keywords # echo 'app-admin/eselect-php ~x86' >> /etc/portage/package.keywords # echo 'dev-lang/php ~x86' >> /etc/portage/package.keywords # echo 'dev-lang/php apache2 mysqli sqlite -berkdb' >> /etc/portage/package.use # emerge -av dev-lang/php # cd /etc/apache2/ssl/ # rm server.* # /usr/sbin/gentestcrt.sh (or /usr/lib/ssl/apache2-mod_ssl/gentestcrt.sh) # vim /etc/apache2/httpd.conf # ServerName, ServerSignature Off # vim /etc/conf.d/apache2 # APACHE2_OPTS="-D PHP5 -D SSL -D DEFAULT_VHOST -D SSL_DEFAULT_VHOST" # /etc/init.d/apache2 start # rc-update add apache2 default
Installato il proxy squid come da articolo su wiki
Configurato il sistema di backup come da articolo su wiki