nachgefragt
Goto Top

Hilfe bei Installation Opsi 4.3 (open source Softwareverteilung, asset management, Alternative zu lansweeper)

Guten Morgen Admins,

wir möchten gern die neue Version von Opsi 4.3 installieren, basierend auf Ubuntu Server 22.04 (kein Docker, keine vorkonfigurierte VM), jedoch hänge ich bei der Installation.

Die Anleitung vom Hersteller ist soweit top leider ein Flop, vor allem auch für Admins welche sehr wenig Linux administrieren.

Ubuntu Server neu aufgesetzt
sudo apt update
sudo apt updgrade
sudo timedatectl set-timezone Europe/Berlin

Installation opsi (Ubuntu Server 22)
https://docs.opsi.org/opsi-docs-de/4.3/server/installation/deb.html
sudo apt --yes install host apt-transport-https software-properties-common curl gpg
sudo mkdir -p /usr/local/share/keyrings
REPO_URL=https://apt.grafana.com
REPO_KEY=/usr/local/share/keyrings/grafana.gpg
curl -fsSL ${REPO_URL}/gpg.key | gpg --dearmor | sudo tee ${REPO_KEY} > /dev/null
sudo echo "deb [signed-by=${REPO_KEY}] ${REPO_URL} stable main" > /etc/apt/sources.list.d/grafana.list  

Problem
Nach dem oben genannten letzten Befehl spuckt Linux eine Fehlermeldung aus:
-bash: /etc/apt/sources.list.d/grafana.list: Permission denied

3 Zeilen weiter kommt ebenso Permission denied:
Eingabe
sudo echo "deb [signed-by=$REPO_KEY] $REPO_URL/ /" > /etc/apt/sources.list.d/opsi.list  
Ausgabe
-bash: /etc/apt/sources.list.d/opsi.list: Permission denied

Lösungsansatz
Geprüft ob es diese Liste überhaupt gibt:
nano /etc/apt/sources.list.d/grafana.list
In der Datei steht
deb [signed-by=] stable main
mit dem Hinweis
[ File '/etc/apt/sources.list.d/grafana.list' is unwritable ]

Entweder ist die Anleitung des Herstellers ungenau oder es gibt ein Problem mit Linux oder Grafana.

Google bringt mich leider nicht voran, daher versuche ich es hiermit.

Über konstruktive Hilfe freue ich mich, besten Dank.

Content-Key: 31015374169

Url: https://administrator.de/contentid/31015374169

Printed on: April 27, 2024 at 12:04 o'clock

Member: commodity
commodity Dec 19, 2023 at 10:24:05 (UTC)
Goto Top
Hallo,
-bash: /etc/apt/sources.list.d/opsi.list: Permission denied
klingt doch stark nach einem Berechtigungsproblem.
Bitte mal mit ls -la den sources.d Ordner anschauen und die Dateirechte prüfen und ggf. mit chmod anpassen.
Wenn das nicht geht, bitte die Ausgabe von ls -la hier listen.

Viele Grüße, commodity
Member: nachgefragt
nachgefragt Dec 19, 2023 at 10:58:54 (UTC)
Goto Top
Zitat von @commodity:
klingt doch stark nach einem Berechtigungsproblem.
Offensichtlich ja.
user@opsiserver:/etc/apt/sources.list.d$ ls -la
total 16
drwxr-xr-x 2 root root 4096 Dec 19 07:54 .
drwxr-xr-x 8 root root 4096 Dec 19 07:31 ..
-rw-r--r-- 1 root root   30 Dec 19 10:44 grafana.list
-rw-r--r-- 1 root root  142 Dec 19 10:44 opsi.list

Sollte dann eigentlich passen, oder? https://wiki.ubuntuusers.de/Rechte/
Vielleicht noch interessant, wie nach der Linux Installation kann ich nun kein Update Befehl mehr rausballern.
user@opsiserver:/etc/apt/sources.list.d$ sudo apt update
E: Malformed entry 1 in list file /etc/apt/sources.list.d/grafana.list ([option] no value)
E: The list of sources could not be read.

Vielleicht verhagelt einer der o.g. Installationsschritte das System?!
https://docs.opsi.org/opsi-docs-de/4.3/server/installation/deb.html
siehe "Fügen Sie das Grafana-Repository zu den Paketquellen hinzu:"
Member: nachgefragt
nachgefragt Dec 19, 2023 at 12:48:54 (UTC)
Goto Top
Ich habe Ubuntu Desktop installiert und getestet, gleiches Problem.
Erst alles aktualisiert und dann
2
versucht.
unbenannt
Member: commodity
commodity Dec 19, 2023 at 15:06:03 (UTC)
Goto Top
Kann es sein, dass Du den Installationscode
REPO_URL=https://apt.grafana.com
REPO_KEY=/usr/local/share/keyrings/grafana.gpg
curl -fsSL ${REPO_URL}/gpg.key | gpg --dearmor | sudo tee ${REPO_KEY} > /dev/null
sudo echo "deb [signed-by=${REPO_KEY}] ${REPO_URL} stable main" > /etc/apt/sources.list.d/grafana.list  
als ganzes copy/pastest? Das ist IMO nicht korrekt. Wenn ich das zeilenweise nachstelle, klappt das tadellos (auch Ubuntu 22.04 - hier unter WSL).
Natürlich nur, wenn vorher auch
sudo mkdir -p /usr/local/share/keyrings
angelegt wurde.
Wenn man letztere Zeile vergisst, scheitert der tee-Befehl und der Schlüssel grafana.gpg wird nicht angelegt.
Dann scheitert in der Folge das "signed-by..." weil der Key fehlt und das löst den Berechtigungsmangel aus.

