Log file permission

naja, mich wundert es immer das da Vorschläge kommen ohne irgendwas vom Problem zu kennen. Also weder OS , Noch die User unter der MariaDB und die App rennt. Das sieht dann mehr nach Woodoo aus als nach einer Lösung des Problems

Das ganze läuft unter alpine:3.9 und den default settings für mariaDB
 
Werbung:
Und eigentlich hat mir das Audit Plugin schon weitergeholfen, danke! Da dies nur auf der CI läuft welche die Unit/Integration/UI tests durchführt sehe ich keine Probleme das Plugin zu verwenden
 
Hi @BerndB,

das problem hier ist das die ganze Umgebung aus verschiedenen Docker Container besteht und ein gemeinsames htdocs-Volume haben in welches auch die logs geschrieben werden.

Während MariaDB (mysqld 10.3.32-MariaDB-1:10.3.32+maria~focal-log) auf einem eigenen Container läuft:
Code:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql        1  0.4 10.4 2697016 420840 ?      Ssl  Mar03   5:30 mysqld

Laufen die Tests auf einem anderen:
Code:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
www-data    17  0.0  1.5 373576 62920 ?        S    Mar03   0:04 apache2 -DFOREGROUND

Wenn ich nun auf der Azure CI in einem letzten Schritt alle Logs sammeln will kriege ich folgenden Fehler:
Code:
##[error]Error: Archive creation failed for archive file: /home/vsts/work/1/a/logs_34849.zip
code: 18
stdout:   adding: log/ (stored 0%)
  adding: log/mysql/ (stored 0%)
  adding: log/mysql/slow.log
    zip warning: could not open for reading: log/mysql/slow.log
  adding: log/mysql/error.log
    zip warning: could not open for reading: log/mysql/error.log
  adding: log/test.log (deflated 95%)

zip warning: Not all files were readable
  files/entries read:  3 (82K bytes)  skipped:  2 (2.1K bytes)
 
stderr: zip warning: Permission denied
zip warning: Permission denied

Aber da die ganze CI Thematik schon mehr in Richtung DevOps geht wollte ich die ursprüngliche Frage einfach halten :)
 
Was noch fehlt ist bei welchem User der Fehler auftritt. Diesem scheinen ja die Rechte zu fehlen.

Schau dir das mal an. Dort findest du verschiedene Möglichkeiten diesem user Rechte auf den User oder Gruppe "mysql" zu geben.

Tutorial



Gruß Bernd
 
Wenn es verschiedene Container sind und das in einer Cloud läuft, würde man vielleicht eher einen Log Service oder gemeinsames, externes Volume für beide Container nutzen?
Und ja, wahrscheinlich eher eine DevOps Frage. Der Ansatz wäre wahrscheinlich, eine Lösung bereitzustellen, die es erlaubt, die Log Handhabung variabel zu definieren.
 
Wenn es verschiedene Container sind und das in einer Cloud läuft, würde man vielleicht eher einen Log Service oder gemeinsames, externes Volume für beide Container nutzen?
Und ja, wahrscheinlich eher eine DevOps Frage. Der Ansatz wäre wahrscheinlich, eine Lösung bereitzustellen, die es erlaubt, die Log Handhabung variabel zu definieren.

Im produktiven Umfeld ist das natürlich auch so, nur für die CI Pipeline halt ich es für übertrieben einen externen Log-Service einzurichten, besonders weil dadurch eine neue Abhängigkeit entsteht welche es nicht braucht
 
Werbung:
Zurück
Oben