Linux-haladó

[Megoldva] Docker-compose - Traefk - postresql - tobb domain azonos cimen

Fórumok

Sziasztok, 

Kis segitseget szeretnek kerni az alabbi setuppal kapcsolatban.

- Adott a termek. Java alkalmazas <-> Postrgresql kapcsolattal. docker-compose-ban 2 kontener. Semmi extra.

- Adott a teszt gep. Ezen van melle egy  Traefik v2.8 egy masik compose-ban.

- A virtualis "proxy" networkre kapcsolodik az app. 

A teszt gepen parhuzamosan fut a dev, qa, staging kornyezet. Ebben az esetben mar 4 compose fut. 3 termek es 1 traefik.

A termek kontenereken van treafik label amiken keresztul ra tudnak nezi a fejlesztok a webes feluletre. Ez a konfig 

traefik.enable: 'true'
traefik.http.routers.termek{{termek_env}}.rule: Host(`{{termek_host_name}}`)
traefik.http.routers.termek-{{termek_env}}.entrypoints: websecure
traefik.http.routers.termek-{{termek_env}}.tls: 'true'
traefik.http.routers.termek-{{termek_env}}.service: termek-{{termek_env}}
traefik.http.services.termek-{{termek_env}}.loadbalancer.server.port: "80"
traefik.docker.network: 'proxy'

Viszont most kitalaltak a fejleszoink hogy szeretnenek kivulrol is az adatbazisokhoz kapcsolodni.

A terv az hogy van 3 kulonobozo domain a tesztgepre iranyitva tehat
termek_host_name_dev
termek_host_name_qa
termek_host_name_staging
es attol fuggoen hogy melyikre kapcsolodnanak az 5432 porton, azt a postgresql-t erjek el

MEgprobaltam hasonlo modon kivitelezni mint ahogyan azt a https kapcsolattal tettem.
 

Uj Entrypoint a Traefik konfigban: 

postgres-db:
   address: :5432


Hozzaadtam az uj portot a Traefik compose-hoz

image: traefik:v2.8
ports:
   - "80:80"
   - "443:443"
   - "5432:5432"

Probaltam az albbi labelekkel

traefik.enable: 'true'
traefik.docker.network: "proxy"
traefik.tcp.routers.dev-db.rule: HostSNI(`myhost-name`)
traefik.tcp.routers.dev-db.entrypoints: postgres-db
traefik.tcp.routers.dev-db.service: dev-db
traefik.tcp.routers.dev-db.tls: "true"
traefik.tcp.services.dev-db.loadbalancer.server.port: "5432"

Namost ez igy nem mukodik. Nem erem el a postgres-t csak ha kiveszem a tls-t es a HostSNI(`*`) ra atallitom.
Igy viszont csak egy db-t erek el mert nem tudok routolni domain nev alapjan.
Azt nem szeretnem hogy a dev 5432 a qa 5433 a staging pedig 5434 porton uljon. 
Azt probalom elerni hogy domain alapjan tudjak routolni de valahogy nagyon nem akarja.


A postgresql-ben beallitottam az ssl tanusitvanyt es hasznalja is szepen.

psql (14.8 (Ubuntu 14.8-0ubuntu0.22.04.1), server 14.7 (Debian 14.7-1.pgdg110+1)) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help.

Probaltam mar direktben a Traefik-nel is probelkoni de nem sok sikerrel
https://community.traefik.io/t/forward-http-s-to-postgresql-container-in-docker-swarm-compose-possible/18938/11

Otlet esetleg

Update:

Traefik v3.0.0-beta2 kepes mar ilyenre.
sima psql cli is tartalmazza az SNI-t szoval siman mukodik minden. CSak egy napba tel mire ratlaltam az image-ra :D

ansible változó ellenőrzés

Fórumok

Ansible-ben meg kellene oldjam, hogy összekombináljak 3 változót tagek függvényében.
Változók

core-access=eth1,eth2,eth3
wifi=eth4,eth5
core=eth6

