Ubuntu 18.04 LTS (Bionic Beaver) minimális szerver telepítése (2. oldal)

botond küldte be 2019. 07. 02., k – 17:41 időpontban

A 2. oldal tartalma

 

Folytatás

Az előző oldalon végrehajtottuk a telepítő összes lépését, most pedig még elvégzünk néhány parancssori beállítást, hogy készen álljon ez a minimális szerver a későbbi szerverek telepítésére.

 

 

Első belépés

A gép újraindítása után először a konzolon lépjünk be:

Ubuntu 18.04 LTS (Bionic Beaver) - Belépés

Belépés után kapunk jó néhány információt, többek között a gép IP-címe is megjelenítésre kerül, de ez majd kicsit később lesz fontos. Amivel most foglalkoznunk kell először, hogy újra kell indítanunk a gépet, mert az első induláskor még elvégzett pár fontos beállítást a rendszer a háttérben:

Ubuntu 18.04 LTS (Bionic Beaver) - Újraindítás szükséges

Amint láthatjuk, hogy 80 darab frissíthető csomagunk is van, mivel nem a kisméretű "netinstall" telepítőt használtuk, ami a telepítés közben szedi le a friss csomagokat.

Először indítsuk újra a gépet, ahogy kéri a rendszer is:

sudo reboot

Ekkor bekéri a telepítéskor megadott felhasználónk jelszavát, majd újraindul a rendszer.

 

Csomagtár adatbázis és a csomagok frissítése

A gép újbóli elindulása után lépjünk be a felhasználónkkal, majd szerezzünk root jogosultságot:

sudo su

Ezután frissítsük a csomagtár adatbázisunkat és a csomagjainkat a Debian-on is ismert módon:

apt-get update
apt-get upgrade

Ekkor elindul a frissítés:

Ubuntu 18.04 LTS (Bionic Beaver) - Csomagok frissítése

Nálam éppen 36 MB-nyi csomagfrissítést hajt végre. Itt válasszuk az Igen opciót.

Frissítés közben előjön még egy dialógus is, ahol rákérdez, hogy az egyes szolgáltatások egyesével történő újraindításainak a kézi jóváhagyását szeretnénk-e, vagy egy lépésben hajtsa végre automatikusan az összes daemon újraindítását:

Ubuntu 18.04 LTS (Bionic Beaver) - Szolgáltatások együttes újraindítása

Itt tehát célszerű a Yes opcióval letudni egyszerre az egészet.

Most, hogy már frissek a csomagjaink is, elvégezhetjük a szükséges beállításokat.

 

 

Root felhasználó engedélyezése (opcionális)

Az Ubuntuban alapértelmezetten a root felhasználóval történő bejelentkezés le van tiltva. A fejlesztők és az Ubuntu közösség erősen ellenjavallják a root felhasználó közvetlen belépését. Helyette a sudo használatát javasolják, amikor szükséges a root jogosultság egy feladat elvégzéséhez. Mindazonáltal a root belépés engedélyezése lehetséges, de csak akkor használjuk, ha valóban szükséges!

Ha mindenképpen be szeretnénk kapcsolni a root belépést, akkor először lépjünk be sima felhasználóként, majd adjunk jelszót a root felhasználónak:

sudo passwd root

Ekkor először a sudo parancs bekéri a sima felhasználónk jelszavát, majd utána pedig a passwd parancs kétszer a root felhasználó új jelszavát. Ez után már be tudunk lépni közvetlenül root-ként például a konzolon.

Amennyiben jelszó nélkül szeretnénk használni a sudo parancsot, erről itt tájékozódhatunk.

 

Távoli SSH belépés

A VirtualBox-ban futó gép konzolos módú használata szerintem kicsit kényelmetlen. Pl. vágólap, egérkezelés, stb. Ezért én személy szerint az asztali (Debian) gépemen nyitok egy terminál ablakot, és onnan lépek be SSH-n keresztül, mert nekem jobban kézre áll a megszokott terminál ablakomban minden. Természetesen akik Windows-t használnak onnan is be lehet lépni például a Putty segítségével. De akiknek megfelel a VirtualBox-ban futó gép konzolja, azok maradhatnak is abban.

