Linux eta Windows zerbitzariak urrunetik itzaltzen
Note: Return to reference manual view.
1. Sarrera
Manualtxo hau gure arazo bati erantzunez sortu dugu. Gero eta zerbitzu gehiago behar ditugu, eta ondorioz gero eta zerbitzari gehiago ditugu.
Zoritxarrez, Iberdrolak urtean lau edo bost aldiz argi indarra kentzen digu. Berdin dio ekaitza dagoen edo ez. Batzuetan neguan, besteetan udan, batzuetan hotza dagoenean, edo bero, edo ez hotz eta ez bero. Berdin dio, beraiek nahi dutenean.
Holakoetan, batzuetan 10 minutuko argi mozketak izaten dira. Besteetan ordu bete, ordu ta erdi, ..., auskalo. Mozketa luzeak direnean, gure UPSak deskargatu egiten dira, eta zerbitzariak itzali behar izaten ditugu.
Hau kudeatzeko tresna "profesionalak" daude: UPSaren karga maila jakin batera heltzen denean automatikoki zerbitzariak itzalteko, baina guk (oraingoz) ez dugu horrelakorik, nahiz eta jartzeko asmoa dugun. Oraingoz argia joaten denean, eskuz eta presaka itzaltzen ditugu zerbitzariak UPSetako argi indarra bukatu aurretik.
Hau errazteko, automatizazio txiki bat prestatu dugu. Helburua: eskuz egin arren, ahalik eta azkarren zerbitzariak itzaltzea.
Hemen azaltzen dugu nola egiten ari garen. Zeozertarako balio badizu, gu pozik. ;-)
2. Sare arkitektura
Demagun zure sarean 6 zerbitzari dituzula. Hauetako 5 Linux dira eta bat Windows (ea noiz migratzen duzun ;) )
Zerbitzari hauei izenak jarriko dizkiogu:
- LinuxZerb01: 192.168.5.1 Iparekin (Zerbitzari nagusia)
- LinuxZerb02: 192.168.5.2 Iparekin
- LinuxZerb03: 192.168.5.3 IParekin
- LinuxZerb04: 192.168.5.4 IParekin
- LinuxZerb05: 192.168.5.5 IParekin
- WindowsZerb01: 192.168.5.6 IParekin
Windows zerbitzaria itzali ahal izateko, horretarako baimenak dituen erabiltzaile bat behar izango dugu, eta nola ez, bere pasahitza. Demagun hauek direla:
- erabiltzailea: admin
- pasahitza: nirepasahitza
3. Linux Zerbitzariak itzaltzen
Helburua: Behar dugunean, zerbitzari nagusian script bat exekutatuz, beste zerbitzari denak itzaltzea.
Has gaitezen ba lanean.
Honelako script bat exekutatzean garrantzitsua da scritp-ak pasahitzik ez eskatzea. Pasahitza eskatuko balu, inoiz ezingo genuke automatizatu (bihar edo etzi UPSaren kargaren arabera dena automatikoki itzaltzeko).
Zerbitzarian SSH gakoak sortu.
Zerbitzari nagusiak SSH erabiliko du beste zerbitzariak itzaltzeko, edo hobeto esanda, beste ssh konexio bat erabiliko du beste zerbitzarietan itzaltzeko behar den scripta exekutatzeko.
Lehenengo eta behin, zerbitzari nagusian ssh gakoa sortuko dugu /root/gakoak karpetan. Gakoa sortzerakoan, passphrase sartzeko eskatzen digunean (bi aldiz) ez dugu ezer idatziko eta enter sakatuko dugu.
[root@LinuxZerb01]# mkdir /root/gakoak
[root@LinuxZerb01]# cd /root/gakoak/
[root@LinuxZerb01 rsync]# ssh-keygen -t dsa -b 2048 -f /root/gakoak/LinuxZerb01-rsync-key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): <-- Ez sartu ezer, ENTER sakatu
Enter same passphrase again: <-- Ez sartu ezer, ENTER sakatu
Your identification has been saved in /root/gakoak/LinuxZerb01-rsync-key.
Your public key has been saved in /root/gakoak/LinuxZerb01-rsync-key.pub.
The key fingerprint is:
67:9a:c3:27:ea:36:19:46:bd:31:bd:9b:82:4c:83:52 root@LinuxZerb01.niredominioa.com
Bi gako sortu ditugu: pribatua (LinuxZerb01-rsync-key) eta publikoa (LinuxZerb01-rsync-key.pub).
Pribatua ez diogu inori eman behar, publikoa aldiz beste zerbitzarietan kopiatuko dugu. Kasu honetan, LinuxZerb02 zerbitzarian kopiatuko dugu scp baten bidez:
[root@LinuxZerb01]# scp LinuxZerb01-rsync-key.pub root@192.168.5.2:/root/
Orain ssh bidez LinuxZerb02 zerbitzarira konektatzen gera root erabiltzailearekin, eta aurrez kopiatu dugun beste zerbitzariko gako publikoa behar den lekuan jarriko dugu
Lehendik /root/.ssh ez badago, sortu
LinuxZerb02:~# cd /root
LinuxZerb02:~# mkdir .ssh
LinuxZerb02:~# chmod 700 .ssh
LinuxZerb02:~# mv LinuxZerb01-rsync-key.pub .ssh
Orain, gako publikoa sartu authorized_keys barruan. authorized_keys lehendik ez bada existitzen, sortu egin beharko dugu.
LinuxZerb02:~# cd ~/.ssh
LinuxZerb02:~# touch authorized_keys
LinuxZerb02:~# chmod 600 authorized_keys
LinuxZerb02:~# cat LinuxZerb01-rsync-key.pub >> authorized_keys
Errepaso moduan: ssh karpetako authorized_keys barruan aurrez sortu dugun gako publikoa sartu dugu. Hau eginez, eta kontutan izanik gakoa sortu genuenean ez geniola pasahitza jarri, gako pribatua dugun lekutik zerbitzari honetara konektatzeko aukera izango dugu pasahitzik sartu gabe. Horregatik da hain garrantzitsua gako pribatua ondo babestea.
Egin dezagun proba. Horretarako Linux zerbitzari nagusira konektatu eta komando hau idatzi:
LinuxZerb01:~# ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.2
Dena ondo egin badugu, LinuxZerb02 zerbitzarian konektatuta (192.168.5.2) egongo zara.
Bai, baina honekin oraindik ez dugu zerbitzaria itzali, ezta ? Lasai, bigarren zatia falta da.
LinuxZerb02 zerbitzarira konektatu eta /root barruan itzali.sh izeko script bat sortuko dugu. Horretarako zuk nahiago duzun editorea erabili. Nik nano erabiltzen det:
LinuxZerb02:~# cd /root
LinuxZerb02:~# nano itzali.sh
Fitxategian bi lerro hauek hau idatzi:
#!/bin/bash
halt
Orain fitxategia gorde eta baimen egokiak jarri:
LinuxZerb02:~# chmod 744 itzali.sh
Listo, prest daukagu zerbitzaria itzaltzeko erabiliko dugun scripta.
Bueltatu gaitezen berriro zerbitzari nagusira (LinuxZerb01).
Ikusi dugu gako publiko eta pribatuak erabiliz zerbitzari nagusitik ssh erabiliz beste zerbitzarian zuzenean sartzen garela. Teknika berdina erabiliz, orain zerbitzari nagusitik beste zerbitzaria itzaliko dugu. Kontuz, zerbitzaria itzali egingo dugu eta !!
LinuxZerb01:~# ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.2 /root/itzali.sh
Konturatzen bazera lehen jarri dugun komando berdina da, baina bukaeran itzaltzeko sortu dugun bi lerrotako scripta jartzen dugu, beraz ssh konexioa erabiliz, script hori exekutatzen du.
Egin ditugun pauso hauek beste Linux zerbitzarietan (LinuxZerb03, LinuxZerb04, LinuxZerb05) errepikatu behar ditugu, eta hau egin ondoren, LinuxZerb01 zerbitzari nagusian jarriko dugun scriptaren bitartez denak itzaltzeko prest egongo gara:
root@LinuxZerb01:~# cd /root
root@LinuxZerb01:~# nano SarekoZerbitzariakItzaki.sh
Lerro hauek kopiatu scriptean:
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.2 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.3 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.4 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.5 /root/itzali.sh
Fitxategia gorde eta baimen egokiak jarriko dizkiogu:
root@LinuxZerb01:~# chmod 744 SarekoZerbitzariakItzaki.sh
Listo, Linux zerbitzari guztiak itzaltzeko scritpa egin dugu.
4. Windows zerbitzariak itzaltzen
Falta zaiguna, Windows zerbitzaria itzaltzea da. Hau egiteko, samba erabiliko dugu. Instalatuta ez badezu:
LinuxZerb01:~# apt-get install samba
Gogoratu ditzagun Windows zerbitzariaren datuak:
IP helbidea: 192.168.5.6 IP
Itzaltzeko baimenak dituen erabiltzailea: admin
Erabiltzailearen pasahitza: nirepasahitza
Datu hauek, honelako komandoa osatu behar dugu:
net rpc SHUTDOWN -C "Zerbitzaria itzaltzen ari gara" -f -I 192.168.5.6 -U admin%nirepasahitza
Kontuz, hau egitean windows zerbitzaria itzali egiten da !!!
Zerbitzari nagusira bueltatuz, goiko lerroa scritp nagusian sartuko dugu eta dena prest izango dugu
root@LinuxZerb01:~# cd /root
root@LinuxZerb01:~# nano SarekoZerbitzariakItzaki.sh
Lerro hauek kopiatu scriptean:
net rpc SHUTDOWN -C "Zerbitzaria itzaltzen ari gara" -f -I 192.168.5.6 -U admin%nirepasahitza
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.2 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.3 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.4 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.5 /root/itzali.sh
Dena prest. Orain Zerbitzari nagusian /root/SarekoZerbitzariakItzaki.sh scripta exekutatzen badegu, sareko beste zerbitzari guztiak itzaliko dira.
5. Kredituak eta lizentzia
Egilea: Pedro Arreitunandia
Data: 2009-ko urtarrilaren 20a
Lizentzia: Creative Commons ShareAlike