Virtualizáció

[megoldva] Github Actions GCP authentication problem

Fórumok

Üdv,

Adott egy python/django teszt projekt, lokálisan minden működik, viszont a Github Actions nem. A .yml fájl:

name: cloudrun-deploy-production
on:
  push:
    branches:
      - main
jobs:
  build:
    name: 'Cloud Run Production Deployment'
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout'
        uses: actions/checkout@master

      - name: 'Setup GCP Service Account'
        # uses: google-github-actions/setup-gcloud@main
        uses: google-github-actions/setup-gcloud@v1
        with:
          project_id: ${{ secrets.GCP_PROJECT_ID }}
          service_account_key: ${{ secrets.GCP_SERVICE_ACCOUNT_SECRET }}
          export_default_credentials: true

      - name: 'Configure Docker'
        run: make gcloud-docker-init

      - name: 'Build'
        env:
          GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
          ENVIRONMENT: 'production'
        run: make gcloud-docker-build

      - name: 'Push'
        env:
          GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
          ENVIRONMENT: 'production'
        run: make gcloud-docker-push

      - name: 'Deploy'
        env:
          GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
          ENVIRONMENT: 'production'
        run: make gcloud-run-deploy

 

A make ... parancsok lokálisan mind lefutnak.

Valószínű régi GA "sablont" használok. Mit kellene korrigálni?

 

A GA logban ilyesmi látszódik:


Setup GCP Service Account:
--------------------------
Warning: Unexpected input(s) 'service_account_key', 'export_default_credentials', valid inputs are ['version', 'project_id', 'install_components']
Run google-github-actions/setup-gcloud@v1
  with:
    project_id: ***
    service_account_key: ***
  
    export_default_credentials: true
    version: latest

/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /home/ru..............

Warning: No authentication found for gcloud, authenticate with `google-github-actions/auth`.
Successfully set default project


...


Push:
-----
unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
make: *** [Makefile:51: gcloud-docker-push] Error 1
Error: Process completed with exit code 2.


 

Teszt jelleggel a service account-nek ilyen permissionjai vannak:

Cloud Build Editor, Cloud Build Service Account, Cloud Run Admin, Container Registry Service Agent, Service Account User

 

A "service_account_key" nem tetszik neki?

nesting (Proxmox CT-ben)

Fórumok

Sziasztok!

Proxmox 7-ben Container létrehozásakor a webes felületen alapértelmezésben be van pipálva a Nesting. Az Linux Container - Proxmox VE oldalon szereplő leírás szerint a nesting=0 alapértelmezett értékkel rendelkezik. Olvasgattam további leírásokat is de elbizonytalanodtam, hogy szükséges-e bejelölve hagyni a Nesting-et.

  1. Ha a Proxmox-on létrehozandó Linux Container-ben nem akarok Docker-t és további (Linux) konténereket futtatni (csak egy standard Debian 11-es webszervert), akkor jól olvastam ki a leírásokból, hogy fölösleges engedélyeznem a nesting-et egy Proxmox Container-ben?
  2. Ha mégis bekapcsolom a nesting-et a Proxmox Container-ben, és megtörik a benne futó webszervert, akkor hozzáférhetnek a Proxmox host-hoz is?

Kubernetesen sok DB konténer futtatása

Fórumok

Került hozzám egy projekt aminek javítani szeretnék a költséghatékonyságán. Ebben lenne jó egy picit együtt gondolkodni, meg tippeket is szívesen vennék.

Az a felállás, hogy ügyfelenként van egy Windows IIS szerveren futó webszolgáltatás, amit egy Linuxon futó MariaDB szolgál ki.

Minden AWS-en fut, de alapvető AWS szolgáltatásokat sem használnak, csak EC2-kön fut minden, közvetlenül telepítve, még konténerek sincsenek.

Az ügyfelek semmiféleképpen nem férhetnek hozzá egymás adataihoz, ezért minden ügyfélnek van egy külön Windows IIS és egy külön Linux EC2-je, bezárva a saját pici subnetjükbe. És ebből lassan 100 darab, ami ugye 200 EC2-t jelent.

Ez így szerintem nem jó hatékonyságú üzemeltetés. Sajnos az RDS nem opció momentán, mert a kereséshez fut egy indexelő szolgáltatás aminek a storage engine-e nem támogatott.

Arra gondoltam, hogy felhúznék a sok linuxos EC2 helyett egy EKS clustert. Arra felhúznék MariaDB konténereket, mellé az indexelő szolgáltatás konténerét, külön StatefulSettel és külön PVC-el mindegyik ügyfélnek. A Windowsos IIS-ek maradnának úgy ahogy, mert egyelőre nem konténerizálhatóak, csak átírnám a DB címét az új végpontokra. Ha jól sejtem NodePort-tal külön portra lehetne tenni mindegyik MariaDB konténert.

Van-e ebben a tervben valami nyilvánvalóan nagy buktató amire nem gondoltam?

Úgy gondolom, a Kubernetes segíthetne egy kicsit a hatékonyágon ebben a felállásban. Éjszaka, mikor nincs nagy terhelés, elég gondolom néhány node a ~100 DB konténerhez, nappal meg fel tudna húzni új nodeokat mikor nagyobb a forgalom. Másrészt meg a sok külön EC2-nek kezd elszállni az adminisztációs overheadje, mindet patchelni, monitorozni, backupolni, stb. külön-külön, nagyon szarul skálázódik.