Az első belépésnél írtam, hogy megjelenik a gép IP-címe. Nos, akik mégis az SSH-t választják, azok ezzel az IP-címmel tudnak belépni a gazda gépről, elétéve a telepítéskor megadott felhasználónevet. Linuxról nálam például:

ssh linuxportal@192.168.1.104
Az IP-cím minden hálózatban más lehet. Nálam például az ez előtti címek le vannak foglalva az asztali gép, laptop, stb számára, így nálam ez volt az első szabad cím. Tehát mindenki a saját címét használja, amit kiosztott pl. a router.
Továbbá fontos még, hogy a gazda gépről csak akkor tudunk belépni a frissen telepített vendég gépünkbe, ha a VirtualBox-ban a hálózatoknál Bridge-elt módot állítottunk be a hálózati kártyánk számára.

Ha minden jól megy, akkor az első SSH bejelentkezésnél – a már jól ismert módon – először egy új digitális ujjlenyomat hozzáadása következik, amit egy yes válasszal kell megerősítenünk:

Ubuntu 18.04 LTS (Bionic Beaver) - SSH belépés - Új digitális ujjlenyomat hozzáadása

Tehát itt a gazda géphez adtuk hozzá a vendég gép IP-címéhez kapcsolódó digitális ujjlenyomatát, amit többször már nem fog megkérdezni.

Innentől én a terminálban folytatom a munkát, de a konzolban is megoldható, csak ott szerintem kényelmetlenebb.

 

Nano beállítása (opcionális)

A GNU nano szövegszerkesztő szerintem a legjobb szövegszerkesztő a terminálban végzett munka során. Az Ubuntu 18.04 LTS (Bionic Beaver) verziója tartalmazza alapból, így telepítenünk már nem kell, hanem csak apró finomhangolást célszerű végeznünk rajta, hogy még kényelmesebb legyen a használata.

Ezt sima felhasználóként és root-ként is elvégezhetjük, hogy mindkettőnél ugyanúgy működjön a kedvenc szerkesztőnk. Az adott felhasználó home könyvtárban hozzuk létre a nano konfigurációs fájlját:

nano ~/.nanorc

Majd ebbe tegyünk bele néhány beállítást:

set tabsize 4
set smooth
set mouse
set const

A sorok jelentése a következő:

  • set tabsize 4: Tabulátor méret 4 karakter. Alapból 8 karakter, ami túl sok. 4 karaktert szokás használni a legtöbb helyen.
  • set smooth: Finom görgetés. Ennek hatására a görgetés soronként történik, így nagyobb fájloknál kényelmesebben lehet görgetni.
  • set mouse: Engedélyezi az egér műveleteket. Például kurzor pozícionálása egérrel, stb.
  • set const: Sor, oszlop, karakter pozíció információk megjelenítése. Ez is jól jön, ha például egy adott konfig fájlban az x. sorban kell elvégezni egy beállítást. Ezzel könnyen oda tudunk navigálni a megfelelő sorba.

Természetesen még rengeteg beállítása van a nano-nak, így mindenki fűszerezheti a saját kedve szerint.

Lementés és kilépés után a nano következő indításánál már érvénybe is lépnek a beállítások.

 

 

Hálózat beállítása

Az Ubuntu telepítője DHCP-n keresztül konfigurálta be a hálózatot, ami dinamikus címkiosztást eredményez. Egy szerver működtetéséhez pedig statikus IP-címre van szükség. Ha otthoni fejlesztői vagy tesztkörnyezetre építjük a szervert, akkor ez nem fontos, ebben az esetben elég csak a routerünkben beállítani egy fix IP-címet a gép MAC címéhez rendelve, és át is ugorhatjuk ezt a részt. Ha viszont éles használatra készítünk szervert, akkor az Ubuntuban (is) el kell végezni a fix IP-cím beállítását, melyet az alábbi módon végezhetünk el.