Jelenleg ez a tasklista:

    - name: Create/update vlan with core-access and wifi tag
      community.routeros.command:
        commands:
          - /interface bridge vlan add tagged={{ core-access }},{{ wifi }} \
      with_dict: "{{ global_vlan_list }}"
      loop_control:
        loop_var: item
      when:
        - host_vlans is not defined
        - item.value.type is defined
        - '"core-access" in item.value.type'
        - '"access" not in item.value.type'
        - '"wifi" in item.value.type'

    - name: Create/update vlan with access and wifi tag
      community.routeros.command:
        commands:
          - /interface bridge vlan add tagged={{ access }},{{ wifi }} \
      with_dict: "{{ global_vlan_list }}"
      loop_control:
        loop_var: item
      when:
        - host_vlans is not defined
        - item.value.type is defined
        - '"core-access" not in item.value.type'
        - '"access" in item.value.type'
        - '"wifi" in item.value.type'

    - name: Create/update vlan with access-core, access and wifi tag
      community.routeros.command:
        commands:
          - /interface bridge vlan add tagged={{ core-acces }},{{access}},{{ wifi }} \
      with_dict: "{{ global_vlan_list }}"
      loop_control:
        loop_var: item
      when:
        - host_vlans is not defined
        - item.value.type is defined
        - '"core-access" in item.value.type'
        - '"access" in item.value.type'
        - '"wifi" in item.value.type'

 

Meg lehet ezt oldani egyetlen egy task-ak?

Jelenleg 6-al oldom meg, de ha pl lenne egy 4. tag is, akkor az már káosz lenne.

Distro Docker alá

Fórumok

Sziasztok!

Otthoni "fat" ubuntu serveremen levo szolgaltatasaim kb 99%-at mar atmigraltam Docker ala. Most keresek valami kimondottan kontenerek ala keszult distrot. Ezeket neztem eddig:

 

- Fedora CoreOS

- Flatcar Container Linux

- openSUSE MicroOS

Managelni Portainer-el szoktam (bar ez sokat nem szamit)

Ti ajanlotok esetleg ezek kozul valamit, vagy ismertek meg hasonlot?

A SaMBa felesleges és hibás POSIX ACL bejegyzéseket generál?

Fórumok

Sziasztok!

Megküzdöttem a https://hup.hu/node/181159 bejegyzésben említett problémával. Többmilló fájlt és többtízezer POSIX ACL-t migráltam a convmv parancs, illetve megfelelő chroot környzetekben futtatott getfack/setfacl párosokkal. Néhány hét használat után azonban észrevettem, hogy a SaMBa (4.16.4) mintha felesleges POSIX ACL bejegyzéseket generálna. Először egy Word dokumentumnál bukott ki a probléma: Azt vettem észre, hogy amikor egy (esetleg más által tulajdonolt fájlt) szerkesztek, akkor a Word egy új fájl hoz létre, majd mentéskor törli az eredetit, az újat pedig átnevezi és megpróbálja a jogosultságait az eredetihez hasonlóra beállítani. A jogosultságok/Windows ACL-ek szerkesztése viszont gyakorlatilag mindig ahhoz vezet, hogy (szerintem) felesleges bejegyzések tömege kerül a POSIX ACL-be.

Pl. a file.docx nevű fájl eredeti jogosultsági beállításai így néztek ki:

# file: file.docx
# owner: user_2        #Valaki más, nem én.
# group: group_2    #A tulajdonos egyik csoportja (nem elsődleges).
user::rw-
group::rw-
other::rw-            #Az írást számomra lehetővé tevő jogosultsági bitek.

Két MS Word-os szerkesztés után így néz ki a fájl POSIX ACL-je (ez persze már nem ugyanaz a fájl, mert a Word újat hozott létre, majd mentéskor törölte az eredeti fájl, az újat pedig átnevezte, és megpróbálta rá átvinni az eredeti fájl jogosultságait):