Harmadrészt meg az IIS-függő webapp is átírás alatt van már multiplatform dotnetre, amit egyszer majd reményeim szerint szintén át lehetne tenni az EC2-kről Kubernetesre.

Proxmox backup

Fórumok

Sziasztok!

Van egy Proxmox 6.2-6.3 clusterem, 6 node-ból áll, évek óta működik hibátlanul. Most teljesen véletlenül vettem észre, hogy az egyik node a mentéseknél csak 1 példányt tart meg, holott a Storage beállításainál keep-last=2 szerepel. De teljesen mindegy, hogy ezt a számot hová állítom, mindig csak egy darab mentésem marad. A többi node szépen működik a beállításnak megfelelően, megtartja az előző mentést is, így azokon 2 példány marad.

Ha manuálisan ráindítok egy backupot, akkor a következő hibaüzenetet hazudja:

INFO: starting new backup job: vzdump 701 --compress zstd --storage ISZONAS-VZDUMP --mode snapshot --node px7 --remove 0
ERROR: Backup of VM 701 failed - There is a max backup limit of (1) enforced by the target storage or the vzdump parameters. Either increase the limit or delete old backup(s).

Van esetleg ötlete valakinek, hogy milye lehet beakadva annak az egy node-nak?

Köszönöm az ötleteket!

 

Podman (docker) RUN script image build

Fórumok

Üdv,

Egy image buildelésekor szeretnék létrehozni egy mariadb adatbázist (van is rá egy dbscript.sh scriptem). Hogyan érdemes ezt a Dockerfile-be beírni?

Valahogy el kellene indítani a mariadbd-t, hogy a script lefuttatható legyen.

# Dockerfile
# ....

RUN mariadb-install-db
RUN /usr/sbin/mariadbd -u root               # <-- előtérben fut, nem megy tovább a következő lépésre
RUN /tmp/dbscript.sh mydbname username password

# ...
ENTRYPOINT /usr/bin/supervisord -c /etc/supervisord.conf

Háttérben kellene indítani a mariadbd-t, mert addig nem megy tovább. Az elegáns, helyes megoldást keresem.

 

Van ötletetek?

[megoldva] Docker, docker-compose, és fájl struktúra

Fórumok

Sziasztok,

Szeretnék egy környezetet kialakítani ahol csak az alap rendszer (Linux) és felette docker konténerek vannak.
A konténerek működnek is, csak az elérési utakkal vagyok bajban.

Tehát van sok könyvtár, benne egy-egy docker-compose.yaml, illetve egyeseskben még Dockerfile is van a helyi image gyártáshoz.
A docker-compose fájlokban van egy-egy volume kivezetés a helyi fájlrendszerre.
Rendszerint ez:
 

volumes:
  - $PWD/idetedd:/container/belso/konyvtar

Ezzel az a baj, hogy ez az éppen aktuális könyvtárat mutatja, tehát ha mondjuk a root könyvtárból indítom a containert:
 

/root# docker-compose -f /fajl/helye/a/fajlrendszeren up

Akkor a root könyvtárban lesz egy ilyenem: /idetedd

Mit kell használnom a $PWD helyett, hogy az mindig egy adott könyvtárra mutasson, de mégse legyen beégetve?

A végső cél az lenne, hogy  elindítom a következő parancsot:

# docker-compose -f docker/container1/docker-compose.yaml -f docker/container2/docker-compose.yaml up

Akkor mindegyik konfiguráció, a saját könyvtárán belül hozza létre a saját hostra kötött könyvtárát.

Google keresés nem segített, lehet, hogy nem jó felé nézelődtem.

üdv: redman

Podman (docker) fedora httpd, mariadb

Fórumok

Üdv,

Egy fedora konténerben szeretném használni a httpd és mariadb-t.

A Dockerfile-ban:

FROM fedora:latest

# packages
RUN dnf -y update && dnf -y install httpd php php-mbstring php-pdo mariadb-server && dnf clean all


# entrypoint, run
# RUN ["/usr/bin/mariadbd-safe"]
ENTRYPOINT /usr/sbin/httpd -DFOREGROUND

Az apache el is indul. Hogyan tudom elindítani a mariadb-t? A mariadbd-safe nem indul el:

# mariadbd-safe
221126 16:26:39 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
221126 16:26:39 mysqld_safe Starting mariadbd daemon with databases from /var/lib/mysql

A konténerben kézzel sem indul. Mit hagyok ki?

Docker konténer export

Fórumok

Docker compose és yml fájl segítségével építettem egy wordpress site-ot konténerben. Kérdésem: hogyan lehet exportálni/importálni az egészet.

docker ps idevágó része:

8f1315921f28   wordpress:latest       "docker-entrypoint.s…"   3 months ago   Up 2 minutes              0.0.0.0:8000->80/tcp, :::8000->80/tcp   wordpress_wordpress_1
48658d26932a   mysql:5.7              "docker-entrypoint.s…"   3 months ago   Up 2 minutes              3306/tcp, 33060/tcp                     wordpress_db_1
 

Igazából megosztanám valakivel és nem tudom, milyen módon lehet ez?

Köszönöm!