Netplan beállítása

Az Ubuntu 18.04-ben a hálózat a Netplan segítségével van bekonfigurálva, a – korábban a Debian rendszereken is ismert – /etc/network/interfaces konfigurációs fájl már nincs használatban. Ha belenézünk ebbe, akkor csak ennyit találunk:

cat /etc/network/interfaces
# ifupdown has been replaced by netplan(5) on this system.  See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
#    sudo apt install ifupdown

Van ugyan lehetőség a régi hálózatkezelő visszaállítására, de minek bonyolítsuk a dolgot, ha a Netplan-ban is be lehet állítani. Lépjünk be a Netplan konfig könyvtárába root-ként:

cd /etc/netplan

Találunk itt egy konfigurációs fájlt, nyissuk meg a nano-val:

nano 50-cloud-init.yaml

Ebben ez a tartalom van:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp0s3:
            dhcp4: true
    version: 2

Kommentezzük ki a network szekció minden sorát, hogy megmaradjanak az eredeti beállítások is, majd tegyük bele a saját, statikus IP-címet tartalmazó beállításainkat, hogy így nézzen ki a fájl:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
#network:
#    ethernets:
#        enp0s3:
#            dhcp4: true
#    version: 2

network:
    version: 2
    renderer: networkd
    ethernets:
        enp0s3:
            dhcp4: no
            dhcp6: no
            addresses: [192.168.1.125/24]
            gateway4: 192.168.1.1
            nameservers:
                addresses: [8.8.8.8,8.8.4.4]
Fontos!
Itt ügyeljünk a behúzásokra, mert csak így fogja értelmezni a rendszer a yaml fájlt. Tabulátor használata nem megengedett, csak szóközöket használhatunk a behúzáshoz. Én a "szabványos" 4 karakteres behúzást használtam a konfigurációs fájlban, így jobban áttekinthető.
Az általam bemutatott konfiguráció eltérhet máshol. Így például a hálózati eszköz neve (enp0s3), valamint az átjáró IP-címe (gateway4 utáni cím) más gépen illetve hálózaton más lehet. Ezeknek nézzünk utána (a hálózati eszköz nevét kiírja belépéskor, az átjáró címét pedig például az ip r | grep default vagy a route -n parancsok valamelyikével kérdezhetjük le).
Továbbá az általam megadott 192.168.1.125-ös IP-cím is sajátos beállítás, tehát mindenki állítsa a hálózatának és a számára megfelelő címre (én a Debian virtuális gépeket a 120-as IP cím végződéssel állítom be, az Ubuntu rendszereket pedig 125-re). Éles szerver esetén (pl. VPS vagy bérelt szerver) pedig az előfizetéshez kapott statikus IP-címet használjuk.
A névszervereknél pedig a Google publikus névszervereit adtam meg, ez mindenhol működik.

Mentsük le, majd lépjünk ki a szerkesztőből.

Ezután a netplan generate parancs a yaml fájlból készít egy a háttér hálózatkezelő rendszer számára értelmezhető konfigurációt. Futtassuk tehát (root-ként ezt is):

netplan generate

Ha a parancs tabulátort talál valahol a fájlban a behúzások helyén, akkor ezt a hibát dobja:

/etc/netplan/50-cloud-init.yaml:13:1: Invalid YAML: tabs are not allowed for indent:
        version: 2
^

Ha pedig valahol nem használtunk behúzást, akkor ilyen hibát dob:

/etc/netplan/50-cloud-init.yaml:16:15: Error in network definition: expected mapping (check indentation)
        enp0s3:
               ^

Ha minden rendben van, akkor nem ad semmilyen kimenetet.

Ezután a változtatások érvényesítéséhez futtassuk az alábbi parancsot:

netplan apply

Hosztnév beállítása

