loader
Foto

Ubuntu 20.04 felkészítése ASP.NET Core projektek futtatására

Ebben a cikkben megnézzük az Ubuntu 20.04-re azoknak a programoknak, szolgáltatásoknak a telepítését, amelyek szükségesek ahhoz, hogy az ASP.NET Core alkalmazások futtathatók legyenek ezen a disztribúción. Ezért telepíteni fogjuk most a keretkörnyezetet, egy webkiszolgálót (Nginx), MSSql szervert, illetve két alkalmazást, amellyel használni tudjuk az SQL szervert.

Ebben a cikkben azt mutatjuk be, hogy hogyan lehet egy Ubuntu 20.04 operációs rendszerrel rendelkező VPS-t felkészíteni arra, hogy ASP.NET Core alkalmazások futtatására képes legyen. Ebben a cikkben nem foglalkozunk az Nginx beállításának lehetőségeivel, hogy a tárhely ne csak egy domain "lekezelésére" legyen képes. A következő cikkben térünk ki erre a lehetőségre is, akkor fogjuk megnézni azt is, hogy hogyan lehet a C# nyelven írt webes alkalmazást kipublikálni erre az Ubuntu szerverre.

Először az Ubuntu 20.04-re feltelepítjük a .NET Core 3.1-et, majd alkalmassá kell tennünk a VPS-ünket arra, hogy webes kéréseket ki tudjon szolgálni. Erre több lehetőségünk is van, telepíthetjük akár az Apache-ot, vagy az Nginx-et erre a célra. Mi az Nginx-et fogjuk majd telepíteni.
A webes fejlesztéseknél ma már elengedhetetlen az adatbázisok használata. Noha célszerű külön adatbázisszervert alkalmazni, de a cikk elkészítésekor a webes kiszolgáló és az adatbázisszerver ugyanazon az IP címen található. Célszerűnek tűnik az MySql telepítése az Ubuntu-ra, de az ASP.NET Core miatt a cikk írásakor az MSSql-re esett a választás. 

 

.NET Core 3.1 telepítése

Először képessé kell tennünk az Ubuntu operációs rendszert futtató VPS-ünket arra, hogy .NET Core alkalmazásokat tudjon futtatni, ehhez telepítenünk kell a keretkörnyezetet. A cikk írásakor a legújabb stabil keretkörnyezet a 3.1-es. A következő "Ubuntu" operációs rendszerekre érhető el a .NET Core (1. ábra).

kep
1. ábra   A .NET Core a következő Ubuntu verziókra érhető el
 

Először adjuk ki a következő parancsot, amelynek segítségével a telepítőfile-t lemásoljuk a 20.04-es VPS-ünkre.

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

 

Ezután a "dpkg -i" uatsítással tudjuk az Ubuntu operációs rendszeren a "*.deb" csomagokat telepíteni.

dpkg -i packages-microsoft-prod.deb

 

Ez a két lépés látható a következő ábrán.

kep
2. ábra   .NET Core 3.1 telepítése Ubuntu 20.04-re
 

A telepítés után update-eljük az operációs rendszerünket.

apt-get update

 

Ezután tudjuk telepíteni a .NET Core SDK-t a következő parancs kiadásával.

apt-get install -y dotnet-sdk-3.1

 

A .NET Core SDK telepítése látható a 3. ábrán.

kep
3. ábra   Az SDK telepítése
 

A telepítés végén a következő üdvözlő képernyő fogad minket (4. ábra).

kep
4. ábra   Sikeres az SDK telepítése
 

Célszerű telepíteni még a Runtime-ot is, adjuk ki ehhez a következő utasítást.

apt-get install -y aspnetcore-runtime-3.1

 

Ezekkel a lépésekkel a .NET Core sikeresen telepítettük. Most kell egy webkiszolgáló, amely a webes kéréseinket fogja kezelni. Ez lehet akár az Apache, de akár az Nginx is. Fontos megjegyezni azt, hogy egyszerre csak az egyik működhet.

 

Nginx telepítése

Az Nginx telepítéséhez a következő parancs kiadása szükséges.

apt install nginx

 

Ezzel a paranccsal a telepítés sikeresen megtörténik (5. ábra).

kep
5. ábra   Nginx telepítése az Ubuntu 20.04-es operációs rendszerre
 