# file: file.docx
# owner: user_1                #Az új fájl már az én tulajdonomban van.
# group: domain\040users    #Az én elsődleges csoportom.
user::rw-
user:domain\040users:rw-    #Az elsődleges csoportom GID-je hozzáadva az UID-ek listájához. Nyilván nincs ilyen nevű user.
user:user_2:rw-                #Az eredeti fájl tulajdonosa.
user:group_2:rw-            #Az eredeti tulajdonos csoport GID-je hozzáadva az UID-ek listájához. Nincs ilyen nevű user.
group::rw-
group:domain\040users:rw-    #A tulajdonos GID még egyszer hozzáadva. Nem felesleges?
group:user_1:rw-            #Az én UID-em hozzáadva a GID-ek listájához. Nincs ilyen nevű csoport.
group:user_2:rw-            #Az eredeti tulajdonos UID-je hozzáadva a GID-ek listájához. Nincs ilyen nevű csoport.
group:group_2:rw-            #Az eredeti tulaj csoport.
mask::rwx
other::rw-

Fájlkezelővel is megpróbáltam egy könyvtáron dolgozni. user_1-ként létrehoztam egy könyvtárt, amely az alábbi jogosultságokkal jött létre:

# owner: user_1
# group: domain\040users
user::rwx
group::rwx
other::---

Ezután nem csináltam mást, mint írási jogot adtam a könyvtárra az user_2 felhasználó számára, de ezen felül (szerintem) felesleges és hibás ACE-k adódtak hozzá a POSIX ACL-hez:

# file: directory_name
# owner: user_1
# group: domain\040users
user::rwx
user:domain\040users:rwx    #UID-ként hozzáadott GID. Nincs ilyen nevű user.
user:user_2:rwx                #Csak ezt a jogosultságot szándékoztam hozzáadni.
group::rwx
group:domain\040users:rwx    #A tulajdonos GID még egyszer hozzáadva. Nem felesleges?
group:user_1:rwx            #GID-ként hozzáadott UID. Nincs ilyen nevű csoport.
group:user_2:rwx            #GID-ként hozzáadott UID. Nincs ilyen nevű csoport.
mask::rwx
other::---

A kérdésem annyi, hogy van-e elképzelésetek arról, miért kerül ez sok - látszólag - felesleges információ a POSIX ACL-be, és főként az, hogy miért veszi fel a POSIX ACL-be a SaMBa az UID-eket GID-ként és viszont?

iptables szabályra melyik alkalmazás csomagja illik

Fórumok

Rocky 8, iptables. Szeretném tudni egy DROP szabály esetén melyik program hozta létre azt a csomagot, ami fennakadt a tűzfalon. Mert látok sok DROP üzenetet valami cél IP-vel, de hogy ki akart kapcsolódni, no azt nem tudom. És hát szeretném tudni, hogy melyik programot kell megnéznem, miért próbál csatlakozni. Ha esetleg az nftables tudja, akkor maximum (vissza)váltok rá. Kerestem neten, nem találtam megoldást, kérdezek.

Mindenkinek eddig és majd ezután is köszönöm a segítséget, egyszerű megoldást próbáltam találni, de akkor úgy látom kicsit bonyolultabb lesz, végignézem a lehetőségeket.

Sok fájl tárolásának optimalizálása

Fórumok

Sziasztok!

Hosszabb távon tervezés céljából gyűjtögetek információt, ki mit hallott-látott ebben a témakörben.

A problémakör röviden: Adott nagyságrendileg 20-25TB adat, ami sok-sok kis fájlból áll össze. A fájlok mérete a párszáz Kb-tól mondjuk 20-30Mb-ig terjed. Számosságukat tekintve ebben a pillanatban 33 millió fájlról beszélünk. Ez a mennyiség okos könyvtárstruktúrával még a kezelhető szinten mozog, de a jövőben ez nőni fog és már most is hatalmas gondot okoz egy-egy fsck, netán egy fs hiba. Úgy fogalmaznék, hogy kockázati tényezőt látok az FS alapú tárolásban lassan. Még amellett is, hogy az említett fájlrendszert kvázi replikáljuk, tehát egy 2 napos fsck esetén be tud állni a replika kiszolgálni az éles rendszereket. 