A telepítés során a hosztnév résznél nem volt lehetőség a teljes FQDN név megadására, hanem csak magát a hosztnevet lehetett beállítani. Kicsit elsietve a "linuxportal" nevet adtam ott meg. Viszont most újragondolva ezt, másképp állítom be. Ennek a gépnek a teljes hosztneve legyen mondjuk "ubuntu18.linuxportal.vm" Ez így utal a gépen lévő rendszerre (ami a későbbi szerver telepítésekhez is tökéletes lesz), a linuxportálos szerver szériára, és hogy egy virtuális gépről van szó. Természetesen itt most mindenki használja a saját, megfelelő FQDN nevét ennek a mintájára. Tehát az itt következő rész tökéletes lesz egy teljes név változtatás kivitelezéséhez. Így ha valaki letölti majd ezt a szervert, akkor ennek megfelelően át tudja állítani a saját hosztnevére.

Elsőként nyissuk meg a a /etc/hosts fájlt:

nano /etc/hosts

Ebben jelenleg ez van:

127.0.0.1       localhost.localdomain   localhost
::1             localhost6.localdomain6 localhost6

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Bővítsük ki az alábbiaknak megfelelően (mindenki a saját nevét és a fent használt IP-címét használja):

127.0.0.1       localhost.localdomain   localhost
192.168.1.125   ubuntu18.linuxportal.vm   ubuntu18
::1             localhost6.localdomain6 localhost6

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Mentsük le, majd nyissuk meg szerkesztésre a /etc/cloud/cloud.cfg fájlt:

nano /etc/cloud/cloud.cfg

Ennek rögtön az eleje felé találunk egy ilyen sort:

[...]
preserve_hostname: false
[...]

Ezt módosítsuk "true" -ra, majd mentsük le.

Ez a beállítás a Live ISO telepítők esetén szükséges, amiben cloud szerver szolgáltatások is vannak. Enélkül a rendszer újraindítása után visszaáll a hosztnév a korábbi beállításra.

Ezután állítsuk be a /etc/hostname fájlba is a hosztnevet (a tartománynév nélkül). Ehhez futtassuk a következő parancsokat:

echo ubuntu18 > /etc/hostname
hostname ubuntu18
Az első parancs beállítja a hosztnevet a konfigurációs fájlba. Ez a rendszer újraindításakor kerül kiolvasásra. A második parancs pedig erre a munkamenetre állítja be a hosztnevet, így most nem kell újraindítani a gépet.

Ezután ellenőrizhetjük a rövid és a teljes hosztneveinket, amik már újraindítás után is ezek maradnak:

Ubuntu 18.04 LTS (Bionic Beaver) - Hosztnév ellenőrzése

 

 

Extrák

A teljesség igénye nélkül itt még felsorolok pár beállítást, amik nem kötelezőek, de ha elkészítjük őket, akkor komfortosabbá tehetjük velük a terminálban végzett munkát.

Bash parancssori kiegészítés

A Bash parancssori kiegészítés, vagy másnéven a Bash completion segítségével tudjuk a Tab billentyűvel gyorsabban begépelni a kívánt parancsokat, illetve fájlneveket. Erről részletesebben majd egy másik cikkben írok, itt most annyi a lényeg, hogy a root felhasználó számára alapból nincs bekapcsolva a programozható Bash kiegészítés, hanem csak az alap kiegészítés, ami annyit jelent, hogy csak a parancsokat és a fájlneveket tudja kiegészíteni. Sokszor azonban szükség lehet a különböző parancsoknál is a programozott kiegészítésre.

A funkció elérhető a rendszeren már előre telepített bash-completion csomag által, csak engedélyezni kell. Ehhez a root könyvtárában nyissuk meg a .bashrc fájlt:

sudo nano ~/.bashrc

Majd görgessünk a legaljára, ahol ezt a részt látjuk:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

Itt vegyük ki a kommentet az utolsó három sor elől, ahogy ezt pirossal ki is emeltem.

