answer.toml , wo muss diese date für Abruf per http angelegt werden?

rprengel

Well-Known Member
Mar 14, 2021
45
12
48
61
Ok,
vermutlichn nur ein Brett vor dem Kopf aber ....
Ich habe im DC autoinstall konfiguriert und möchte die antwortdatei per

--fetch-from http --url https://srvproxdc.rprengel.de:8443/api2/json/auto-install/answer (Syntax aus der Doku)

auslesen.
Was ist gearde nicht verstehe ich wo die answer.toml auf dem Server in welchem Ordner abgelegt werden muss.
Kann mir da jemadn einen Tip geben.

Das erzeugte Iso funktioniert , startet und bleibt dann an der Stelle hängen an der die Antwortdatei gesucht wird.
Danke für einen Tip.

Gruß
Ralf

Edit:
Ok , dank KI gelernt das es keine Dateien auf dem Filesystem gibt. Dann muss ich mir den Aufruf noch mal anschauen.
 
Last edited:
Hallo @rprengel, ich glaub da ist ein Denkfehler drin: bei --fetch-from http liegt die answer.toml nicht als Datei in irgendeinem Ordner rum. Der Installer macht einen POST an die URL und erwartet die fertige TOML als Antwort zurück. Auf der Serverseite muss was laufen, das auf diesen POST mit dem passenden answer-file antwortet, ein statisches File reicht nicht.

Die URL .../api2/json/auto-install/answer auf Port 8443 sieht stark nach dem Proxmox Datacenter Manager aus. Falls das dein "DC" ist: die answer-files pflegst du direkt im PDM (werden über Fingerprint/Properties gematcht und dynamisch ausgeliefert), du legst da nichts manuell ins Filesystem.

Was läuft denn genau hinter der URL, der PDM oder ein eigener Webserver? Und teste die URL ruhig mal direkt mit curl per POST, dann siehst du ob da überhaupt was zurückkommt oder ob er an der Stelle ins Leere läuft.
 
Was ist gearde nicht verstehe ich wo die answer.toml auf dem Server in welchem Ordner abgelegt werden muss.
Wenn du den Proxmox Datacenter Manager benutzt, musst du kein Answer file mehr manuell erstellen - das wird direkt vom Datacenter Manager erledigt.

Konfigurieren kannst du das ganze ·unter Remotes > Automated Installations im Web UI konfigurieren. Auch nicht den Token vergessen beim proxmox-auto-install-assistant prepare-iso command anzugeben.
 
Hallo @rprengel, ich glaub da ist ein Denkfehler drin: bei --fetch-from http liegt die answer.toml nicht als Datei in irgendeinem Ordner rum. Der Installer macht einen POST an die URL und erwartet die fertige TOML als Antwort zurück. Auf der Serverseite muss was laufen, das auf diesen POST mit dem passenden answer-file antwortet, ein statisches File reicht nicht.

Die URL .../api2/json/auto-install/answer auf Port 8443 sieht stark nach dem Proxmox Datacenter Manager aus. Falls das dein "DC" ist: die answer-files pflegst du direkt im PDM (werden über Fingerprint/Properties gematcht und dynamisch ausgeliefert), du legst da nichts manuell ins Filesystem.

Was läuft denn genau hinter der URL, der PDM oder ein eigener Webserver? Und teste die URL ruhig mal direkt mit curl per POST, dann siehst du ob da überhaupt was zurückkommt oder ob er an der Stelle ins Leere läuft.
Hallo,
yeap das habe ich dann auch gerade begriffen. Aus dem System läuft nur das DC. Ich habe einfach mal nur die Dialoge durch geklickt und nur die minimalen Antworten gegeben. ich dachte das reicht für eine rudimentäre erste Testinstallation.
Hast du zufällig einen Link auf ein Tutorial in Einzelschritten sofern es das schon gibt? preseed und kickstart nutze ich ständig aber hier ist mir noch nicht ganz klar wie ich ggf eine komplette Antwort-Datei erzeuge.
Gruß und Dank
Ralf

https://www.virtualizationhowto.com...x-automated-installs-and-am-never-going-back/
gerade gefunden. Sie eigentlich gut aus bis zu dem Punkt wo er bei mir keine Antwort-Datei findet.
 
Last edited:
Wenn du den Proxmox Datacenter Manager benutzt, musst du kein Answer file mehr manuell erstellen - das wird direkt vom Datacenter Manager erledigt.

Konfigurieren kannst du das ganze ·unter Remotes > Automated Installations im Web UI konfigurieren. Auch nicht den Token vergessen beim proxmox-auto-install-assistant prepare-iso command anzugeben.
Hallo,
danke aber da shabe ich glaube ich hin bekommen. Ich vermute gerade das ich gar keine vernünftige Antwortdatei erzeugt aber und wie das geht ist mir noch nicht ganz klar.
 
Was läuft denn genau hinter der URL, der PDM oder ein eigener Webserver? Und teste die URL ruhig mal direkt mit curl per POST, dann siehst du ob da überhaupt was zurückkommt oder ob er an der Stelle ins Leere läuft.
Hallo,
ich kriege den curl syntax nicht hin. Hast du ein konkretes Beispiel für mich
Ich lande immer auf einer Fehlermeldung curl: option --answer-auth-token: is unknown oder ähnliche Varianten je nachdem was ist probiere.
Gruß
 
Das --answer-auth-token ist kein curl-Parameter, das ist eine Option vom proxmox-auto-install-assistant. curl kennt das nicht, daher der Fehler.

