Instalarea ERP
Note privind versiunea
Acest ghid istoric se referă la versiunea .NET 5 a sistemului ERP.
După actualizarea .NET, pot fi utilizabile versiuni mai noi ale sistemului de operare.
Configurația descrisă a fost testată pe Linux Ubuntu 20.04. Alte distribuții sau versiuni nu au fost validate în acest ghid.
În funcție de configurație, baza de date poate necesita un calculator separat. Pașii de instalare a sistemului de operare rămân aceiași.
Exemplele folosesc utilizatorul demonstrativ pos. Alegeți o parolă proprie, unică.
1 Instalarea în Oracle VM Box
Pentru rularea ERP într-o mașină virtuală Oracle VM Box, configurați opțiunile următoare.
Creați o mașină virtuală de tip Linux.
Pentru o adresă statică, modul de rețea prezentat în ghid este Bridged Adapter, în locul valorii implicite NAT. După instalarea sistemului de operare, configurați IP-ul static.
Verificați accesibilitatea prin ping:
> ping 192.168.1.10
1.1 Copiere și lipire între gazdă și mașina virtuală
1.1.1 Instalarea Guest Additions
Guest Additions oferă clipboard comun, drag and drop și suport video îmbunătățit. Porniți mașina virtuală și accesați meniul VirtualBox:
Devices → Insert Guest Additions CD image…
Un CD virtual apare în mașina virtuală. Dacă nu pornește automat, deschideți terminalul sistemului invitat și montați și executați instalatorul:
> sudo mkdir /mnt/cdrom
> sudo mount /dev/cdrom /mnt/cdrom
> sudo /mnt/cdrom/VBoxLinuxAdditions.run
După instalarea reușită, reporniți mașina virtuală. Verificați instalarea cu:
> lsmod | grep vboxguest
Rezultatul trebuie să indice modulul instalat.
1.1.2 Rezolvarea dependențelor
Dacă instalarea Guest Additions raportează dependențe lipsă, instalați componentele necesare.
> sudo apt update
> sudo apt upgrade
> sudo apt install make perl
Pentru dependențe nefuncționale, poate fi necesar Aptitude:
> sudo apt install aptitude
> sudo apt update
> sudo aptitude install build-essential dkms linux-headers-$(uname -r)
> reboot
1.1.3 Activarea clipboardului partajat
Pe calculatorul gazdă, înainte de pornire, selectați mașina virtuală în VirtualBox Manager.
Accesați Settings → General → Advanced și configurați:
- Shared Clipboard: Bidirectional sau Host to Guest, după necesitate;
- Opțional, Drag and Drop: Bidirectional.
Dacă drag and drop nu funcționează, utilizați o aplicație Remote Desktop sau un folder partajat.
1.2 Folder partajat când drag and drop nu funcționează
În VirtualBox Manager, selectați mașina → Settings → Shared Folders → Add (+):
- Folder Path: folderul de pe gazdă;
- Folder Name: numele vizibil în mașina virtuală;
- Auto-mount și, opțional, Make Permanent.
Un folder numit SharedFolder este montat automat la /media/sf_SharedFolder.
Adăugați utilizatorul în grupul vboxsf pentru acces la folder:
> sudo usermod -aG vboxsf $USER
2 Instalarea Linux pentru ERP și baza de date
2.1 Recomandări
Exemplele folosesc numele pos pentru utilizatorul sistemului și al bazei de date. Numele apare și în fișierele *.bat și *.sh. Adaptați consecvent configurațiile mediului și utilizați parole distincte, administrate în siguranță.
2.2 Pasul 1: mașina virtuală
Instalarea într-o mașină virtuală este opțională, dar facilitează copiile de siguranță și clonarea pentru medii Staging sau Test.
Configurația originală a utilizat PROXMOX, dar se poate folosi și altă platformă de virtualizare. Urmați documentația platformei pentru instalarea sistemului necesar.
2.3 Pasul 2: sistemul de operare
Instalați versiunea Linux indicată la începutul ghidului. Disponibilitatea .NET 5 diferă între distribuții, astfel încât instrucțiunile istorice nu trebuie presupuse compatibile cu versiunile actuale.
După instalare, componentele sistemului se actualizează cu:
> sudo apt-get update
> sudo apt-get upgrade
2.3.1 Configurația sudoers
Unele operații necesită SUDO. Configurația istorică de mai jos permitea executarea fără parolă. Este prezentată ca documentație a versiunii originale; pentru un sistem nou, limitați privilegiile la operațiile necesare:
> sudo -i
~#> cp /etc/sudoers /root/sudoers.bak
~#> visudo
Comanda deschide editorul.
În exemplul original, regulile următoare permiteau toate comenzile fără parolă pentru utilizatorul și grupul pos:
pos ALL=(ALL) NOPASSWD: ALL
%pos ALL=(ALL) NOPASSWD: ALL
#ASPDOTNET
Defaults env_keep += „ASPNETCORE_ENVIRONMENT”
Defaults env_keep += „DOTNET_ENVIRONMENT”
Reporniți sistemul:
> reboot
2.3.2 Adresa IP
Calculatorul ERP utilizează o adresă IP fixă, configurată și în fișierele appsettings.json ale mediului. Rezervați, dacă este necesar, încă două sau trei adrese pentru celelalte medii.
Adresa demonstrativă pentru instalarea independentă este 192.168.1.10. Configurați adresa potrivită rețelei din interfața sistemului de operare.
Reporniți sistemul:
> reboot
2.4 Aplicație Remote Desktop — opțional
Pentru administrarea la distanță poate fi utilizată o aplicație precum RustDesk, AnyDesk sau TeamViewer.
Pe majoritatea distribuțiilor Linux, instalatorul se obține de la furnizor sau din managerul de aplicații.
Configurați accesul nesupravegheat numai dacă este necesar și protejați-l cu o parolă adecvată.
2.4.1 Monitor virtual — atenție
Instalarea poate afecta driverele video ale unei mașini virtuale. Creați o copie de siguranță înainte.
Mașinile virtuale includ de regulă un monitor virtual. Un calculator fizic fără monitor poate necesita o astfel de componentă pentru afișarea corectă prin Remote Desktop.
Pentru Ubuntu 20.04, exemplul utilizează monitorul virtual xserver:
> sudo apt-get install xserver-xorg-video-dummy
> cd /usr/share/X11/xorg.conf.d
> sudo touch xorg.conf
> sudo nano xorg.conf
Se creează și se deschide fișierul de configurare.
Exemplul definește un monitor virtual de 1600 × 1200 pixeli.
Section „Device”
Identifier „Configured Video Device”
Driver „dummy”
EndSection
Section „Monitor”
Identifier „Configured Monitor”
HorizSync 31.5-48.5
VertRefresh 50-70
EndSection
Section „Screen”
Identifier „Default Screen”
Monitor „Configured Monitor”
Device „Configured Video Device”
DefaultDepth 24
SubSection „Display”
Depth 24
Modes „1600×1200”
EndSubSection
EndSection
3 Instalarea .NET
Ghidul se referă la .NET 5 și Ubuntu 20.04. Comenzile trebuie adaptate și validate pentru alt sistem de operare sau altă versiune de framework.
3.1 Actualizarea surselor de pachete
Comenzile utilizate sunt:
> sudo wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
> sudo dpkg -i packages-microsoft-prod.deb
> sudo apt update
3.1.1 Suport HTTPS — opțional
Dacă este necesar, instalați componenta:
> sudo apt install apt-transport-https
3.1.2 Instalarea libssl — opțional
Configurația descrisă pentru HTTPS utilizează libssl:
> sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1\~18.04.20_amd64.deb
> sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
În cazul problemelor cu instalarea libssl, ghidul original prezintă următoarele comenzi:
> echo „deb http://security.ubuntu.com/ubuntu focal-security main” | sudo tee /etc/apt/sources.list.d/focal-security.list
> sudo apt-get update
> sudo apt-get install libssl1.1
3.2 Instalarea .NET 5
Comanda de instalare:
> sudo apt-get install -y dotnet-sdk-5.0
Verificați SDK-urile instalate:
> dotnet –list-sdks
Rezultatul așteptat în configurația originală:
5.0.408 [/usr/share/dotnet/sdk]
Verificați mediile de execuție:
> dotnet –list-runtimes
Rezultatul așteptat:
Microsoft.AspNetCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
4 Instalarea NGINX
Interfața este publicată prin NGINX. Comanda de instalare:
> sudo apt install nginx
Reporniți sistemul.
> reboot
5 Instalarea PostgreSQL
După instalarea și actualizarea Linux și configurarea IP-ului, instalați baza de date pe același calculator sau pe unul separat.
Referințe:
https://www.cherryservers.com/blog/how-to-install-and-setup-postgresql-server-on-ubuntu-20-04
5.1 Instalarea PostgreSQL
Comanda de instalare:
> sudo apt-get -y install postgresql
Managerul de pachete instalează versiunea disponibilă în sursele configurate. Versiunea validată în ghidul original este 12.22.
Verificați versiunea instalată:
> pg_config –version
Rezultatul configurației originale:
PostgreSQL 12.22 (Ubuntu 12.22-0ubuntu0.20.04.4)
5.2 Crearea utilizatorului bazei de date
Exemplul utilizează același nume ca în Linux, fără ca aceasta să fie o cerință. Numele trebuie să corespundă celui din șirurile de conexiune ERP.
> sudo -u postgres createuser –interactive
Se deschide configurarea interactivă. Exemplul istoric utilizează rolul superuser; pentru o instalare nouă, stabiliți privilegiile necesare operațiilor efective.
5.3 Crearea bazei ERP
Comanda pentru o bază nouă:
> createdb erp
5.4 Conectarea la baza de date
După crearea utilizatorului și a bazei, conexiunea poate fi verificată prin PSQL:
> psql -d erp
Verificați detaliile conexiunii cu:
# \conninfo
Rezultatul așteptat:
You are connected to database „erp” as user „pos” via socket in „/var/run/postgresql” at port „5432”.
5.5 Parola utilizatorului
Configurați o parolă proprie pentru utilizatorul bazei de date. După conectare, utilizați comanda:
> psql -d erp
# \password pos
Se solicită introducerea parolei:
Introduceți parola.
Păstrați aceeași valoare în configurația autorizată a conexiunii din appsettings.json. Nu publicați parola și nu reutilizați parola sistemului de operare.
Introduceți exit pentru a ieși.
5.6 Accesul la bază prin rețea
Implicit, PostgreSQL nu permite conexiuni externe în configurația descrisă. Regulile de acces sunt definite în pg_hba.
> cd /etc/postgresql
> ls
Sunt afișate directoarele versiunilor instalate. Înlocuiți <version> cu versiunea utilizată.
> sudo nano <version>/main/pg_hba.conf
Regulile au structura [CONNECTION_TYPE] [DATABASE] [USER] [ADDRESS] [METHOD]. Exemplul istoric de mai jos permite orice adresă și nu trebuie păstrat într-o instalare expusă:
host erp pos 0.0.0.0/0 md5
Această regulă permite conexiuni de la orice IP.
Limitați accesul la adresa serverului ERP, în locul intervalului 0.0.0.0/0.
Exemplele istorice de intervale sunt:
#Internet access for ERP
host erp pos 86.122.0.0/16 md5 # this is a range for the ISP
host erp pos 192.168.1.10/32 md5 # this is the actual ERP server
host erp pos 192.168.0.0/16 md5 # this is a range for the local network
Salvați și reporniți PostgreSQL:
> sudo systemctl restart postgresql
5.6.1 Adresele de ascultare
În directorul versiunii, editați postgresql.conf:
> cd <version>/main
> sudo nano postgresql.conf
În secțiunea CONNECTIONS AND AUTHENTICATION, configurați listen_addresses:
#––––––––––––––––––––––––––
# CONNECTIONS AND AUTHENTICATION
#––––––––––––––––––––––––––
# – Connection Settings –
listen_addresses = ‘*’ # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to ‘localhost’; use ‘*’ for all
# (change requires restart)
Salvați și reporniți PostgreSQL:
> sudo systemctl restart postgresql
Verificați portul pe care ascultă PostgreSQL:
> ss -nlt | grep 5432
Exemplu de rezultat:
LISTEN 0 244 0.0.0.0:5432 0.0.0.0:* this is the config we are looking for
LISTEN 0 244 [::]:5432 [::]:*
Verificați conexiunea din calculatorul autorizat.
5.6.2 Numărul conexiunilor
În sesiunea bazei de date, comanda este:
# SHOW config_file;
Deschideți fișierul de configurare:
> sudo nano /etc/postgresql/12/main/postgresql.conf
În configurația originală, max_connections era ajustat la cel puțin 300:
…
max_connections=100 -> modificat la cel puțin 300 în exemplul original
…
Mai multe detalii despre limita conexiunilor:
În configurația descrisă, șase servicii utilizau 90 de conexiuni. Sesiunile de depanare pot crește rapid numărul.
Salvați și reporniți baza de date:
> sudo systemctl restart postgresql
6 Instalarea ERP
Fișierele sunt compilate pe calculatorul de dezvoltare și copiate pe calculatorul Linux.
Copiați conținutul ErpRelease, opțional arhivat ZIP pentru transfer. Faceți executabil fișierul install-silent-linux-x64.sh și lansați-l.
Alegeți mediul și urmați pașii instalatorului.
6.1.1 Depanarea serverului ERP
Dacă aplicațiile nu pornesc, lansați serviciul din directorul ErpApiService pentru a vedea mesajele:
> sudo dotnet ErpApiService.dll
7 Pornirea automată
7.1 Pornirea ERP
Adăugați în Startup Applications scriptul *.sh care pornește serviciile ERP.
Fișierul trebuie să fie executabil. Permisiunea poate fi configurată din managerul de fișiere sau cu următoarea comandă; instalatorul poate fi realizat deja acest pas:
> chmod +x /home/pos/ErpRelease/linux-x64/startup-no-restart-no-build-standalone.sh
În exemplu, parametrul Command este:
/home/pos/ErpRelease/linux-x64/startup-no-restart-no-build-standalone.sh
7.2 Pornirea browserului
Pentru stații Linux, adăugați în Startup Applications câte o intrare pentru fiecare aplicație web care trebuie deschisă automat.
Exemple pentru parametrul Command:
Deschideți Brave în mod KIOSK, după 5 secunde, la ecranul principal ERP:
bash -c „sleep 5 && brave-browser -kiosk –url http://192.168.1.10:4200”
Deschideți Brave în mod KIOSK, după 15 secunde, la ecranul de pontaj:
bash -c „sleep 15 && brave-browser -kiosk –url http://192.168.1.10:4200/applications/human-resources/confirmation-screen”
Deschideți Firefox în mod KIOSK, după 15 secunde, la ecranul de pontaj:
bash -c „sleep 15 && firefox –kiosk –url http://192.168.1.10:4200/applications/human-resources/confirmation-screen”
8 Date inițiale
8.1 Aplicarea migrărilor
Aplicați migrările pentru aplicația principală și plug-in-urile care le conțin.
În Package Manager Console, selectați fiecare proiect cu migrări. Verificați mediul și șirul de conexiune din appsettings.Development.json, apoi utilizați update-database pentru baza corectă.
8.2 Inițializarea organizației și utilizatorilor
După migrări, rulați ErpDataSeederApplication. Alegeți crearea unui Tenant și completați numele. Procesul creează organizația, administratorul și utilizatorii și rolurile implicite.
După inițializare, conectați-vă cu organizația și contul de administrator configurat. Utilizați credențialele stabilite pentru acel mediu și schimbați orice parolă demonstrativă înainte de utilizarea reală.
La prima conectare, selectați autentificarea prin nume de utilizator și parolă.