Ezeket a fájlokat jelenleg http-n szolgáljuk ki (internal), úgy h. az alkalmazás tudja mit kell letöltsön egy index DB alapján.

Olyan megoldást keresek vagy képzelek el, ami:

  • DB szerű (MongoDB pl?), nem fájl szinten érhető el, nem 33m fájlban tárol
  • Elosztottan tárol (Nem szeretnék azért egy 30TB-os blob-ot, mert ugyanaz a veszélye mint a jelenlegi megoldásnak
  • Illeszthető könnyen JAVA környezetbe, tehát van hozzá official konnektor, semmi tákolás. Az sem hátrány ha más nyelvekhez van hozzá illesztés, pl. Python/PHP
  • Optimális esetben akár FS szinten is leképezhető, de ettől el tudok tekinteni, ha jó kliensek léteznek hozzá
  • Replikálható (master-slave módon elégséges, de ha van jobb az sem hátrány)
  • Esetleg a "blobokon" kívül meta adatokat is képes tárolni, így a fájlokból néhány adatot akár előre ki is nyerhetünk és kereshetővé válhatnak meta adat szerint is, plusz ezzel kiszedhető lehetne a mostani DB réteg.
  • Az adatelérés lehetőség szerint legyen gyors, de az adatok betöltése nem túl komoly performanciával történik, ezért jelenleg is RAID6 NL-SAS-on van a cucc

Köszönöm h. végigolvastad, hátha lesznek jó tippek :)

Zoli

Kubernetes job triggelese

Fórumok

Sziasztok,

meg tudna valaki magyarazni, mi alapjan futnak le a kubernetes job-ok?

Van egy konyvtaram python szkriptekkel.

Hogyan lehet barmelyik inditasakor kubernetes job-ot letrehozni es lefuttatni az eredmenyt pedig egy logfile-ba irni

(mountolt pvc - ami tartalma pod delete eseten megmarad.)

Koszonom a segitseget.

Ardi

Docker network hiba frissítéskor

Fórumok

Hali!

 

Megjelent a Docker CE 24-es verziója néhány napja, ami frissítéskor, bekapcsolt live-restore mellett összekuszálta a hálózatot. A konténerek egy network-ben DNS-sel, a konténernév alapján találták meg egymást, a frissítés után ez megszűnt.

 

Gondoltam én, egyszeri probléma, szépen újracsináltam mindent. Majd tegnap kijött a 24.0.1 és pontosan ugyanerre ébredtem. Egy AlmaLinux-os cPanel VPS automatikus frissítésének hála reggelre megint minden elesett Docker-ben. Probléma ugyanez, a megoldás is. Network-ök kitakarítása, újralétrehozása és megy tovább.

 

Több Debian gépen is kijött, de ott nem automatikus a frissítés, szóval késő este lehetett vele mojolni.

 

Más is tapasztalta? Fura, hogy két gépen is kijött, de itt és más fórumokon sem találtam róla említést - ami persze nem jelenti, hogy nem is volt.

kapcsolódás Proxmox Backup Server-hez

Fórumok

Sziasztok!

Telepítettem egy Proxmox VE-t és egy Proxmox Backup Servert. Szeretnék létrehozni egy Proxmox Backup Server Storge-et a VE-n, de hibát jelez:

create storage failed: pbsid: error fetching datastores - 500 Can't connect to 1.2.3.4:8007 (Connection reset by peer) (500)

Tudom pingelni is a VE-ről a PBS-t, valamint a

telnet 1.2.3.4 8007

is működik.

Próbáltam egy debian hostról a

proxmox-backup-client login --repository 1.2.3.4:datastore

parancsot, ami szintén hibát adott:

Password for "root@pam": **********
Error: error trying to connect: Connection reset by peer (os error 104)

A PBS logjaiban nem találtam nyomát a csatlakozási kísérletnek.