raspbian logo

Raspbian OS – základ webovej farmy (diel 1.)

Úvod

Raspbian ako operačný systém pre webovú farmu som vybral preto, lebo je postavený na fantastickom a skalopevne stabilnom debiane, má obrovskú podporu komunity a jednoducho je to môj osobný favorit a aj samotný debian je celkovo asi jeden z najrozšírenejších linuxových OS pre webové servery.

Tieto postupy a návody sú v prvom rade pripomienkou pre mňa, ako som to vlastne robil, ak by som to ešte potreboval zopakovať 🙂 Použiť ich môže ktokoľvek, ale len na vlastné riziko. Za ich správnosť neručím.

Realizáciu projektu je možné nájsť na: https://cluster.zwerimex.com/. Z dôvodu údržby alebo preťaženia môže byť adresa dočasne nedostupná 🙁

V ďalšom texte pojmom windows myslím microsoft windows 10 (notebook) a pojmom linux myslím debian/raspbian (raspberry pi, virtuálny stroj, notebook).

1. Stiahneme obraz inštalačného média, Raspbian Jessie Lite z oficiálnej stránky projektu.

Linux:

prepneme sa do domáceho adresára:

cd $HOME

vytvoríme v ňom nový adresár download:

mkdir download

prepneme sa do novovytvoreného adresára:

cd $HOME/download

stiahneme obraz poslednej verzie OS Raspbian Lite:

wget https://downloads.raspberrypi.org/raspbian_lite_latest

raspbian wget

na výstupe vidíme mnoho informácii ( hľadanie konkrétnej IP servera na sťahovanie, na konci vidíme postup sťahovania ) po skončení môžeme zobraziť obsah adresára:

ls -al

Windows:

môžeme sťahovať priamo cez prehliadač, alebo pomocou torrentu, dôležité je zapamätať si umiestnenie, adresár kam sťahujeme.

2. Overíme pravosť a integritu stiahnutého súboru pomocou kontrolného súčtu (hash funkcie SHA-1).

Linux:

prepneme sa do adresára kde sme sťahovali:

cd $HOME/download

použijeme sha1sum, argument bude presný názov stiahnutého súboru:

sha1sum raspbian_lite_latest

na výstupe vidíme hodnotu kontrolného súčtu a názov overovaného súboru, hodnota musí byť rovnaká ako hodnota sha1 na webovej stránke.

raspbian sha1sum

Windows:

použijeme 7zip, prepneme sa do adresára kde sme sťahovali, označíme stiahnutý súbor, pravým tlačidlom myši vyberieme z ponuky CRC -> SHA-1, v ďalšom okne prebehne výpočet, v ďalšom okne vidíme výsledok, hodnota musí byť rovnaká ako hodnota sha1 na webovej stránke.

raspbian 7zip sha1

3. Nainštalujeme operačný systém raspbian na SD kartu.

Následujúci krok vyžaduje zvláštnu pozornosť, aj malá chyba, môže spôsobiť nevratné poškodenie systémového alebo iného disku. Aj dd v linuxe a aj win32diskimager vo windowse zapisujú dáta na SD kartu ( okrem iného ), musíme si byť 100% istí ktoré zariadenie je SD karta!!!

Linux:

prepneme sa do adresára kde sme sťahovali:

cd $HOME/download

rozbalíme stiahnutý súbor:

unzip raspbian_lite_latest

zistíme aké blokové zariadenie sú dostupné:

lsblk

zistíme ktoré blokové zariadenia (disky) sú pripojené:

df -h

vložíme SD kartu do čítačky a opäť zadáme posledné dva príkazy, lsblk a df -h, karta by sa mala objaviť minimálne vo výstupe lsblk ako ďalšie zariadenie, ak máme systém nastavený tak aby pripájal zariadenia automaticky, karta by sa mala objaviť aj vo výstupe df -h. Toto môžeme zopakovať aj viac krát (pripojenie a odpojenie karty a výstup lsblk a df) aby sme si boli úplne istí ako je označená SD karta (na rôznych systémoch to bude rôzne).

 raspbian lsblk df

Z obrázku vyššie je zrejme, že celkovo sú dostupné 4 zariadenia (sda, sdb, sr0 a mmcblk0) no pripojené sú len sda s jednou partíciou a mmcblk0 s dvoma partíciami. Ak sme si istý čo je SD karta na ktorú chceme inštalovať raspbian, odpojíme ju (ak ju systém pripojil automaticky):

