• portstree shared in jails

    From Kai Richter@2:240/77 to Alle on Thu Sep 21 13:58:22 2023
    Hallo Echo!

    Wie es aussieht werde ich wohl nicht um ports herum kommen. Da ich dann wohl eher zwei/drei jails haben möchte in denen angepasste Software läuft, möchte ich mehrfachen build Aufwand vermindern und überlege ob man /usr/ports auf ein dataset legt, eine ports builder jail baut und den portstree dann per nullfs bei Bedarf in die anderen jails einbindet. Würde das funktionieren, oder gibt es da Hürden welche zu schwer zu überwinden sind?

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: ... oft aber auch nicht immer. (2:240/77)
  • From Kai Richter@2:240/77 to Alle on Thu Sep 21 20:18:46 2023
    Tach Alle!

    Am 21 Sep 23, Kai Richter schrieb an Alle:

    Wie es aussieht werde ich wohl nicht um ports herum kommen.

    Ich glaube ich trete die Idee in die Tonne, bin gerade dabei postgreSQL zu compilieren, nach 2 Stunden Abhängigkeiten habe ich vergessen was ich eigentlich haben wollte und jetzt sind 6 Stunden rum und er baut 3100 cxx Objekte für rust zusammen...

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Ride the sky! (2:240/77)
  • From Gerrit Kuehn@2:240/12 to Kai Richter on Fri Sep 22 20:53:42 2023
    Hello Kai!

    21 Sep 23 20:18, Kai Richter wrote to Alle:


    Ich glaube ich trete die Idee in die Tonne, bin gerade dabei
    postgreSQL zu compilieren,

    Sorry, aber: /warum/ tust Du das überhaupt?

    nach 2 Stunden Abhängigkeiten habe ich
    vergessen was ich eigentlich haben wollte und jetzt sind 6 Stunden
    rum und er baut 3100 cxx Objekte für rust zusammen...

    Wenn man denn unbedingt will, baut man sowas auf potenteren Kisten und installiert dann die Packages. Poudriere ist Dein Freund, wenn Du das automatisieren willst.


    Regards,
    Gerrit

    ... 8:53PM up 549 days, 1:59, 7 users, load averages: 0.13, 0.26, 0.29

    --- msged/fbsd 6.3 2021-12-02
    * Origin: Ideas of lust and dying (2:240/12)
  • From Kai Richter@2:240/77 to Gerrit Kuehn on Sat Sep 23 12:48:42 2023
    Servus Gerrit!

    Am 22 Sep 23, Gerrit Kuehn schrieb an Kai Richter:

    Ich glaube ich trete die Idee in die Tonne, bin gerade dabei
    postgreSQL zu compilieren,

    Sorry, aber: /warum/ tust Du das überhaupt?

    Eigentlich weil ich mir einen lokalen Nextcloud Server hinstellen möchte, der vielleicht auch später mit dem passenden Handy Client von meinen Eltern genutzt werden könnte. Der setzt dann ursprünglich auf den xampp Stack auf, bei dem unter FreeBSD verschiedene Alternativen möglich sind.

    Es gibt von nextcloud ein all-in-one VM ova Image, welches sich aber nicht ohne gültige domain installieren lässt. Der Workaround sieht einen eigenen DNS Server vor. Ich stehe also von mindestens drei neuen Programmen (amp), von denen es alternative Versionen gibt. Die Lernkurve ist daher eh schon gross, ich möchte daher einen späteren Wechsel vermeiden und daher wirft man einen Suchmaschine an, die dann zum Beispiel Beiträge bekannter FreeBSD Foren Mitglieder findet:

    https://vermaden.wordpress.com/2020/01/04/nextcloud-17-on-freebsd-12-1/

    nach 2 Stunden Abhängigkeiten habe ich
    vergessen was ich eigentlich haben wollte und jetzt sind 6
    Stunden rum und er baut 3100 cxx Objekte für rust zusammen...

    Wenn man denn unbedingt will, baut man sowas auf potenteren Kisten und installiert dann die Packages. Poudriere ist Dein Freund, wenn Du das automatisieren willst.

    Womit ich dann wieder ein neues Programm mehr auf der Lernkurve habe.
    Ich nehme die langen Laufzeiten in Kauf (kann auch sein, dass es nur auf single core läuft und sich da noch was auf optimieren lässt), wenn ich nicht in jeder jail von vorn anfangen muss. Daher war die Idee den portstree in den jails zu teilen, welches sich dann über einen nullfs Eintrag in der jail.fstab relativ leicht lösen liesse. Das erscheint mir erstmal einfacher, als auch noch einen eigenen Repo Server aufzusetzen.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Love Parade. Tanzen bis zum Exit. (2:240/77)
  • From Gerrit Kuehn@2:240/12 to Kai Richter on Mon Sep 25 18:57:47 2023
    Hello Kai!

    23 Sep 23 12:48, Kai Richter wrote to Gerrit Kuehn:

    Sorry, aber: /warum/ tust Du das überhaupt?

    Eigentlich weil ich mir einen lokalen Nextcloud Server hinstellen
    möchte, der vielleicht auch später mit dem passenden Handy Client von meinen Eltern genutzt werden könnte.

    Dir ist schon klar, daß der Aufwand dafür nicht unerheblich ist und es relativ günstig gehostete Lösungen gibt?

    Ich nehme die langen Laufzeiten in Kauf (kann auch sein, dass es nur
    auf single core läuft und sich da noch was auf optimieren lässt),
    wenn ich nicht in jeder jail von vorn anfangen muss. Daher war die
    Idee den portstree in den jails zu teilen, welches sich dann über
    einen nullfs Eintrag in der jail.fstab relativ leicht lösen liesse.
    Das erscheint mir erstmal einfacher, als auch noch einen eigenen Repo Server aufzusetzen.

    Warum baust Du überhaupt selber? Die meisten Pakete sollten doch binär völlig in Ordnung sein. Du kannst natürlich den Portstree wie beschrieben über nullfs teilen und in jeder jail separat "make install" aufrufen. Etwas nachhaltiger wäre vielleicht "make package" und die anschließende Verteilung der pkgs.


    Regards,
    Gerrit

    ... 6:57PM up 552 days, 3 mins, 7 users, load averages: 0.31, 0.32, 0.31

    --- msged/fbsd 6.3 2021-12-02
    * Origin: Tall orders to fulfil (2:240/12)
  • From Kai Richter@2:240/77 to Gerrit Kuehn on Wed Sep 27 00:27:34 2023
    Tach Gerrit!

    Am 25 Sep 23, Gerrit Kuehn schrieb an Kai Richter:

    Eigentlich weil ich mir einen lokalen Nextcloud Server hinstellen
    möchte, der vielleicht auch später mit dem passenden Handy
    Client von meinen Eltern genutzt werden könnte.

    Dir ist schon klar, daß der Aufwand dafür nicht unerheblich ist und es relativ günstig gehostete Lösungen gibt?

    Im Prinzip schon. Oder sollte ich besser fragen in wie fern? Jails habe ich gerade hinter mir und soweit im Griff, dass ich zwei basejail Upgrades erfolgreich umgesetzt habe. Die husky/git jail läuft jetzt soweit, dass ich die Husky Software komplett durch den compiler habe. Das war auch nicht gerade trivial, aber man geht halt Schritt für Schritt. Im Moment lese ich mich in mysql und phpadmin ein. Die Default Seite von Apache oder nginx habe ich auch schon gesehen.

    Warum baust Du überhaupt selber? Die meisten Pakete sollten doch binär völlig in Ordnung sein. Du kannst natürlich den Portstree wie
    beschrieben über nullfs teilen und in jeder jail separat "make
    install" aufrufen. Etwas nachhaltiger wäre vielleicht "make package"
    und die anschließende Verteilung der pkgs.

    Dann kommt halt noch eine neue Software zur Paketverteilung hinzu. Warum selbst compilieren:

    # pkg show "nextcloud*"
    nextcloud-php82-26.0.0_1
    Name : nextcloud-php82
    Options :
    APCU : on
    EXIF : on
    IMAGICK : off
    INTL : on
    LDAP : on
    MYSQL : on
    OPCACHE : on
    PCNTL : off
    PGSQL : off

    Weil nextcloud kein postgres drin hat. Daher auch die Frage wie kompatibel die Datenbank Server sind. Das fertige pkg kommt auf +400MB, keine Ahnung wie gross die build Umgebung dann wird. Die Ansage war ja auch "nicht mischen". Also eigentlich müsste ich die ganze jail dann ohne pkg aus dem portstree hochziehen.

    REDIS : off
    SMB : off
    SQLITE : off
    SSL : on
    SYSVSEM : on

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Ihr... Ihr... Boah, ihr Praktiker ey! (2:240/77)
  • From Gerrit Kuehn@2:240/12 to Kai Richter on Wed Sep 27 21:52:38 2023
    Hello Kai!

    27 Sep 23 00:27, Kai Richter wrote to Gerrit Kuehn:


    Dann kommt halt noch eine neue Software zur Paketverteilung hinzu.
    Warum selbst compilieren:

    # pkg show "nextcloud*"
    nextcloud-php82-26.0.0_1

    Weil nextcloud kein postgres drin hat.

    Ich bin nicht so mega-fit in schmutzigen Lösungen, aber so als Idee:

    1. nextcloud binär mit pkg installieren, damit Du alle Dependencies bekommst. 2. nextcloud selbst und mysql löschen, denn die willst Du (so) nicht.
    3. postgres mit pkg installieren.
    4. nextcloud auf postgres umstellen, selber bauen und installieren.
    5. nextcloud mit pkg locken.

    Updates für nextcloud selber müßte man dann eigentlich mit dem web updater machen können. Die restlichen Pakete kann man mit pkg aktualisieren.

    Ist aber sicher gefährliches Halbwissen von meiner Seite, man kann sowas bestimmt auch schnell zum Explodieren bringen. Dependency hell un so. Eigentlich sind dafür ports-mgmt/poudriere oder ports-mgmt/synth gedacht.


    Regards,
    Gerrit

    ... 9:52PM up 554 days, 2:58, 7 users, load averages: 0.57, 0.41, 0.35

    --- msged/fbsd 6.3 2021-12-02
    * Origin: Things I already know (2:240/12)
  • From Kai Richter@2:240/77 to Gerrit Kuehn on Wed Sep 27 23:52:22 2023
    Tag Gerrit!

    Am 27 Sep 23, Gerrit Kuehn schrieb an Kai Richter:

    Ich bin nicht so mega-fit in schmutzigen Lösungen, aber so als Idee:

    Der Ablauf wäre sicher ein interessantes Experiment, aber ich glaube für täglichen nutzen wäre ich damit im Fehlerfalle noch mehr überfordert.

    Da hätte der shared portstree noch den Vorteil sich einfach mit snapshots einfrieren zu lassen. Mir wäre die Methode "einmal saurer Apfel" mit langen Compilierungszeiten, aber dafür relativ Upgrade sicher, etwas lieber.

    Wenn ich das richtig verstanden habe, wird auf einen Datenbank Server doch per IP zugegriffen? Wie tauglich wäre die Idee mysql und pgres jeweils in eine jail zu setzen und die dann versuchsweise einzeln an nextcloud zu koppeln?

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Monobox - OS/2 has gone (2:240/77)
  • From Gerrit Kuehn@2:240/12 to Kai Richter on Thu Sep 28 20:20:26 2023
    Hello Kai!

    27 Sep 23 23:52, Kai Richter wrote to Gerrit Kuehn:

    Ich bin nicht so mega-fit in schmutzigen Lösungen, aber so als Idee:

    Der Ablauf wäre sicher ein interessantes Experiment, aber ich glaube
    für täglichen nutzen wäre ich damit im Fehlerfalle noch mehr
    überfordert.

    Mußt Du selber wissen. Die Variante "alles selber bauen" hat auch ihre Tücken.

    Da hätte der shared portstree noch den Vorteil sich einfach mit
    snapshots einfrieren zu lassen.

    Wenn Du jails hast, kannst Du die sowieso vor einem Update komplett snapshotten und im Zweifelsfall zurückrollen.

    Mir wäre die Methode "einmal saurer
    Apfel" mit langen Compilierungszeiten, aber dafür relativ Upgrade
    sicher, etwas lieber.

    Ich sehe halt das Problem, daß das nicht nur ein saurer Apfel ist... das Problem hast Du bei jedem Update neu.

    Wenn ich das richtig verstanden habe, wird auf einen Datenbank Server doch per IP zugegriffen? Wie tauglich wäre die Idee mysql und pgres jeweils in eine jail zu setzen und die dann versuchsweise einzeln an nextcloud zu koppeln?

    Kann man machen, benutze ich im Moment auch so (z.B. für postgres und redmine). Der wesentliche Vorteil ist normalerweise, daß man nur einen Datenbank-Server braucht, auf den man dann mit unterschiedlichen Applikationen zugreifen kann (wenn man denn mehrere hat).
    Damit könntest Du wenigstens die postgres-Jail komplett mit pkg bespielen, das wäre in Deinem Fall vielleicht ein weiterer Vorteil.

    Technisch muß postgres dann überhaupt nicht offen im Netz verfügbar sein. Man kann in den Jails mit unterschiedlichen LocalHost-Adressen arbeiten und die Datenbank-Anbindung nur intern darüber laufen lassen.


    Regards,
    Gerrit

    ... 8:20PM up 555 days, 1:26, 7 users, load averages: 0.20, 0.31, 0.31

    --- msged/fbsd 6.3 2021-12-02
    * Origin: Dry thoughts for the tenant (2:240/12)
  • From Kai Richter@2:240/77 to Gerrit Kuehn on Tue Oct 3 00:26:48 2023
    Tach auch Gerrit!

    Am 28 Sep 23, Gerrit Kuehn schrieb an Kai Richter:

    Kann man machen, benutze ich im Moment auch so (z.B. für postgres und redmine). Der wesentliche Vorteil ist normalerweise, daß man nur einen Datenbank-Server braucht, auf den man dann mit unterschiedlichen Applikationen zugreifen kann (wenn man denn mehrere hat).
    Damit könntest Du wenigstens die postgres-Jail komplett mit pkg
    bespielen, das wäre in Deinem Fall vielleicht ein weiterer Vorteil.

    Wie verhalten sich die Installer, wenn abhängige Pakete wie SQL durch einen anderen Server bereit gestellt werden?

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Schriftverkehr kann man auch ohne Pille riskieren. (2:240/77)
  • From Gerrit Kuehn@2:240/12 to Kai Richter on Tue Oct 3 10:13:13 2023
    Hello Kai!

    03 Oct 23 00:26, Kai Richter wrote to Gerrit Kuehn:

    Wie verhalten sich die Installer, wenn abhängige Pakete wie SQL durch einen anderen Server bereit gestellt werden?

    Ich verstehe die Frage nicht ganz. Du meinst, Du installierst ein Paket wie redmine oder nextcloud, die eine Datenbank (den Server) benötigen? Das wird vom Installer komplett ignoriert, darum mußt Du Dich selber kümmern. Die Datenbank könnte ja sonstwo sein. Einzig der Client wird benötigt, um darauf zugreifen zu können. Also gibt es typischerweise eine (ggf. wählbare) Abhängigkeit auf ein Client-Paket (wenn die Applikation das nicht selber macht, was ich aber für eher selten halten würde).
    Je nach Applikation und Möglichkeiten kann es auch sein, daß sqlite als Default-Datenbank gewählt wird. In dem Fall wird dann logischerweise sqlite mitinstalliert. Postgres, mysql, mariadb o.ä. (also die Server dazu) aber aus dem obigen Grunde eigentlich nie.


    Regards,
    Gerrit

    ... 10:13AM up 559 days, 15:19, 7 users, load averages: 0.23, 0.38, 0.40

    --- msged/fbsd 6.3 2021-12-02
    * Origin: Dry thoughts for the tenant (2:240/12)
  • From Kai Richter@2:240/77 to Gerrit Kuehn on Wed Oct 4 20:08:54 2023
    Tag auch Gerrit!

    Am 03 Oct 23, Gerrit Kuehn schrieb an Kai Richter:

    Ich verstehe die Frage nicht ganz. Du meinst, Du installierst ein
    Paket wie redmine oder nextcloud, die eine Datenbank (den Server) benötigen? Das wird vom Installer komplett ignoriert, darum mußt Du
    Dich selber kümmern. Die Datenbank könnte ja sonstwo sein.

    Danke, ich habe mich verkuckt. In den Dependencies hatte ich was von database/mysql gesehen, bei genauem Hinsehen ist es aber database/php81-pdo_mysql, ein Modul für php.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Endlich ein Urteil: Microsoft schadet Kunden durch Monopo (2:240/77)
  • From Kai Richter@2:240/77 to Gerrit Kuehn on Fri Oct 6 11:11:26 2023
    Moin Gerrit!

    Am 28 Sep 23, Gerrit Kuehn schrieb an Kai Richter:

    Technisch muß postgres dann überhaupt nicht offen im Netz verfügbar
    sein. Man kann in den Jails mit unterschiedlichen LocalHost-Adressen arbeiten und die Datenbank-Anbindung nur intern darüber laufen lassen.

    Es hat etwas gedauert, aber jetzt reagiert die jail bei ping sowohl auf ihre localhost als auch auf auf ihre netzinterne IP. Neu für mich ist, dass es sozusagen eine postgres interne firewall gibt und man gezielte IPs für client Zugriff freischalten kann bzw. muss.

    FATAL: no pg_hba.conf entry for host "192.168.0.4", user "postgres", database "postgres", no encryption

    Ich habe pgadmin auf Windows installiert und konnte nach der Anpassung der pg_hba.conf zugreifen. Gefällt mir richtig gut, ich denke auf die selbe Weise könnte ich eine mysql db hinstellen und so könnte ich zuerst auf die lange Kompilierung von nextcloud für postgres verzichten und mir schnell einen Eindruck vom Aufwand der nc Installation und Betrieb verschaffen.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Im Quadrat sind 3 + 4 doch 5? (2:240/77)
  • From Gerrit Kuehn@2:240/12 to Kai Richter on Sat Oct 7 10:12:06 2023
    Hello Kai!

    06 Oct 23 11:11, Kai Richter wrote to Gerrit Kuehn:

    Es hat etwas gedauert, aber jetzt reagiert die jail bei ping sowohl
    auf ihre localhost als auch auf auf ihre netzinterne IP. Neu für mich ist, dass es sozusagen eine postgres interne firewall gibt und man gezielte IPs für client Zugriff freischalten kann bzw. muss.

    Ich würde das nicht Firewall nennen, aber ja, man muß den externen Zugriff freischalten. Kann man auch für alle tun, aber das ist halt weniger sicher.
    Defaultmäßig läuft das nur auf localhost. Wenn der Zugriff nicht direkt von dort passiert, kann man sich die entsprechenden Ports z.B. auch per SSH-Tunnel 'rausziehen.

    Ich habe pgadmin auf Windows installiert und konnte nach der
    Anpassung der pg_hba.conf zugreifen. Gefällt mir richtig gut, ich

    Habe ich noch nie benutzt, bisher habe ich das immer direkt editiert.


    Regards,
    Gerrit

    ... 10:12AM up 563 days, 15:18, 7 users, load averages: 0.10, 0.28, 0.37

    --- msged/fbsd 6.3 2021-12-02
    * Origin: Dry thoughts for the tenant (2:240/12)
  • From Kai Richter@2:240/77 to Gerrit Kuehn on Sun Nov 5 08:32:52 2023
    Moin Gerrit!

    Am 07 Oct 23, Gerrit Kuehn schrieb an Kai Richter:

    Ich würde das nicht Firewall nennen, aber ja, man muß den externen
    Zugriff freischalten. Kann man auch für alle tun, aber das ist halt weniger sicher. Defaultmäßig läuft das nur auf localhost.

    Wenn ich jetzt richtig durchblicke, dann ist es eine user per host config.

    Inzwischen habe ich einen User für das Subnetz freigeschaltet. Woher stammt eigentlich das unterschiedliche Wildcard, % statt *?

    Nachdem der dann zwar auf der db war, aber eigentlich nichts gesehen hat und nichts machen konnte, hab ich gelernt das dieser neue User auch erstmal alle Rechte eingestellt bekommen muss. Du hast recht, Datenbank ist nicht trivial.

    Wenn der Zugriff nicht direkt von dort passiert, kann man sich die entsprechenden Ports z.B. auch per SSH-Tunnel 'rausziehen.

    Wie wirkt der Tunnel? Also als welcher User kommt man an? Als remote user oder ist man wie bei einer normalen ssh Sitzung dann user@localhost?

    Ich habe pgadmin auf Windows installiert und konnte nach der
    Anpassung der pg_hba.conf zugreifen. Gefällt mir richtig gut,

    Habe ich noch nie benutzt, bisher habe ich das immer direkt editiert.

    Für Anfänger ist die Übersicht besser. Da die Tabellen hier über den Bildschirmrand hinaus gehen, zerlegt der Zeilenumbruch einiges.
    Klar, man kann einzelne Spalten filtern, aber ich wollte mich erstmal nicht zum SQL Guru entwickeln.

    Ich habe jetzt eine mysql 8 jail aufgesetzt und da alle Probleme nochmal. ;-)

    Für den Zugriff probiere ich gerade HeidiSQL unter Windows, das kann sowohl postgres als auch mysql.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Was ich machen will, mache ich auch. (2:240/77)