Mentsük le, majd source-oljuk a .bashrc fájlt, hogy érvénybe lépjen:

source .bashrc

vagy

. .bashrc

parancsok valamelyikével.

Innentől ha például beírjuk mondjuk a systemctl parancsot, és nyomunk utána kettő Tab billentyűt, akkor már felsorolja ennek a parancsnak a további kapcsolóit:

Ubuntu 18.04 LTS (Bionic Beaver) - Bash parancssori kiegészítés

Alias-ok beállítása

Van pár alias parancs beállítva, de én ezt még egy kicsit átvariálom az alábbiak szerint (ezt el lehet végezni a sima felhasználónál is, és a root-nál is):

nano ~/.bashrc
[...]
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'

    export LS_OPTIONS='--color=auto --group-directories-first'

    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
#alias ll='ls -alF'
#alias la='ls -A'
#alias l='ls -CF'

# Saját ls aliasok
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lAh'
[...]

A .bashrc részletének felső részében hozzáadtam egy export LS_OPTIONS kezdetű sort, amivel közös kapcsolókat állítok be a lenti saját ls alias-ok számára. A --group-directories-first egy igen hasznos ls kapcsoló, segítségével a könyvtárakat előre sorolja, így sokkal áttekinthetőbb könyvtár listát kapunk.

A részlet alsó részén pedig kikommenteztem a gyári ls aliasokat és betettem helyettük a sajátjaimat. Ezek közül én a legutolsót használom a leggyakrabban, ami az "l" parancs hatására futtatja az ls parancsot, amely így a következő kapcsolókat örökli:

  • --color=auto: Színes kimenet használata.
  • --group-directories-first: A már fentebb is említett könyvtárak előre listázása.
  • -l: Részletes lista mód
  • -A: Kilistázza a rejtett fájlokat is, de kihagyja a könyvtárakból a gyökér könyvtár (.) és a szülő könyvtár (..) felsorolását (hosszútávon szerintem zavaró, a sok . és .. a listák elején).
  • -h: "Human-readable", azaz a fájlok méreteinél a byte-ok helyett leosztja Kb-ra, Mb-ra, Gb-ra. Sokkal könnyebben olvasható így a fájlok mérete.

Persze mindenki a saját igénye szerint alakíthatja az egészet, én így szoktam meg, nekem így kényelmes a használata.

A színes ls parancs használatáról korábban már írtam ebben a leírásban, tehát még vannak lehetőségek.

 

 

Színes root prompt

Alapból a sima felhasználónál be van kapcsolva a színes prompt, viszont a root-nál nincsen. Bekapcsolásához lépjünk be root-ként, majd nyissuk meg szintén a .bashrc fájlját:

nano ~/.bashrc

Ebben (a gyári fájl 39. sorában) találunk egy ilyen beállítást:

#force_color_prompt=yes

Ez elől vegyük ki a kommentet, majd mentsük le.

Ezután source-oljuk a root .bashrc fájlját:

. ~/.bashrc

És utána rögtön átvált színesre a prompt.

A színes prompt használatáról ebben a leírásban tájékozódhatunk bővebben.

 

Virtuális gép letöltése

Az elkészült virtuális gép letölthető innen.

 

Konklúzió

Ez lenne tehát egy Ubuntu 18.04 LTS (Bionic Beaver) minimális szerver telepítése, amely kiváló alapja lesz későbbi LAMP, vagy tökéletes szerverek telepítéseinek. Sok mindent beállítottunk, így a későbbiek során már kényelmesen dolgozhatunk a szerveren.

 

Hogyan tovább?

A minimális szerver elkészítése után kiváló lépés egy Ubuntu 18.04 LTS (Bionic Beaver) LAMP szerver v1.0 telepítése.

Továbbá a Debian rendszerre készült LAMP szervereket, illetve az összetettebb tökéletes szervereket is ajánlom tanulmányozásra.

 

 

Lapozó

Ez a leírás több oldalból áll: