Hi zusammen,
ich installieren postgrSQL 13.3 in Silent mode durch Beaker tests also in virtual VM, und passiert folgendes:
(1) Der Installer entpackt die Datein unter c:\program files\postgresql\13.3 und dann hängt sich nur auf.
(2) Also postgresql Installer müsste noch DB initialieren aber ich bekam: “initdb: Fehler: konnte nicht auf Verzeichnis ¯d:/postgres/data® zugreifen: Permission denied”
Ich weiss woran liegt das Problem, aber ich konnte leider keine Lösung dafür finden:
Also meine Anylse war:
in Log Datei stehr am Anfang: beaker-box\username
Aber später wird “logged in userWORKGROUP\username” geschrieben (Verursacher des problems meiner Meinung nach)
Warum wird DOMAIN gewechselt?
Wie kann ich anstatt “logged in userWORKGROUP\username” das “logged in userbeaker-box\username” während der Instalation erzwingen.
ich kenne Beaker nicht und virtual VM klingt etwas unspezifisch für mich.
Aber ich vermute anhand der Verzeichnisangaben, Du versuchst eine Virtualisierung auf bzw in Windows?
Postgres fühlt sich auf Linux besser zuhause. Und wenn man virtualisiert, besonders Datenbanken, sollte Linux vielleicht sowieso die erste Wahl sein? Das geht heute ja sogar auch aus Windows, also als VM Host.
Durch jenkis pipeline wollte ich postgresql mit dem Befehl: choco install postgresql13 -y postgreSQL in windows server 2022 installieren und die erfolgt automatisch mit dem Beaker Tests aber vorher soll man Beaker tests schreiben anhand https://serverspec.org
Ich habe Jenkins und Windows Server schon Jahre nicht mehr verwendet.
Choco irgendwann mal vor wenigen Jahren. Hat mich nicht so begeistert, dass ich es weiter eingesetzt hätte.
Also, kennst Du Dich mit MS Windows Server aus? Insbesondere mit der Rechteverwaltung, speziell die Unterscheidung von Domänen und lokalen Rechten/Usern?
Welcher User warst Du bei der Installation? Welche Rechte? Welche Installation wird ausgeführt? Für alle? Für spezifischen Nutzer? Irgendwas mit “als Administrator ausführen” verwendet?
Ich kann nur vermuten, dass hier irgendwo das Problem liegt.
Außerdem noch ein Hinweis: choco erlaubt eine Reihe von Paramter Übergaben, u.a. User/Passwort mal als Beispiel. Evtl. auch “run as” und andere User Inkorporationen bei der Installation einer Software.
Ich habe auch schon lange nicht mehr Postrges unter Windows installaliert. Früher war es glaub ich so, dass dafür ein eigener OS User Postgres angelegt wurde. Weiß nicht ob das mit PG13 unter Windows noch so ist.
Weitere Punkte:
Wenn Du das alles als irgendein Domain User durchführst und nicht sicher bist, was da genau für Rechte vorliegen. Es kann noch schlimmer kommen und es fehlen per Domain Sicherheitsregeln auch nur ein paar nette Details. Dann mal mit dem Domain Admin sprechen, wenn Du es nicht selbst bist.
Systeme wie Postgres kommen aus der Linuxwelt, hier ist es üblich, Grundeinstellungen per Umgebungsvariable zu definieren, u.U. auch vorzudefinieren, bestes Beispiel Java. Man definiert mehr oder weniger mit einer Variable, welche der 25 Java Installationen gerade verwendet werden sollen. Bzw. wo die nächste Installation erfolgen soll.
Vielen Dank für ausführliche Info. Leider habe ich ein bisschen Erfahrung mit MS Windows Server`Log started 12/15/2021 at 20:54:04
Preferred installation mode : unattended
Trying to init installer in mode qt
Mode qt successfully initialized
Setting variable whoami from C:\Windows\System32\whoami
Script exit code: 0
Script output:
beaker-box2022\user` aber irgendwarum ist Domain während der Installation geändert–> WORKGROUP\user
Ich kann nur raten, ich kenne wie gesagt keine aktuellen Versionen von Jenkins, beaker-box, Windows Server.
Schau nach den Domain Punkten.
Wo meldest Du Dich an Windows Server an? Welcher User bist Du? Lokaler Account? Domain Account?
Ich würde lokalen Admin Account empfehlen.
Welche Installationsparameter kannst Du choco mitgeben?
Ich würde notfalls Installationsuser und Verzeichnisse vorgeben, wenn solche Parameter zur Verfügung stehen.
Vielleicht kannst Du auch ein anderes System als Choco nehmen, wie gesagt, mein Eindruck von damals war nicht so berauschend. Kann mich aber nicht mehr richtig erinnern.
Andere Alternative:
Installiere postgres einfach direkt selbst:
a) direkt auf Windows
b) indirekt in Windows Subsystem Linux
c) innerhalb von Virtual Box, dort ein Linux einspielen, da dann Postgres
d) in Docker unter Windows Server
Am Ende sprichst Du postgres über eine IP und einen Port an und es sollte relativ egal sein, wo es installiert ist.