Bitte einfach das ganze "Programm" ab dem
mkdir ...
nochmal - zeilenweise - durchführen und schauen, ob Fehlermeldungen kommen bzw. ob es dann geht.

Viele Grüße, commodity
Member: nachgefragt
Solution nachgefragt Dec 20, 2023 updated at 09:06:12 (UTC)
Goto Top
Zitat von @commodity:
Kann es sein, dass Du den Installationscode als ganzes copy/pastest?
Vielen Dank für deine Hilfe

back-to-topLösung

Bei meinen bisherigen Installationen war es nicht nötig, daher habe ich nun die Erfahrung gemacht einfach die Rechte zu erhöhen, dann die Befehle einzugeben, jede Zeile für sich oder auch als Block möglich.

back-to-topUbuntu Server 22aufsetzen

sudo apt update
sudo apt upgrade
sudo timedatectl set-timezone Europe/Berlin
Rechte erhöhen
sudo su
Installationsbefehle eingeben
sudo apt --yes install host apt-transport-https software-properties-common curl gpg
sudo mkdir -p /usr/local/share/keyrings
REPO_URL=https://apt.grafana.com
REPO_KEY=/usr/local/share/keyrings/grafana.gpg
curl -fsSL ${REPO_URL}/gpg.key | gpg --dearmor | sudo tee ${REPO_KEY} > /dev/null
sudo echo "deb [signed-by=${REPO_KEY}] ${REPO_URL} stable main" > /etc/apt/sources.list.d/grafana.list  
REPO_URL=https://download.opensuse.org/repositories/home:/uibmz:/opsi:/4.3:/stable/xUbuntu_22.04
REPO_KEY=/usr/local/share/keyrings/opsi.gpg
sudo echo "deb [signed-by=$REPO_KEY] $REPO_URL/ /" > /etc/apt/sources.list.d/opsi.list  
curl -fsSL $REPO_URL/Release.key | gpg --dearmor | sudo tee $REPO_KEY > /dev/null
sudo apt update
sudo apt --yes install opsi-server-full

Prüfung
Nun muss die Seite direkt aufgehen: https://IP-Adresse:4447/welcome/

unbenannt

weiter geht's face-wink
https://docs.opsi.org/opsi-docs-de/4.3/server/installation/next-steps.ht ...
Member: commodity
commodity Dec 20, 2023 at 17:20:58 (UTC)
Goto Top
Nur falls jemand auch drüber stolpert und denkt, in einem Administrator-Forum wird das schon stimmen, was als Lösung markiert ist:
habe ich nun die Erfahrung gemacht einfach die Rechte zu erhöhen
Das ist natürlich nicht der Grund, warum es beim TO nun funktioniert hat und erst recht nicht die "Lösung". Die sudo-Befehle sind ja in der Anleitung bereits explizit enthalten. Mehr sudo als sudo geht nicht face-wink

Das Problem des TO lag hier darin, dass das Opsi-Repo nicht korrekt hinzugefügt wurde. Dies führt beim Paketquellen-Update zur abschließenden Fehlermeldung
user@opsiserver:/etc/apt/sources.list.d$ sudo apt update
E: Malformed entry 1 in list file /etc/apt/sources.list.d/grafana.list ([option] no value)
E: The list of sources could not be read.
Ursache ist einzig ein Fehler bei der Repository-Konfiguration - im vorliegenden Fall liegt es nahe, dass schlicht keines angelegt wurde ("no value"). Das geschieht z.B., wenn der GPG-Key des Repositorys zuvor nicht korrekt geladen wurde.
Beispiele:
https://askubuntu.com/questions/1390239/malformed-entry-in-sources-list- ...
https://www.linux.org/threads/ubuntu-20-04-sudo-apt-update-error-malform ...
https://forums.linuxmint.com/viewtopic.php?t=334947

Viele Grüße, commodity
Member: nachgefragt
Solution nachgefragt Dec 21, 2023 updated at 08:42:24 (UTC)
Goto Top
Mehr sudo als sudo geht nicht face-wink
Da fehlt mir die Erfahrung um dies beurteilen zu können, von der Instalaltion von z.B. Bookstack, Observium, Zabbix unter Ubuntu Server 22 kenne ich es nicht. Und natürlich ist auch nur meine Lösung, die ich 3x nachstellen konnte.