Nézzük most meg, hogy a tűzfalszabályhoz melyik alkalmazásokat tudjuk hozzáadni. Ehhez a következő utasítás kiadása szükséges.

ufw app list

 

Látható a 6. ábrán, hogy az Nginx képes lekezelni a HTTP (80-as port) és a HTTPS (443-as port) kéréseket. Látható továbbá az is, hogy a VPS-ünkön megtalálható az Apache is.

kep
6. ábra   Tűzfal 
 

Engedélyezzük az előbb felsorolt alkalmazáslistából az Nginx HTTP-t és a HTTPS-t, illetve ha szeretnénk ssh-val hozzáférni a szerverünkhöz, akkor adjuk hozzá a szabályhoz az ssh-t is. Ezeket az utasításokat kell kiadni a fent említett tűzfalszabályok beállításához.

ufw allow 'Nginx HTTP'
ufw allow 'Nginx HTTPS'

 

A két Nginx-es engedélyezés helyett alkalmazhattuk volna a "Full"-t is. Végül hozzáadhatjuk a 22-es port engedélyezését is, megkönnyítve a szerverünk távoli menedzselését (és az esetleges feltörését is.... :( )

ufw allow ssh

 

Ezután nézzük meg a következő utasítással a tűzfal beállítását.

ufw status

 

A tűzfal szabály megtekintése, illetve a módosítása látható a következő ábrán.

kep
7. ábra   Tűzfal szabály kiiratása, illetve kibővítése az ssh-val
 

Végül nézzük meg, hogy működik-e az Nginx. Adjuk ki a következő parancsot ehhez.

systemctl status nginx

 

Látható a 8. ábrán, hogy az Nginx ugyan telepítésre került, de még nem működik, inaktív.

kep
8. ábra   Az Nginx még inaktív
 

Azért inkatív még az Nginx, mert az Apache fut (9. ábra).

kep
9. ábra   Az Apache fut még az Nginx helyett
 

Tiltsuk le az Apache működését (disable), majd indítsuk el az Nginx-et és kérdezzük le a státuszát (10. ábra).

kep
10. ábra   Az Nginx elindítása, és a státuszának lekérdezése
 

Látható tehát az, hogy az Nginx már fut, a webes kéréseket innentől kezdve nem az Apache, hanem az Nginx szolgálja ki.

 

MSSql szerver telepítése

Noha C# nyelven kényelmesen megoldható a különböző SQL parancsok futtatása, tehát akár MySql szerver is használható, mi most még is az MSSql-t fogjuk telepíteni.
A telepítés elkezdésekor a következő utasítás szükséges.

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

 

Ezután adjuk hozzá a repository-hoz a jövetkező Microsoft-os elérést. Adjuk ki a következő parancsot.

add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"

 

Látható a következő ábrán, hogy ennek a parancsnak a futtatása nem volt sikeres, mert ismeretlen az "add-apt-repository". Szerencsére kapunk egy ajánlást a telepítésre, ezért könnyen tudjuk telepíteni ezt a hiányzó parancsot.

kep
11. ábra   Sikertelen repository használat
 

Most adjuk ki újra a korábbi utasítást, amely sikeresen lefut (12. ábra).

kep
12. ábra   Sikeresen hozzáadásra került a kérdéses link a repository-ba
 

Ahhoz, hogy a (bővített) repository már használható legyen, update-elni kell, ehhez adjuk ki a következő utasítást.

apt update

 

Most már kényelmesen tudjuk telepíteni a MSSql szervert a következő utasítással.

apt install mssql-server

 

A 13. ábrán látható a telepítés menete. 

kep
13. ábra   MSSql szerver telepítése
 

A szerver telepítése után ki kell még adni az ábrán kijelölt utasítást (14. ábra).

kep
14. ábra   Az MSSql szerver konfigurálása
 

A sikeres installálás után látható, hogy a szerverünk már aktív, a szolgáltatás fut (15. ábra).

kep
15. ábra   Az MSSql szerver állapotának lekérdezése
 

Több lehetőségünk is van, hogy használatba vegyük a frisssen telepített szervert, hogy létrehozzunk adatbázisokat, stb. Elérhetjük távolról is, ehhez azonban ki kell nyitni a 1433-as portot. Ez nem szerencsés IT biztonság szempontjából, ezért célszerű inkább valamilyen konzolos programot. Ilyen az "sqlcmd" és az "mssql_cli", ezeket fogjuk most telepíteni.

 

Programok (sqlcmd, mssql_cli) telepítése

Először az "sqlcmd" programot telepítsük, ehhez a következő utasítások kiadása szükséges.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

 

curl https://packages.microsoft.com/config/ubuntu/19.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

 

apt update

 

ACCEPT_EULA=Y apt install mssql-tools unixodbc-dev

 

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

 

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

 

source ~/.bashrc

 

A 16. ábrán látható ezeknek az utasításoknak a végrehajtása.

kep
16. ábra   Az sqlcmd telepítésének részlete
 

Indítsuk most el az sqlcmd-t. Látható, hogy -szerintünk- bonyolult, szokatlan ennek az alkalmazásnak a használata (17. ábra).

kep
17. ábra   Az sqlcmd használata
 

Telepítsük most az "mssql_cli"-t, amelynek a használata véleményünk szerint kényelmesebb. Ehhez telepíteni kell a "pip"-et. Ubuntu 20.04-nél nem olyan egyszerű, ezért használjuk a "get-pip.py" file-t, ezért ezt le kell töltenünk. Használjuk ehhez a következő parancsot.

wget https://bootstrap.pypa.io/get-pip.py

 

A sikeres letöltést láthatjuk a 18. ábrán.

kep
18. ábra   A "get-pip.py" file letöltése
 

Ezután tudjuk ennek a file-nak a segítségével a "pip"-et telepíteni, futtassuk a következő utasítást.

python get-pip.py

 

A sikeres telepítés után a "pip" már alkalmazható (19. ábra). Ez kell nekünk, hogy a mssql_cli programot telepíteni tudjuk.

kep
19. ábra   A pip telepítése
 

Az mssql_cli telepítéséhez a következő parancs kiadása szükséges.

pip install mssql-cli

 

A telepítés menetét látjuk a 20. ábrán.

kep
20. ábra   Az mssql-cli telepítése
 

A sikeres telepítés után már el tudjuk indítani ezt az alkalmazást. Célszerű a "-d" kapcsolóval megnevezni azt az adatbázist, amelyen különböző műveleteket szeretnénk végrehajtani. Ezt most mi nem fogjuk megtenni, hiszen még nincs saját készítésű adatbázisunk. A "-S" kapcsolóval a szerver elérést adhatjuk meg a "-U" segítségével adhatjuk meg a felhasználó nevét, a "-P"-vel pedig a jelszót.
Adjuk ki a következő utasítást.

mssql-cli -S localhost -U SA

 

A default felhasználóval (SA) indítjuk el ezt az alkalmazást. majd a kérdőjellel kérünk segítséget, ezzel listázzuk ki a kiadható parancsok listáját (21. ábra).

kep
21. ábra   Az mssql-cli használata
 

Adjuk ki az "ld" parancsot, és megjelenítjük az adatbázisokat (22. ábra).

kep
22. ábra   Az MSSql szerveren lévő adatbázisok
 

Ezzel be is fejeztük az Ubuntu 20.04-re a különböző telepítéseket. A következő cikkben beállítjuk az Nginx-et úgy, hogy több domain "kiszolgálására" is képes legyen, illetve egy egyszerű alkalmazást is kipublikálunk erre a tárhelyre.

 



Egyéb cikkek

Mappa

További cikkeink ebben a témakörben

Régebbi cikkeink

A Microsoft által kínált .NET Core nagy népszerűségnek örvend, hiszen ennek a segítségével már nem csak Microsoft operációs rendszer alatt tudjuk futtatni az alkalmazásainkat, hanem akár Linux rendszeren is. Ehhez azonban a Linux operációs rendszerü. . . .

A Microsoft által kínált .NET Core nagy népszerűségnek örvend, hiszen ennek a segítségével már nem csak Microsoft operációs rendszer alatt tudjuk futtatni az alkalmazásainkat, hanem akár Linux rendszeren is. Ehhez azonban a Linux operációs rendszerü. . . .

Ebben a cikkben megnézzük az Ubuntu 20.04-re azoknak a programoknak, szolgáltatásoknak a telepítését, amelyek szükségesek ahhoz, hogy az ASP.NET Core alkalmazások futtathatók legyenek ezen a disztribúción. Ezért telepíteni fogjuk most a keretkörnyeze. . . .