Aplinkos paruošimas

Pastaba

Informacija apie reikalingų aplinkų skaičių (TEST ir PROD) bei diegimo būdo pasirinkimą pateikta skyriuje Sprendimai prieš diegimą.

Techniniai reikalavimai

Agentas veikia ir yra testuotas Linux operacinėse sistemose, konkrečiai naudojant Debian/Ubuntu distribucijas, todėl instrukcijos, kaip pavyzdys bus pateiktos būtent Debian/Ubuntu aplinkai. Diegimą galima atlikti ir kitose Linux distribucijose, tačiau tam tikros vietos, nurodytos šioje dokumentacijoje, turėtu būti priderintos taip, kad veiktų kitoje distribucijoje.

Pastaba

Pateikiama instrukcija yra kaip pavyzdys, kai naudojama Debian/Ubuntu OS

Spinta yra sukurta naudojant Python programavimo kalbą ir veikia su Python versijomis 3.10-3.13. Naujose Agento versijose reikalavimas Python versijai gali keistis.

Dėl serverio resursų, tokių kaip CPU, RAM ir HDD, reikalingi resursai tiesiogiai priklauso nuo publikuojamų duomenų kiekio ir naudotojų srauto, kurie naudosis duomenų publikavimo paslauga.

Rekomenduojami reikalavimai (CCT standartinė VM konfigūracija):

  • 2 vCPU

  • 4 GB RAM

  • 40 GB laisvos vietos diske

  • Interneto prieiga (443 portas į data.gov.lt)

Minimalūs reikalavimai (testavimui / nedidelei apkrovai):

  • 1 CPU

  • 1 GB RAM

  • 10 GB laisvos vietos diske

Aplinka: pilnai įdiegta operacinė sistema su visomis būtinomis priklausomybėmis, be duomenų, iki 5 vienu metu besinaudojančių vartotojų.

Pastaba

Pats Agentas su visomis Python priklausomybėmis diske užima apie 2 GB vietos. Likusi vieta reikalinga OS, log’ams ir laikiems failams.

Agento veikimas turėtu būti nuolat stebimas ir reikiami resursai didinami, pagal poreikį.

Operacinės sistemos paruošimas

Papildomų OS paketų diegimas

Pastaba

Docker yra reikalingas tiek diegiant Spintą virtualioje mašinoje, tiek ir naudojant patį dockerį.

sudo apt update
sudo apt upgrade
sudo apt install curl docker.io docker-compose-v2

Spinta vartotojo sukūrimas

Pastaba

Agentas turėtu būti diegiamas ir leidžiamas spinta naudotojo teisėmis (ar kito ne root naudotojo teisėmis), todėl reikia sukurti sisteminį naudotoją:

sudo useradd --system -g www-data --create-home --home-dir /opt/spinta spinta

Suteikiame docker teises Spinta sisteminiam naudotojui:

sudo usermod -aG docker spinta

Atkreipkite dėmesį, kad visose komandose, kurios prasideda sudo, komanda turi būti vykdoma administratoriaus teisėmis, tačiau visur kur nėra sudo, komanda turi būti vykdoma spinta naudotojo teisėmis. Tai yra svarbu, todėl nesupainiokite kokio naudotojo teisėmis vykdote komandas, priešingu atveju susidursite su sunkumais susijusiais su failų teisėmis.

Papildomos duomenų bazių tvarkyklės

Priklausomai nuo to, prie kokių duomenų šaltinių bus jungiamas Spinta agentas, gali reikėti įdiegti papildomus Python paketus ir sisteminius komponentus.

Duomenų bazė

Python paketas

Papildomi sisteminiai reikalavimai

PostgreSQL

psycopg2-binary

—

MySQL (≥ 5.6)

pymysql

—

MySQL (< 5.6)

mysqlclient

build-essential python3-dev default-libmysqlclient-dev

Microsoft SQL Server

pymssql

freetds-bin

Oracle

cx_Oracle

Oracle Instant Client (žr. žemiau)

SAS Datasets

JayDeBeApi

Java 11, SAS JDBC tvarkyklė

Pastaba

Dalis paketų (pvz., psycopg2-binary) jau įtraukta į standartinį Spinta requirements failą ir bus sudiegta automatiškai. Prieš diegiant papildomai, patikrinkite, ar paketas nėra jau sudiegtas:

env/bin/pip show <paketo-pavadinimas>

PostgreSQL

sudo -Hsu spinta && cd
env/bin/pip install psycopg2-binary

MySQL

MySQL versijai ≥ 5.6:

sudo -Hsu spinta && cd
env/bin/pip install pymysql

Senesnei MySQL versijai (< 5.6) naudojamas mysqlclient. Pirmiausiai įdiekite sisteminius paketus, tada Python paketą:

sudo apt install build-essential python3-dev default-libmysqlclient-dev
sudo -Hsu spinta && cd
env/bin/pip install mysqlclient

Microsoft SQL Server

MS SQL Server tvarkyklei reikalinga FreeTDS biblioteka:

sudo apt install freetds-bin
sudo -Hsu spinta && cd
env/bin/pip install pymssql

Oracle

Oracle duomenų bazei, be cx_Oracle Python paketo, privaloma įdiegti Oracle Instant Client — tai natyviai sukompiliuota biblioteka, kurią turi rasti sistema. Be šios bibliotekos cx_Oracle neveiks (klaida DPI-1047).

sudo -Hsu spinta && cd
env/bin/pip install cx_Oracle

Išsamią Oracle Instant Client diegimo instrukciją rasite čia: Oracle driver installation guide

Žinomų Oracle problemų sąrašas: Oracle žinomų problemų sąrašas

SAS Datasets

SAS Datasets tvarkyklei reikalingi trys komponentai:

  1. Java 11 — įdiekite sistemoje:

    sudo apt install openjdk-11-jdk
    
  2. SAS JDBC tvarkyklė — sas.core.jar ir sas.intrnet.javatools.jar failai, kuriuos gausite iš SAS licencijos turėtojo arba SAS palaikymo.

  3. JayDeBeApi Python paketas:

    sudo -Hsu spinta && cd
    env/bin/pip install JayDeBeApi