Für einen reinen Erreichbarkeits-Test reicht erstmal:
Code:
curl -k -X POST https://srvproxdc.rprengel.de:8443/api2/json/auto-install/answer
Wichtig sind das -X POST (GET bringt nix) und das -k wegen Self-signed Cert. Wenn da überhaupt ne Antwort kommt, egal ob 401 oder Fehlermeldung, läuft der Endpoint. Den Token aus der PDM-Config musst du für den Test nicht nachbauen, der wird im echten Lauf vom Installer als Header mitgeschickt.

Wo ich eher den Hund begraben sehe: hast du den Token beim prepare-iso auch wirklich mit angegeben (und den passenden Cert-Fingerprint)? Wenn das im ISO fehlt oder nicht passt, bekommst du genau das Problem, dass er die Antwortdatei sucht und dann hängt. Wie sah denn dein prepare-iso-Kommando genau aus?
 
Das --answer-auth-token ist kein curl-Parameter, das ist eine Option vom proxmox-auto-install-assistant. curl kennt das nicht, daher der Fehler.

Für einen reinen Erreichbarkeits-Test reicht erstmal:
Code:
curl -k -X POST https://srvproxdc.rprengel.de:8443/api2/json/auto-install/answer
Wichtig sind das -X POST (GET bringt nix) und das -k wegen Self-signed Cert. Wenn da überhaupt ne Antwort kommt, egal ob 401 oder Fehlermeldung, läuft der Endpoint. Den Token aus der PDM-Config musst du für den Test nicht nachbauen, der wird im echten Lauf vom Installer als Header mitgeschickt.

Wo ich eher den Hund begraben sehe: hast du den Token beim prepare-iso auch wirklich mit angegeben (und den passenden Cert-Fingerprint)? Wenn das im ISO fehlt oder nicht passt, bekommst du genau das Problem, dass er die Antwortdatei sucht und dann hängt. Wie sah denn dein prepare-iso-Kommando genau aus?
Hallo,
root@srvprox01:~# curl -k -X POST https://srvproxdc.rprengel.de:8443/api2/json/auto-install/answer
parameter verification failed:
- '$schema': parameter is missing and it is not optional.
- 'dmi': parameter is missing and it is not optional.
- 'iso': parameter is missing and it is not optional.
- 'network_interfaces': parameter is missing and it is not optional.
- 'product': parameter is missing and it is not optional.root@srvprox01:~#

kommt zurück:
Das ISO habe ich nach Anleitung gebaut und die Infos aus der Zwischenablage kopiert.
Gruß


xxxx
Jetzt noch mal gemacht und es hat funktioniert.
Das ist fast noch ätzender als geht weiterhin nicht.
Egal. Ist Sonntag da nimmt man auch mal Geschenke.
xxx
Wie konfigurierst du weitere Parameter wie shares , weitere Platten und was auch immer? Mittels Ansible Script?
Und auf jeden Fall noch mal ein dickes Dankeschön für die Hilfe.

Gruß
Ralf
 
Last edited:
Schön dass es jetzt läuft, sowas ist doppelt nervig wenns ohne erkennbaren Grund plötzlich geht.

Für alles was über die Basis-Installation rausgeht ist die answer.toml der falsche Ort. Die deckt eigentlich nur das ab was der Installer selbst macht: Disk-Setup fürs Install-Target (da geht auch ZFS-RAID über mehrere Platten), Netz, Zeitzone, Passwort usw. Zusätzliche Datenplatten, Shares oder sonstiges Post-Install-Zeug gehören da nicht rein.

Da nimmst du den First-Boot-Hook: beim prepare-iso kannst du mit --on-first-boot ein Skript mitgeben, das beim ersten Start läuft. Da zieh ich meist nur das Nötigste rein (qemu-guest-agent, SSH-Key) und lass den Rest per Ansible drüberlaufen. Genau wie du sagst, autoinstall bringt die Kiste ins Netz, Ansible macht danach den Rest (weitere Platten, NFS/SMB-Shares, Cluster-Join etc.). So bleibt die answer.toml schön minimal und du hast die ganze Config deklarativ in einem Repo.
 
Schön dass es jetzt läuft, sowas ist doppelt nervig wenns ohne erkennbaren Grund plötzlich geht.

Für alles was über die Basis-Installation rausgeht ist die answer.toml der falsche Ort. Die deckt eigentlich nur das ab was der Installer selbst macht: Disk-Setup fürs Install-Target (da geht auch ZFS-RAID über mehrere Platten), Netz, Zeitzone, Passwort usw. Zusätzliche Datenplatten, Shares oder sonstiges Post-Install-Zeug gehören da nicht rein.

Da nimmst du den First-Boot-Hook: beim prepare-iso kannst du mit --on-first-boot ein Skript mitgeben, das beim ersten Start läuft. Da zieh ich meist nur das Nötigste rein (qemu-guest-agent, SSH-Key) und lass den Rest per Ansible drüberlaufen. Genau wie du sagst, autoinstall bringt die Kiste ins Netz, Ansible macht danach den Rest (weitere Platten, NFS/SMB-Shares, Cluster-Join etc.). So bleibt die answer.toml schön minimal und du hast die ganze Config deklarativ in einem Repo.
Yeap,
das passt dann schon. Ich gönne mir jetzt noch eine Veeam 13 Appliance Installation.
Schönen Sonntag noch.
Gruß
 
  • Like
Reactions: Bu66as