sudo umount /dev/mmcblk0

následuje najkritickejší krok, zapíšeme stiahnutý obraz na kartu:

sudo dd bs=4M if=2015-11-21-raspbian-jessie.img of=/dev/mmcblk0

ak chceme sledovať priebeh tejto operácie, použijeme pv:

sudo dd bs=4M if=2015-11-21-raspbian-jessie.img | pv | of=/dev/mmcblk0

ak nastane problém môžeme vyskúšať zmeniť hodnotu bs=1M

ak proces prebehne úspešne až do konca, pre istotu vyprázdnime cache:

sync

SD kartu môžeme odpojiť a vybrať z čítačky, mala by byť pripravená na prvé nabootovanie.

Windows:

vo windows exploreri nájdeme miesto kde sme stiahli OS raspbian, pomocou 7zip archív rozbalíme, vložíme SD kartu do čítačky a vo windows exploreri zistíme aké písmeno jej systém priradil, stiahneme si utilitu Win32DiskImager z sourceforge.net, rozbalíme zip archív a spustíme utilitu ako správca, vo Win32DiskImager je možné vybrať len dve veci, device – SD karta na ktorú chceme zapisovať a Image File – súbor s OS ktorý chceme zapísať, ak sme si oboma údajmi istý, môžeme stlačiť tlačidlo Write, ak proces prebehne úspešne až do konca, ukončíme utilitu a odpojíme kartu.
raspbian win32diskimager

4. Prvý krát spustíme raspberry pi a raspbian.

Vložíme SD kartu do slotu, pripojíme rpi k routru (switchu) a pripojíme elektrické napájanie, rpi nabootuje. Keďže rpi bude slúžiť ako server, nie je pripojený k monitoru a nemá ani klávesnicu. Do systému sa budeme pripájať pomocou ssh a tak potrebujeme zistiť IP adresu ktorú router ( dhcp server ) priradil raspberry pi, bez nutnosti pripájať rpi k monitoru, televízoru. Podmienkou je aby rpi bolo na tom istom subnete ako počítač z ktorého to zisťujeme.

Linux:

nainštalujeme nmap:

sudo apt-get update
sudo apt-get install nmap

zistíme meno nášho zariadenia:

hostname

zistíme našu IP adresu:

hostanme -I

zistíme IP adresy všetkých zariadení na našom subnete:

nmap -sP 192.168.3.33/24

výstup sú údaje v tvare Nmap scan report for hostname a IP adresa v zátvorke, dôležitá je IP adresa.

raspbian nmap arp

Z výstupu nmap vieme zistiť, že na našom subnete sú dve zariadenia. Keďže hostname nášho zariadenia poznáme ( zwerina-dev ), tak to druhé zariadenie ( zwerina-01 ) je to ktorého IP adresu hľadáme. Keďže v raspbiane je hostname nastavený na raspberrypi, môžeme si vyfiltrovať len zariadenia s týmto hostanme:

nmap -sP 192.168.3.33/24 | grep raspberrypi

Arp je súčasť distribúcie, výstup sú údaje v tvare: hostname, ip adresa v zátvorke, MAC adresa, typ rozhrania v hranatej zátvorke a rozhranie, dôležitá je opäť IP adresa.

raspbian nmap arp

Windows:

Stiahneme a nainštalujeme si napríklad Advanced IP scanner a preskenujeme celý subnet, hľadané čerstvo nabootované raspberry pi má hostname raspberrypi, pre ďalší postup je dôležitá IP adresa.

raspbian ip scan windows

5. Prihlásime sa cez ssh (heslo),

pomocou užívateľského mena (pi) a hesla (raspberry). Na počítači s windows použijeme PuTTY a na linuxovom stroji pužijeme ssh. Keďže prihlasovanie pomocou hesla nie je veľmi praktické a pre zvyčajne slabé heslá ani bezpečné, nastavíme možnosť prihlasovať sa pomocou páru ssh kľúčov (openssh súkromný a verejný kľúč).

V domácom adresári (raspberry pi) vytvoríme podaresár .ssh a nastavíme mu prístupové práva, v adresári .ssh vytvoríme súbor authorized_keys a aj tomu nastavíme prístupové práva, do súboru authorized_keys prekopírujeme náš verejný kľúč (public ssh key):