geht nicht
sudo echo "deb [signed-by=${REPO_KEY}] ${REPO_URL} stable main" > /etc/apt/sources.list.d/grafana.list

geht
sudo su
sudo echo "deb [signed-by=${REPO_KEY}] ${REPO_URL} stable main" > /etc/apt/sources.list.d/grafana.list

Warum das in dem Fall so ist war für mich neu, ich kann damit leben. https://www.howtoforge.de/anleitung/den-unterschied-zwischen-sudo-und-su ...

Danke dir auf alle Fälle für's Prüfen, so konnte ich zumindest ein paar Punkte ausschließen.
Member: commodity
commodity Dec 21, 2023 updated at 09:19:27 (UTC)
Goto Top
sudo -su vs sudo
Einen (Rechte-)Unterschied kann es in diesem Fall nur geben, wenn der User, von dem das sudo ausgeführt wird, in der sudoers beschränkt wurde, also mit sudo keine vollen Rechte erlangt. Dies setzt aber eine vorherige Manipulation der /etc/sudoers voraus.
https://ostechnix.com/restrict-sudo-users-run-specific-commands/
und würde IMO auch eine andere (konkrete) Fehlermeldung nach sich ziehen. Fällt also sicher raus.

sudo su sorgt dafür, dass Du nicht als normaler user einen root-Befehl ausführst, sondern zu root wirst. Rechtemäßig ist da kein Unterschied, wohl aber ändern sich die Umgebungsvariablen, weil nun die des Users root statt des normalen Users verwendet werden.

Womit wir uns der Lösung des Ausgangsproblems vielleicht nähern:
Wenn Dir die beiden Umgebungsvariablen
REPO_URL=https://apt.grafana.com
REPO_KEY=/usr/local/share/keyrings/grafana.gpg
nur bei Nutzung als User root zur Verfügung stehen, nicht aber als normaler user, ist etwas am System der Umgebungsvariablen Deines normalen Users beschädigt.
https://askubuntu.com/questions/635976/environment-variable-seems-to-be- ...
Was Du ja einfach mit
TEST_VAR=BlaBlub
echo $TEST_VAR
überprüfen kannst. Kommt beim echo dann kein Inhalt, funktionieren die Umgebungsvariablen nicht.
Verwendest Du vielleicht ein altes (kopiertes) Benutzerprofil für den Nutzer?

Viele Grüße, commodity
Member: nachgefragt
nachgefragt Dec 21, 2023 at 09:52:44 (UTC)
Goto Top
Zitat von @commodity:
Verwendest Du vielleicht ein altes (kopiertes) Benutzerprofil für den Nutzer?
Auf Basis ubuntu-22.04.3 Server waren es komplett neu erstellte Server, 2x. Unter der Routine Installation erstelle ich im "Profile Setup" einen "User". Das war's dann erstmal für die Testphase, den User nutze ich dann weiter, eben einfach mit sudo... .

Test
user@opsiserver:~$ echo $TEST_VAR
BlaBlub
Member: commodity
Solution commodity Dec 21, 2023 at 14:15:25 (UTC)
Goto Top
BlaBlub
Umgebungsvariablen gehen also. Sollte bei neuen Maschinen auch so sein.

Kein Mysterium ist unlösbar face-big-smile

Erstmal sorry, ich habe das nochmals nachgestellt und bekomme jetzt auch den "Permission denied" Fehler. Warum das gestern ging? Wahrscheinlich war ich root ... Wie auch immer.

Ursache ist bei näherer Betrachtung die Weiterleitung des echo per ">" in die /etc/apt/sources.list.d/grafana.list.
Kurze Recherche: https://www.adamsdesk.com/posts/sudo-echo-permission-denied/
the redirection (e.g. >, >>, etc.) is not executed with elevated user permissions (e.g. root). Instead, the redirection is actually executed by the current user’s shell, thus this is why an error of “permission denied” is returned.
Eigentlich ganz verständlich... Warum allerdings die Dödel bei Opsi das dennoch in die Anleitung schreiben? Wahrscheinlich arbeiten sie (wie ich) im Regelfall als root face-big-smile
Korrekt müsste der Befehl in der Opsi-Anleitung statt ">" ein "| sudo tee" enthalten, also:
sudo echo "deb [signed-by=${REPO_KEY}] ${REPO_URL} stable main" | sudo tee /etc/apt/sources.list.d/grafana.list  
Alternativ ginge auch noch die im Link vorgeschlagene Lösung mit bash -c.

Schwere Geburt, aber danke, dass Du dran geblieben bist. Case closed!

Viele Grüße, commodity
Member: nachgefragt
nachgefragt Dec 22, 2023 at 07:07:04 (UTC)
Goto Top
Zitat von @commodity:
Schwere Geburt, aber danke, dass Du dran geblieben bist. Case closed!
Danke auch.