yavdr experimental für Ubuntu 20.04 (yavdr ansible @ focal)

  • Ok. Jetzt läuft er FAST durch ;-). Ich musste zwischendurch mal neu starten (nvidia), jetzt klemmt er nur noch hier:


  • Ok - Du hast völlig richtig vermutet. Ich hatte in der host_vars/localhost eine (!) Anpassung für den vdr-Block drin (override_vdr_charset) :-/. Ich hatte angenommen, er würde den Rest aus der group_vars/all nehmen...

    Es gibt die Möglichkeit Dictionaries automatisch mergen zu lassen: https://docs.ansible.com/ansib…ml#default-hash-behaviour, aber das wird nicht empfohlen, weil es unerwünschte Nebenwirkungen haben kann, wenn man Werte eigentlich übersteuern statt mergen will.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wenn ich den Task "yavdr-desktop" einzeln mit

    sudo -H ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="yavdr-desktop"

    laufen lasse, dann geht das ohne Fehler durch, das install-script bleibt da mit o.g. Fehler hängen <grübel>.

  • Kannst du an die letzte Zeile in https://github.com/yavdr/yavdr…ocal/install-yavdr.sh#L11 mal ein -vvv anhängen und das Install-Skript erneut laufen lassen?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Kannst du an die letzte Zeile in https://github.com/yavdr/yavdr…ocal/install-yavdr.sh#L11 mal ein -vvv anhängen und das Install-Skript erneut laufen lassen?

    Na klar. Es wird allerdings SEHR ausführlich... Hier mal der letzte Teil vor dem Abbruch:

  • Hast du das Git-Repo nach /root/yavdr-ansible geklont? Dann kannst du das Playbook auch direkt als root aufrufen - ändert das etwas? Das sudo -H ist ja nur dafür gedacht, dass man als normaler Nutzer arbeiten kann und die temporären Dateien beim Ausführen des Playbooks in /root/.ansible statt ~/.ansible landen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ok, ich kann den Fehler reproduzieren, wenn ich das Git-Repo nach /root klone. Scheint so, als würde mitogen nach der become-Direktive für den User vdr Probleme haben auf das Verzeichnis mit dem Playbook in /root zuzugreifen - der einfachste Workaround wäre das Git-Repo nicht nach /root zu klonen, sondern ein Verzeichnis zu nutzen, in dem andere Nutzer Lese-Rechte haben oder mitogen zu deaktivieren (also das if-Statement mit dem Export der Umgebungsvariablen dafür auszukommentieren: https://github.com/yavdr/yavdr…s/install-packages.sh#L21).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Hast du das Git-Repo nach /root/yavdr-ansible geklont? Dann kannst du das Playbook auch direkt als root aufrufen - ändert das etwas? Das sudo -H ist ja nur dafür gedacht, dass man als normaler Nutzer arbeiten kann und die temporären Dateien beim Ausführen des Playbooks in /root/.ansible statt ~/.ansible landen.

    Ja - direkt ins Root-Homedir geklont. Und ja - das mit dem sudo ist schon klar, ich hatte es erstmal trotzdem drin gelassen. Ohne funktioniert es aber auch nicht bzw. läuft auf den gleichen Fehler.

  • Ok, ich kann den Fehler reproduzieren, wenn ich das Git-Repo nach /root klone. Scheint so, als würde mitogen nach der become-Direktive für den User vdr Probleme haben auf das Verzeichnis mit dem Playbook zuzugreifen - der einfachste Workaround wäre das Git-Repo nicht nach /root zu klonen.

    Ok - Du hast mich überholt ;-). Ich teste das nochmal aus einem Homedir eines "normalen" Nutzers.

  • Na also - als " normaler" Nutzer läuft das ohne Fehler durch... Aber unter bionic hatte ich das auch als root durchgeführt, ohne derartige Probleme zu bekommen... Vielleicht läuft ja unter focal auch da etwas anders. Sollte dann aber irgendwo in der Doku auftauchen, dass man es nicht als root installieren darf :-).


    Danke...!

  • Vielleicht läuft ja unter focal auch da etwas anders.

    Ich habe unter focal mitogen for ansible eingebaut, um die Ausführung des Playbooks etwas zu beschleunigen (das versucht möglichst viel mit einem Prozess am Stück zu machen statt für jeden Schritt einen eigenen Prozess zu spawnen). Je nach Hardware spart das zwischen ein paar Sekunden und ein paar Minuten Laufzeit ein, wenn das komplette Playbook ausgeführt wird.

    Sollte dann aber irgendwo in der Doku auftauchen, dass man es nicht als root installieren darf :)

    Auf die Idee, dass jemand unnötigerweise als root unterwegs ist, muss man erst mal kommen :saint:, ich ergänze das bei Gegelegenheit noch in der README.md

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Auf die Idee, dass jemand unnötigerweise als root unterwegs ist, muss man erst mal kommen :saint:, ich ergänze das bei Gegelegenheit noch in der README.md

    Über "unnötig" kann man natürlich philosophieren 8o. Da auf der Kiste nichts weiter läuft und der auch nur im internen Netz erreichbar ist, sehe ich da kein Problem drin - erst Recht nicht in der Ausführung der Ansible-Installation als root oder aus dem /root heraus... (zumal das ja auch noch ge-sudo't wird). Die Prozesse laufen dann später ja ohnehin unter einem dedizierten Nutzer 8).

  • Gibt es eigentlich eine Möglichkeit, nur durch Anpassungen an der host_vars/localhost am Ende der Installation zu veranlassen, dass relevante Konfig-Dateien geholt und ausgetauscht werden (wie ja schon für die channels.conf implementiert) und danach vielleicht noch die betroffenen Dienste neu gestartet werden? Dies würde den Aufwand an "Nacharbeiten" massiv reduzieren :-).


    Bei mir sind das einige - spontan fällt mir da die boblight.conf und die smb.conf ein, beim epgd die channelmap usw., aber es sind natürlich noch viel mehr...

  • Da braucht es jeweils Rollen, die die nötigen Anpassungen anhand der gesetzten Variablen vornehmen. Für Samba kannst du bereits das Template https://github.com/yavdr/yavdr…fig/templates/smb.conf.j2 auf deine Wünsche anpassen. Für eigene Ergänzungen am Playbook vorbei ist /etc/samba/smb.conf.custom als include vorgesehen, die vom Playbook angelegt wird, wenn sie noch nicht existiert, aber an deren Inhalt vom Playbook nicht verändert wird.


    Für Boblight könnte man sich überlegen, ob man da nicht eher ein Dictionary/Hashmap in der group_var/all befüllt und dann die Konfigurationsdatei als Template umsetzt.


    Langfristig würde ich ja gerne noch ein Webfrontend bauen, da finde ich es konzeptionell schöner, wenn man von JSON Werten zu Variablen für die Ansible-Rollen kommt als wenn man da immer dicke Dateien durch die Gegend schieben muss (Ausnahmen wären Dateien, die sich nicht sinnvoll templaten lassen wie die setup.conf, channels.conf usw.).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Langfristig würde ich ja gerne noch ein Webfrontend bauen

    Kann man dich dabei irgendwie unterstützen?

    Fände ich nämlich auch cool, obwohl ich es seit Ansible nur mehr sehr selten vermisse.

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Kann man dich dabei irgendwie unterstützen?

    Wenn da jemand das nötige Wissen, Zeit und Lust hat, gerne. Das gleiche gilt übrigens auch für Ergänzungen für yavdr-ansible selbst, gerade wenn es z.B. um spezielle Hardware für boblight usw. geht, die man bequemer in Betrieb nehmen kann, wenn man des Playbook die Arbeit machen lässt.


    Ich habe bislang nur wenig Web-Entwicklung gemacht und bin noch dabei mich einzulesen, die Komponenten zusammen zu suchen und zu experimentieren, was möglich ist und vom Aufwand her Sinn macht - wenn da jemand mit mehr Erfahrung dabei ist, ist da natürlich deutlich mehr möglich als wenn ich das als Lernprojekt nutze, bei dem ich mir alles selbst erarbeiten muss.


    Fürs Backend wird es vermutlich Python3 mit fastapi werden, weil eine REST-API, SSE und Websockets damit recht einfach umsetzbar sind und es automatisch eine OpenAPI-kompatible API-Beschreibung generieren kann. Und dann fehlt da noch ein Wrapper für ansible-runner, damit man Playbooks ausführen lassen kann und ein paar andere Helferlein, die benötigt werden, wenn man mit erhöhten Rechten Änderungen am System vornehmen will.


    Bei den JS Frameworks gefällt mir VueJS (zusammen mit router.vuejs, vuex und axios) bislang recht gut und scheint leicht(gewichtig)er als Angular zu sein, aber ich bin da für alles offen, solange ich mich mit vertretbarem Aufwand einarbeiten kann.


    Da ich in letzter Zeit selten dazu komme, mich da mal längere Zeit am Stück dran zu setzen, geht es da bislang nur recht langsam voran...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich verwende softhdvaapi und mir ist aufgefallen, dass nach dem letzten Update der TV weiß bleibt und der ton läuft. Das OSD wird dargestellt und funktioniert.


    Code
    neue Version = vdr-plugin-softhdvaapi_3.1.0-0yavdr0~focal_amd64.deb
                    libplacebo42_2.43.0+git20200424-8-e7b3606-0yavdr0~focal_amd64.deb
    alte Version = vdr-plugin-softhdvaapi_3.0.1+git20200326-25-f756334-0yavdr0~focal_amd64.deb
                    libplacebo29_1:1.29.1-1yavdr0~focal

    Die alte Version kann unter /var/cache/apt/archives gefunden werden und kann mit dpkg -i installiert werden. Nachher funktioniert alles wie gewohnt.


    Kann jemand das bestätigen? Da sind hier bestimmt mehrere User mit Intel GPU Ausgabe unterwegs.

    VDR1 Fujitsu D3400-B2 i5-7500 HD630, 8GB RAM, WinTV-quadHD (DVB-T), yaVDR ansible BIONIC, softhdvaapi, skindesigner

    VDR2 NUC8i3BEH2, 16GB RAM, WinTV-dualHD (DVB-T/DVB-C), yaVDR ansible FOCAL, softhdvaapi, skindesigner

  • Danke für den Hinweis, wie und was in welcher Datei hast Du eingestellt?

    VDR1 Fujitsu D3400-B2 i5-7500 HD630, 8GB RAM, WinTV-quadHD (DVB-T), yaVDR ansible BIONIC, softhdvaapi, skindesigner

    VDR2 NUC8i3BEH2, 16GB RAM, WinTV-dualHD (DVB-T/DVB-C), yaVDR ansible FOCAL, softhdvaapi, skindesigner

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!