cd $HOME && mkdir .ssh && sudo chmod 700 .ssh
cd $HOME/.ssh && touch authorized_keys
sudo chmod 600 authorized_keys
cat moj_verejny_kluc >> authorized_keys

Aktualizujeme databázu zdrojov a nainštalované balíčky, software:

sudo apt-get update && sudo apt-get -V upgrade

Reštartujeme systém, aby sa vykonané zmeny prejavili, toto bude nutné vykonávať po všetkých dôležitých zmenách v systéme (aktualizácia jadra…):

sudo reboot

6. Prihlásime sa cez ssh (ssh kľúč),

ale už pomocou páru ssh kľúčov (toto bude nutné po každom reštarte, ak chceme pokračovať v údržbe a správe servera). Nainštalujeme skript pomocou ktorého je možné aktualizovať firmware a linuxové jadro (vďaka Hexxeh):

sudo apt-get install rpi-update

Aktualizujeme firmware a jadro a reštartujeme stroj:

sudo rpi-update
sudo rebot

Ak je prihlasovanie pomocou páru ssh kľúčov bezproblémové môžeme zvýšiť bezpečnosť ssh servera zmenou predvolených nastavení. Prihlásime sa pomocou ssh kľúča a editovaním konfiguračného súboru zmeníme nastavenie ssh servera:

sudo nano /etc/ssh/sshd_config

Následujúce riadky odkomentujeme (zmažeme symbol # zo začiatku riadka) alebo upravíme hodnotu/yes/no takto:

LoginGraceTime 30 (predvolená hodnota je 120 sekúnd, skrátime na 30 sekúnd, je to doba počas ktorej môže byť užívateľ pripojený, ale nezačne autorizačný proces)

PermitRootLogin no (nie je možné prihlásiť sa ako uživateľ root)

PasswordAuthentication no (nie je možné prihlásiť sa pomocou hesla)

raspbian sshd config

a doplníme riadok:

AllowUsers pi (len užívateľ pi sa môže prihlásiť)

reštartujeme ssh server:

sudo systemctl restart sshd.service

7. Vykonáme prvotné nastavenie.

sudo raspi-config

raspbian raspi-config

1 Expand Filesystem toto vykonáme až ako úplne posledný krok, roztiahnutie súborového systému na celú SD kartu (preto lebo keď dokončíme toto prvotné nastavenie bude vhodné vytvoriť zálohu systému, resp. je možné zmeniť rootfs z ext4 na btrfs a všetko toto je vhodnejšie robiť na menšej neroztiahnutej partícii).

2 Change User Paswword veľmi dôležité, nastaviť vlastné, dostatočne komplikované nové heslo (zmes malých a veľkých písmen, číslic a znakov), aj keď na prihlasovanie cez ssh budeme používať kľúče, heslo musí byť dostatočne silné.

3 Boot Options keďže to bude server, tak nepotrebujeme žiadne grafické rozhranie a nabootovať to môže teda len do cli, vyberieme možnosť B1 Console

4 Wait for Network at Boot vyberieme druhú možnosť Slow, čakať na pripojenie k sieti pred dokončením bootovania.

5 Internationalization Options nastavíme I2 Change Timezone na Bratislava, ostatné dve možnosti (I1 Locale a I3 Keyboard) môžu ostať v predvolených hodnotách en_GB.UTF-8

6 Enable Camera nie je potrebné

7 Add to Rastrack nie je potrebné, a už sa ani nedá pridať

8 Overclock nie je potrebné (možno neskôr, ale potom je potrebné vyriešiť aj chladenie)

9 Advanced Options

A1 Overscan nie je potrbné
A2 Hostname dôležité, nastavíme meno stroja viditeľné na sieti
A3 Memory Split dôležité, nastavíme najnižšiu možnú hodnotu (16MB)
A4 SSH dôležité, ssh server musí byť zapnutý (enabled)
ďalšie možnosti (A5 až A0) ponecháme predvolené hodnoty

Ak nechceme zálohovať čerstvo nastavený systém, alebo meniť súborový systém na btrfs (neskôr, v niektorom z následujúcich dielov) je možné zväčšiť / roztiahnuť ext4 súborový systém na veľkosť celej SD karty. Na záver ako vždy server reštarujeme:

sudo reboot

Zdroj: rôzne stránky, fóra a how to’s na nete.

Text neprešiel žiadnou jazykovou a ani odbornou korektúrou.

Zdieľaj to:

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *