<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Unifi Dream Router on Ulis Notizen</title>
    <link>https://wolf-u.li/tag/unifi-dream-router/</link>
    <description>Recent content in Unifi Dream Router on Ulis Notizen</description>
    <generator>Hugo</generator>
    <language>de</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Sat, 14 Jan 2023 08:01:08 +1400</lastBuildDate>
    <atom:link href="https://wolf-u.li/tag/unifi-dream-router/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Unifi Dream Router (UDR) zeigt Internet offline aber ist online</title>
      
      
      <link>https://wolf-u.li/unifi-dream-router-udr-zeigt-internet-offline-aber-ist-online/</link>
      <pubDate>Sat, 14 Jan 2023 08:01:08 +1400</pubDate>
      <guid>https://wolf-u.li/unifi-dream-router-udr-zeigt-internet-offline-aber-ist-online/</guid>
      <description>&lt;p&gt;Mein Unifi UDR zeigte seit dem Update auf die Firmware 3.x den Internetstatus als &amp;ldquo;Offline&amp;rdquo; an.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://wolf-u.li/upload/2023/01/unifi-udr-internet-offline-1.webp&#34; alt=&#34;Unifi UDR zeigt offline&#34; loading=&#34;lazy&#34;&gt;&lt;/p&gt;
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
&lt;p&gt;Per default versucht das Gerät die Adresse &lt;code&gt;ping.ubnt.com&lt;/code&gt; zu erreichen, welche auf der Kommandozeile des Geräts auch problemlos zu pingen war. Dennoch war die Anzeige rot. Ein &lt;link rel=dns-prefetch href=//www.reddit.com /&gt; &lt;a href=&#34;https://www.reddit.com/r/Ubiquiti/comments/wskjo6/udm_pro_shows_internet_health_red_and/&#34;
    title=&#34;Artikel auf Reddit&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Artikel auf Reddit&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; brachte mich endlich auf die richtige Spur - es ist möglich diese Adresse zu ändern. Und so geht&amp;rsquo;s:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Mein Unifi UDR zeigte seit dem Update auf die Firmware 3.x den Internetstatus als &ldquo;Offline&rdquo; an.</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-1.webp" alt="Unifi UDR zeigt offline" loading="lazy"></p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<p>Per default versucht das Gerät die Adresse <code>ping.ubnt.com</code> zu erreichen, welche auf der Kommandozeile des Geräts auch problemlos zu pingen war. Dennoch war die Anzeige rot. Ein <link rel=dns-prefetch href=//www.reddit.com /> <a href="https://www.reddit.com/r/Ubiquiti/comments/wskjo6/udm_pro_shows_internet_health_red_and/"
    title="Artikel auf Reddit" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Artikel auf Reddit&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> brachte mich endlich auf die richtige Spur - es ist möglich diese Adresse zu ändern. Und so geht&rsquo;s:</p>
<p>Navigiere via <em>Geräte</em> -&gt; <em>UDR</em> -&gt; <em>Settings</em> zur Sektion <em>Services</em>:</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-2.webp" alt="UDR Services" loading="lazy"></p>
<p>Ändere dort die Adresse des Echo Servers auf eine öffentliche, hoch-verfügbare Adresse (z.b. <code>1.1.1.1</code> oder <code>8.8.8.8</code> oder <code>8.8.4.4</code>)</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-3.webp" alt="UDR Services" loading="lazy"></p>
<p>Und schon normalisiert sich die Anzeige des Online-Status:</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-4.webp" alt="UDR Services" loading="lazy"></p>
]]></content:encoded>
    </item>
    <item>
      <title>Unifi Dream Router (UDR) - Einrichten des NTP Servers</title>
      
      
      <link>https://wolf-u.li/unifi-dream-router-udr-einrichten-des-ntp-servers/</link>
      <pubDate>Sun, 07 Aug 2022 08:24:29 +0700</pubDate>
      <guid>https://wolf-u.li/unifi-dream-router-udr-einrichten-des-ntp-servers/</guid>
      <description>&lt;p&gt;Nachdem ich meinen neuen Unifi Dream Router aufgebaut hatte kam nach einiger Zeit die Zeit in meinem IT-Equipment durcheinander. Nach einiger Suche stellte sich heraus: Der UDR (im Gegensatz zum Unifi Gateway, welchen ich zuvor besessen hatte) kann kein NTP (Network Time Protocol). NTP ist ein Netzwerkprotokoll, das verwendet wird, um die Uhrzeit von Computern und anderen Geräten im Internet synchron zu halten. Da viele Anwendungen und Dienste von der Uhrzeit abhängig sind ist es wichtig, dass die Zeit genau ist. Beispielsweise werden die Uhrzeit und das Datum verwendet, um sicherzustellen, dass Dateien und Ereignisse in der korrekten Reihenfolge gespeichert und ausgeführt werden.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Nachdem ich meinen neuen Unifi Dream Router aufgebaut hatte kam nach einiger Zeit die Zeit in meinem IT-Equipment durcheinander. Nach einiger Suche stellte sich heraus: Der UDR (im Gegensatz zum Unifi Gateway, welchen ich zuvor besessen hatte) kann kein NTP (Network Time Protocol). NTP ist ein Netzwerkprotokoll, das verwendet wird, um die Uhrzeit von Computern und anderen Geräten im Internet synchron zu halten. Da viele Anwendungen und Dienste von der Uhrzeit abhängig sind ist es wichtig, dass die Zeit genau ist. Beispielsweise werden die Uhrzeit und das Datum verwendet, um sicherzustellen, dass Dateien und Ereignisse in der korrekten Reihenfolge gespeichert und ausgeführt werden.</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<p>NTP verwendet ein Client-Server-Modell, bei dem ein NTP-Client eine Verbindung zu einem NTP-Server herstellt und von diesem die aktuelle Uhrzeit abruft. Der NTP-Server holt seine Uhrzeit von einer oder mehrerer Referenzuhren, die in der Regel GPS-Uhren oder Atomuhren sind und sehr genaue Uhrzeiten liefern. Der NTP-Client passt dann seine eigene Uhrzeit an die Uhrzeit des NTP-Servers an, um sicherzustellen, dass die Uhrzeit auf dem Client genau ist. Da ich meine Geräte alle auf den Unifi Gateway (und damit nun die UDM) eingestellt hatte, waren meine Geräte sehr &ldquo;zeitlos&rdquo; geworden ;) Das sollte natürlich nicht so bleiben.</p>
<h2 id="setup-von-podman">Setup von podman</h2>
<p>Damit der NTP-Server wieder laufen kann muss man zunächst podman als container Engine aufsetzen, da der NTP Server als <link rel=dns-prefetch href=//hub.docker.com /> <a href="https://hub.docker.com/r/tusc/chrony-udm"
    title="Container" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Container&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> laufen wird. <a href="/unifi-dream-router-udr-einrichten-von-podman/"
    title="Dies ist hier beschrieben" 
   >
  Dies ist hier beschrieben</a>.</p>
<h2 id="setup-des-ntp-containers">Setup des NTP Containers</h2>
<p>um den Container automatisch zu starten muss die entsprechende Datei angelegt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat &gt; /data/on_boot.d/20-ntp.sh <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="s">CONTAINER=ntp
</span></span></span><span class="line"><span class="cl"><span class="s">if podman container exists ${CONTAINER}; then
</span></span></span><span class="line"><span class="cl"><span class="s">  podman start ${CONTAINER}
</span></span></span><span class="line"><span class="cl"><span class="s">else
</span></span></span><span class="line"><span class="cl"><span class="s">  podman run --device=/dev/net/tun --publish=123:123/udp --cap-add=SYS_TIME --name ${CONTAINER} -d tusc/chrony-udm
</span></span></span><span class="line"><span class="cl"><span class="s">fi
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span><span class="line"><span class="cl">chmod a+x /data/on_boot.d/20-ntp.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun wird der Container herunter geladen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">podman pull tusc/chrony-udm
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend wird der container gestartet:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">/data/on_boot.d/20-ntp.sh
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="quellen">Quellen</h2>
<ul>
<li><link rel=dns-prefetch href=//community.ui.com /> <a href="https://community.ui.com/questions/PSA-UDM-will-not-act-as-an-NTP-server/327e85c8-8680-4c47-b60e-045894fc7cc4"
    title="PSA: UDM will not act as an NTP server" 
     target="_blank" rel="nofollow noopener noreferrer" >
  PSA: UDM will not act as an NTP server&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//hub.docker.com /> <a href="https://hub.docker.com/r/tusc/chrony-udm"
    title="Dockerhub: tusc/chrony-udm" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Dockerhub: tusc/chrony-udm&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Unifi Dream Router - Einrichten von podman</title>
      
      
      <link>https://wolf-u.li/unifi-dream-router-udr-einrichten-von-podman/</link>
      <pubDate>Sat, 06 Aug 2022 08:24:29 +0600</pubDate>
      <guid>https://wolf-u.li/unifi-dream-router-udr-einrichten-von-podman/</guid>
      <description>&lt;p&gt;Mit dem neuen Unifi Dream Router kam nach einiger Zeit der Wunsch nach &lt;a href=&#34;https://wolf-u.li/unifi-dream-router-udr-einrichten-des-ntp-servers/&#34;
    title=&#34;zusätzlichen Diensten wie NTP&#34; 
   &gt;
  zusätzlichen Diensten wie NTP&lt;/a&gt; auf. Dafür benötigt man podman, was im Unifi Dream Router nicht mehr enthalten ist. Podman ist ein Open-Source-Werkzeug, das verwendet wird, um containerbasierte Anwendungen auf Linux-Systemen auszuführen und zu verwalten. Es ist ähnlich wie Docker, aber es wurde speziell für das Ausführen von Containern ohne root-Rechte entwickelt. Das bedeutet, dass Podman keine root-Rechte benötigt, um Container zu erstellen, zu starten, zu stoppen oder zu löschen.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Mit dem neuen Unifi Dream Router kam nach einiger Zeit der Wunsch nach <a href="/unifi-dream-router-udr-einrichten-des-ntp-servers/"
    title="zusätzlichen Diensten wie NTP" 
   >
  zusätzlichen Diensten wie NTP</a> auf. Dafür benötigt man podman, was im Unifi Dream Router nicht mehr enthalten ist. Podman ist ein Open-Source-Werkzeug, das verwendet wird, um containerbasierte Anwendungen auf Linux-Systemen auszuführen und zu verwalten. Es ist ähnlich wie Docker, aber es wurde speziell für das Ausführen von Containern ohne root-Rechte entwickelt. Das bedeutet, dass Podman keine root-Rechte benötigt, um Container zu erstellen, zu starten, zu stoppen oder zu löschen.</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<h2 id="on-boot-script">On-Boot Script</h2>
<p>Installiere die unifios-utilities nach <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/blob/main/on-boot-script/README.md"
    title="Anleitung" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Anleitung&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -fsL <span class="s2">&#34;https://raw.githubusercontent.com/unifi-utilities/unifios-utilities/HEAD/on-boot-script/remote_install.sh&#34;</span> <span class="p">|</span> /bin/sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Das Verzeichnis <code>/data/on_boot.d</code> sollte nun vorhanden sein. Leider ist seit OS 2.x dieses Verzeichnis auf einer sehr kleinen Partition, weshalb es umziehen muss auf die SSD.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/on_boot.d/
</span></span><span class="line"><span class="cl">mv /mnt/data/on_boot.d/* /data/on_boot.d/
</span></span><span class="line"><span class="cl">mv /mnt/data/.cache /data/
</span></span><span class="line"><span class="cl">rm -Rf /mnt/data
</span></span><span class="line"><span class="cl">ln -snf /data /mnt/data
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="installation-von-podman">Installation von Podman</h2>
<ul>
<li>
<p>Navigiere zur <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/actions/workflows/podman-udmse.yml"
    title="Build-Übersicht von den unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Build-Übersicht von den unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> für die &ldquo;<em>UDM-SE Podman</em>&rdquo;. Klicke auf einen Build, dann lade aus der Artifacts Sektion die Datei &ldquo;<em>udmse-podman-install.zip</em>&rdquo; herunter.</p>
</li>
<li>
<p>Packe diese einmal aus, was die Datei &ldquo;<em>podman-install.zip</em>&rdquo; entpackt.</p>
</li>
<li>
<p>Erstelle auf dem UDR ein persistentes Verzeichnis:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Lade die Datei &ldquo;<em>podman-install.zip</em>&rdquo; auf den UDR (z.b. via WinSCP) ins Verzeichnis (<code>/data/podman/</code>).</p>
</li>
<li>
<p>Dann muss die Datei ausgepackt werden (dies ist sozusagen die Installation)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /data/podman/
</span></span><span class="line"><span class="cl">unzip podman-install.zip
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="konfiguration-von-podman">Konfiguration von Podman</h2>
<p>Nun muss man eine Reihe Konfigurationsdateien anlegen:</p>
<h3 id="docker-registry-config">Docker Registry Config</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/etc/containers/registries.conf.d
</span></span><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/registries.conf.d/dockerio.conf <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">unqualified-search-registries=[&#34;docker.io&#34;]
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="container-policy">Container Policy</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/etc/containers/
</span></span><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/policy.json <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">{
</span></span></span><span class="line"><span class="cl"><span class="s">    &#34;default&#34;: [
</span></span></span><span class="line"><span class="cl"><span class="s">        {
</span></span></span><span class="line"><span class="cl"><span class="s">            &#34;type&#34;: &#34;insecureAcceptAnything&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">        }
</span></span></span><span class="line"><span class="cl"><span class="s">    ],
</span></span></span><span class="line"><span class="cl"><span class="s">    &#34;transports&#34;:
</span></span></span><span class="line"><span class="cl"><span class="s">        {
</span></span></span><span class="line"><span class="cl"><span class="s">            &#34;docker-daemon&#34;:
</span></span></span><span class="line"><span class="cl"><span class="s">                {
</span></span></span><span class="line"><span class="cl"><span class="s">                    &#34;&#34;: [{&#34;type&#34;:&#34;insecureAcceptAnything&#34;}]
</span></span></span><span class="line"><span class="cl"><span class="s">                }
</span></span></span><span class="line"><span class="cl"><span class="s">        }
</span></span></span><span class="line"><span class="cl"><span class="s">}
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="storage-config">Storage Config</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">  1
</span><span class="lnt">  2
</span><span class="lnt">  3
</span><span class="lnt">  4
</span><span class="lnt">  5
</span><span class="lnt">  6
</span><span class="lnt">  7
</span><span class="lnt">  8
</span><span class="lnt">  9
</span><span class="lnt"> 10
</span><span class="lnt"> 11
</span><span class="lnt"> 12
</span><span class="lnt"> 13
</span><span class="lnt"> 14
</span><span class="lnt"> 15
</span><span class="lnt"> 16
</span><span class="lnt"> 17
</span><span class="lnt"> 18
</span><span class="lnt"> 19
</span><span class="lnt"> 20
</span><span class="lnt"> 21
</span><span class="lnt"> 22
</span><span class="lnt"> 23
</span><span class="lnt"> 24
</span><span class="lnt"> 25
</span><span class="lnt"> 26
</span><span class="lnt"> 27
</span><span class="lnt"> 28
</span><span class="lnt"> 29
</span><span class="lnt"> 30
</span><span class="lnt"> 31
</span><span class="lnt"> 32
</span><span class="lnt"> 33
</span><span class="lnt"> 34
</span><span class="lnt"> 35
</span><span class="lnt"> 36
</span><span class="lnt"> 37
</span><span class="lnt"> 38
</span><span class="lnt"> 39
</span><span class="lnt"> 40
</span><span class="lnt"> 41
</span><span class="lnt"> 42
</span><span class="lnt"> 43
</span><span class="lnt"> 44
</span><span class="lnt"> 45
</span><span class="lnt"> 46
</span><span class="lnt"> 47
</span><span class="lnt"> 48
</span><span class="lnt"> 49
</span><span class="lnt"> 50
</span><span class="lnt"> 51
</span><span class="lnt"> 52
</span><span class="lnt"> 53
</span><span class="lnt"> 54
</span><span class="lnt"> 55
</span><span class="lnt"> 56
</span><span class="lnt"> 57
</span><span class="lnt"> 58
</span><span class="lnt"> 59
</span><span class="lnt"> 60
</span><span class="lnt"> 61
</span><span class="lnt"> 62
</span><span class="lnt"> 63
</span><span class="lnt"> 64
</span><span class="lnt"> 65
</span><span class="lnt"> 66
</span><span class="lnt"> 67
</span><span class="lnt"> 68
</span><span class="lnt"> 69
</span><span class="lnt"> 70
</span><span class="lnt"> 71
</span><span class="lnt"> 72
</span><span class="lnt"> 73
</span><span class="lnt"> 74
</span><span class="lnt"> 75
</span><span class="lnt"> 76
</span><span class="lnt"> 77
</span><span class="lnt"> 78
</span><span class="lnt"> 79
</span><span class="lnt"> 80
</span><span class="lnt"> 81
</span><span class="lnt"> 82
</span><span class="lnt"> 83
</span><span class="lnt"> 84
</span><span class="lnt"> 85
</span><span class="lnt"> 86
</span><span class="lnt"> 87
</span><span class="lnt"> 88
</span><span class="lnt"> 89
</span><span class="lnt"> 90
</span><span class="lnt"> 91
</span><span class="lnt"> 92
</span><span class="lnt"> 93
</span><span class="lnt"> 94
</span><span class="lnt"> 95
</span><span class="lnt"> 96
</span><span class="lnt"> 97
</span><span class="lnt"> 98
</span><span class="lnt"> 99
</span><span class="lnt">100
</span><span class="lnt">101
</span><span class="lnt">102
</span><span class="lnt">103
</span><span class="lnt">104
</span><span class="lnt">105
</span><span class="lnt">106
</span><span class="lnt">107
</span><span class="lnt">108
</span><span class="lnt">109
</span><span class="lnt">110
</span><span class="lnt">111
</span><span class="lnt">112
</span><span class="lnt">113
</span><span class="lnt">114
</span><span class="lnt">115
</span><span class="lnt">116
</span><span class="lnt">117
</span><span class="lnt">118
</span><span class="lnt">119
</span><span class="lnt">120
</span><span class="lnt">121
</span><span class="lnt">122
</span><span class="lnt">123
</span><span class="lnt">124
</span><span class="lnt">125
</span><span class="lnt">126
</span><span class="lnt">127
</span><span class="lnt">128
</span><span class="lnt">129
</span><span class="lnt">130
</span><span class="lnt">131
</span><span class="lnt">132
</span><span class="lnt">133
</span><span class="lnt">134
</span><span class="lnt">135
</span><span class="lnt">136
</span><span class="lnt">137
</span><span class="lnt">138
</span><span class="lnt">139
</span><span class="lnt">140
</span><span class="lnt">141
</span><span class="lnt">142
</span><span class="lnt">143
</span><span class="lnt">144
</span><span class="lnt">145
</span><span class="lnt">146
</span><span class="lnt">147
</span><span class="lnt">148
</span><span class="lnt">149
</span><span class="lnt">150
</span><span class="lnt">151
</span><span class="lnt">152
</span><span class="lnt">153
</span><span class="lnt">154
</span><span class="lnt">155
</span><span class="lnt">156
</span><span class="lnt">157
</span><span class="lnt">158
</span><span class="lnt">159
</span><span class="lnt">160
</span><span class="lnt">161
</span><span class="lnt">162
</span><span class="lnt">163
</span><span class="lnt">164
</span><span class="lnt">165
</span><span class="lnt">166
</span><span class="lnt">167
</span><span class="lnt">168
</span><span class="lnt">169
</span><span class="lnt">170
</span><span class="lnt">171
</span><span class="lnt">172
</span><span class="lnt">173
</span><span class="lnt">174
</span><span class="lnt">175
</span><span class="lnt">176
</span><span class="lnt">177
</span><span class="lnt">178
</span><span class="lnt">179
</span><span class="lnt">180
</span><span class="lnt">181
</span><span class="lnt">182
</span><span class="lnt">183
</span><span class="lnt">184
</span><span class="lnt">185
</span><span class="lnt">186
</span><span class="lnt">187
</span><span class="lnt">188
</span><span class="lnt">189
</span><span class="lnt">190
</span><span class="lnt">191
</span><span class="lnt">192
</span><span class="lnt">193
</span><span class="lnt">194
</span><span class="lnt">195
</span><span class="lnt">196
</span><span class="lnt">197
</span><span class="lnt">198
</span><span class="lnt">199
</span><span class="lnt">200
</span><span class="lnt">201
</span><span class="lnt">202
</span><span class="lnt">203
</span><span class="lnt">204
</span><span class="lnt">205
</span><span class="lnt">206
</span><span class="lnt">207
</span><span class="lnt">208
</span><span class="lnt">209
</span><span class="lnt">210
</span><span class="lnt">211
</span><span class="lnt">212
</span><span class="lnt">213
</span><span class="lnt">214
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/etc/containers/
</span></span><span class="line"><span class="cl">mkdir -p /data/podman/var/lib/containers/
</span></span><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/storage.conf <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s"># This file is is the configuration file for all tools
</span></span></span><span class="line"><span class="cl"><span class="s"># that use the containers/storage library. The storage.conf file
</span></span></span><span class="line"><span class="cl"><span class="s"># overrides all other storage.conf files. Container engines using the
</span></span></span><span class="line"><span class="cl"><span class="s"># container/storage library do not inherit fields from other storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s"># files.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#  Note: The storage.conf file overrides other storage.conf files based on this precedence:
</span></span></span><span class="line"><span class="cl"><span class="s">#      /usr/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">#      /etc/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">#      $HOME/.config/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">#      $XDG_CONFIG_HOME/containers/storage.conf (If XDG_CONFIG_HOME is set)
</span></span></span><span class="line"><span class="cl"><span class="s"># See man 5 containers-storage.conf for more information
</span></span></span><span class="line"><span class="cl"><span class="s"># The &#34;container storage&#34; table contains all of the server options.
</span></span></span><span class="line"><span class="cl"><span class="s">[storage]
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Default Storage Driver, Must be set for proper operation.
</span></span></span><span class="line"><span class="cl"><span class="s">driver = &#34;vfs&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Temporary storage location
</span></span></span><span class="line"><span class="cl"><span class="s">runroot = &#34;/run/containers/storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Primary Read/Write location of container storage
</span></span></span><span class="line"><span class="cl"><span class="s"># When changing the graphroot location on an SELINUX system, you must
</span></span></span><span class="line"><span class="cl"><span class="s"># ensure  the labeling matches the default locations labels with the
</span></span></span><span class="line"><span class="cl"><span class="s"># following commands:
</span></span></span><span class="line"><span class="cl"><span class="s"># semanage fcontext -a -e /var/lib/containers/storage /NEWSTORAGEPATH
</span></span></span><span class="line"><span class="cl"><span class="s"># restorecon -R -v /NEWSTORAGEPATH
</span></span></span><span class="line"><span class="cl"><span class="s">graphroot = &#34;/var/lib/containers/storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Storage path for rootless users
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># rootless_storage_path = &#34;$HOME/.local/share/containers/storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">[storage.options]
</span></span></span><span class="line"><span class="cl"><span class="s"># Storage options to be passed to underlying storage drivers
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># AdditionalImageStores is used to pass paths to additional Read/Only image stores
</span></span></span><span class="line"><span class="cl"><span class="s"># Must be comma separated list.
</span></span></span><span class="line"><span class="cl"><span class="s">additionalimagestores = [
</span></span></span><span class="line"><span class="cl"><span class="s">]
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Remap-UIDs/GIDs is the mapping from UIDs/GIDs as they should appear inside of
</span></span></span><span class="line"><span class="cl"><span class="s"># a container, to the UIDs/GIDs as they should appear outside of the container,
</span></span></span><span class="line"><span class="cl"><span class="s"># and the length of the range of UIDs/GIDs.  Additional mapped sets can be
</span></span></span><span class="line"><span class="cl"><span class="s"># listed and will be heeded by libraries, but there are limits to the number of
</span></span></span><span class="line"><span class="cl"><span class="s"># mappings which the kernel will allow when you later attempt to run a
</span></span></span><span class="line"><span class="cl"><span class="s"># container.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-uids = 0:1668442479:65536
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-gids = 0:1668442479:65536
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Remap-User/Group is a user name which can be used to look up one or more UID/GID
</span></span></span><span class="line"><span class="cl"><span class="s"># ranges in the /etc/subuid or /etc/subgid file.  Mappings are set up starting
</span></span></span><span class="line"><span class="cl"><span class="s"># with an in-container ID of 0 and then a host-level ID taken from the lowest
</span></span></span><span class="line"><span class="cl"><span class="s"># range that matches the specified name, and using the length of that range.
</span></span></span><span class="line"><span class="cl"><span class="s"># Additional ranges are then assigned, using the ranges which specify the
</span></span></span><span class="line"><span class="cl"><span class="s"># lowest host-level IDs first, to the lowest not-yet-mapped in-container ID,
</span></span></span><span class="line"><span class="cl"><span class="s"># until all of the entries have been used for maps.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-user = &#34;containers&#34;
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-group = &#34;containers&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Root-auto-userns-user is a user name which can be used to look up one or more UID/GID
</span></span></span><span class="line"><span class="cl"><span class="s"># ranges in the /etc/subuid and /etc/subgid file.  These ranges will be partitioned
</span></span></span><span class="line"><span class="cl"><span class="s"># to containers configured to create automatically a user namespace.  Containers
</span></span></span><span class="line"><span class="cl"><span class="s"># configured to automatically create a user namespace can still overlap with containers
</span></span></span><span class="line"><span class="cl"><span class="s"># having an explicit mapping set.
</span></span></span><span class="line"><span class="cl"><span class="s"># This setting is ignored when running as rootless.
</span></span></span><span class="line"><span class="cl"><span class="s"># root-auto-userns-user = &#34;storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># Auto-userns-min-size is the minimum size for a user namespace created automatically.
</span></span></span><span class="line"><span class="cl"><span class="s"># auto-userns-min-size=1024
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># Auto-userns-max-size is the minimum size for a user namespace created automatically.
</span></span></span><span class="line"><span class="cl"><span class="s"># auto-userns-max-size=65536
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">[storage.options.overlay]
</span></span></span><span class="line"><span class="cl"><span class="s"># ignore_chown_errors can be set to allow a non privileged user running with
</span></span></span><span class="line"><span class="cl"><span class="s"># a single UID within a user namespace to run containers. The user can pull
</span></span></span><span class="line"><span class="cl"><span class="s"># and use any image even those with multiple uids.  Note multiple UIDs will be
</span></span></span><span class="line"><span class="cl"><span class="s"># squashed down to the default uid in the container.  These images will have no
</span></span></span><span class="line"><span class="cl"><span class="s"># separation between the users in the container. Only supported for the overlay
</span></span></span><span class="line"><span class="cl"><span class="s"># and vfs drivers.
</span></span></span><span class="line"><span class="cl"><span class="s">#ignore_chown_errors = &#34;false&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Inodes is used to set a maximum inodes of the container image.
</span></span></span><span class="line"><span class="cl"><span class="s"># inodes = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Path to an helper program to use for mounting the file system instead of mounting it
</span></span></span><span class="line"><span class="cl"><span class="s"># directly.
</span></span></span><span class="line"><span class="cl"><span class="s">#mount_program = &#34;/usr/bin/fuse-overlayfs&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># mountopt specifies comma separated list of extra mount options
</span></span></span><span class="line"><span class="cl"><span class="s">mountopt = &#34;nodev&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Set to skip a PRIVATE bind mount on the storage home directory.
</span></span></span><span class="line"><span class="cl"><span class="s"># skip_mount_home = &#34;false&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Size is used to set a maximum size of the container image.
</span></span></span><span class="line"><span class="cl"><span class="s"># size = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># ForceMask specifies the permissions mask that is used for new files and
</span></span></span><span class="line"><span class="cl"><span class="s"># directories.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># The values &#34;shared&#34; and &#34;private&#34; are accepted.
</span></span></span><span class="line"><span class="cl"><span class="s"># Octal permission masks are also accepted.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;&#34;: No value specified.
</span></span></span><span class="line"><span class="cl"><span class="s">#     All files/directories, get set with the permissions identified within the
</span></span></span><span class="line"><span class="cl"><span class="s">#     image.
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;private&#34;: it is equivalent to 0700.
</span></span></span><span class="line"><span class="cl"><span class="s">#     All files/directories get set with 0700 permissions.  The owner has rwx
</span></span></span><span class="line"><span class="cl"><span class="s">#     access to the files. No other users on the system can access the files.
</span></span></span><span class="line"><span class="cl"><span class="s">#     This setting could be used with networked based homedirs.
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;shared&#34;: it is equivalent to 0755.
</span></span></span><span class="line"><span class="cl"><span class="s">#     The owner has rwx access to the files and everyone else can read, access
</span></span></span><span class="line"><span class="cl"><span class="s">#     and execute them. This setting is useful for sharing containers storage
</span></span></span><span class="line"><span class="cl"><span class="s">#     with other users.  For instance have a storage owned by root but shared
</span></span></span><span class="line"><span class="cl"><span class="s">#     to rootless users as an additional store.
</span></span></span><span class="line"><span class="cl"><span class="s">#     NOTE:  All files within the image are made readable and executable by any
</span></span></span><span class="line"><span class="cl"><span class="s">#     user on the system. Even /etc/shadow within your image is now readable by
</span></span></span><span class="line"><span class="cl"><span class="s">#     any user.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#   OCTAL: Users can experiment with other OCTAL Permissions.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#  Note: The force_mask Flag is an experimental feature, it could change in the
</span></span></span><span class="line"><span class="cl"><span class="s">#  future.  When &#34;force_mask&#34; is set the original permission mask is stored in
</span></span></span><span class="line"><span class="cl"><span class="s">#  the &#34;user.containers.override_stat&#34; xattr and the &#34;mount_program&#34; option must
</span></span></span><span class="line"><span class="cl"><span class="s">#  be specified. Mount programs like &#34;/usr/bin/fuse-overlayfs&#34; present the
</span></span></span><span class="line"><span class="cl"><span class="s">#  extended attribute permissions to processes within containers rather then the
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;force_mask&#34;  permissions.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># force_mask = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">[storage.options.thinpool]
</span></span></span><span class="line"><span class="cl"><span class="s"># Storage Options for thinpool
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_percent determines the amount by which pool needs to be
</span></span></span><span class="line"><span class="cl"><span class="s"># grown. This is specified in terms of % of pool size. So a value of 20 means
</span></span></span><span class="line"><span class="cl"><span class="s"># that when threshold is hit, pool will be grown by 20% of existing
</span></span></span><span class="line"><span class="cl"><span class="s"># pool size.
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_percent = &#34;20&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_threshold determines the pool extension threshold in terms
</span></span></span><span class="line"><span class="cl"><span class="s"># of percentage of pool size. For example, if threshold is 60, that means when
</span></span></span><span class="line"><span class="cl"><span class="s"># pool is 60% full, threshold has been hit.
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_threshold = &#34;80&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># basesize specifies the size to use when creating the base device, which
</span></span></span><span class="line"><span class="cl"><span class="s"># limits the size of images and containers.
</span></span></span><span class="line"><span class="cl"><span class="s"># basesize = &#34;10G&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># blocksize specifies a custom blocksize to use for the thin pool.
</span></span></span><span class="line"><span class="cl"><span class="s"># blocksize=&#34;64k&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device specifies a custom block storage device to use for the
</span></span></span><span class="line"><span class="cl"><span class="s"># thin pool. Required if you setup devicemapper.
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device_force wipes device even if device already has a filesystem.
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device_force = &#34;True&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># fs specifies the filesystem type to use for the base device.
</span></span></span><span class="line"><span class="cl"><span class="s"># fs=&#34;xfs&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># log_level sets the log level of devicemapper.
</span></span></span><span class="line"><span class="cl"><span class="s"># 0: LogLevelSuppress 0 (Default)
</span></span></span><span class="line"><span class="cl"><span class="s"># 2: LogLevelFatal
</span></span></span><span class="line"><span class="cl"><span class="s"># 3: LogLevelErr
</span></span></span><span class="line"><span class="cl"><span class="s"># 4: LogLevelWarn
</span></span></span><span class="line"><span class="cl"><span class="s"># 5: LogLevelNotice
</span></span></span><span class="line"><span class="cl"><span class="s"># 6: LogLevelInfo
</span></span></span><span class="line"><span class="cl"><span class="s"># 7: LogLevelDebug
</span></span></span><span class="line"><span class="cl"><span class="s"># log_level = &#34;7&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># min_free_space specifies the min free space percent in a thin pool require for
</span></span></span><span class="line"><span class="cl"><span class="s"># new device creation to succeed. Valid values are from 0% - 99%.
</span></span></span><span class="line"><span class="cl"><span class="s"># Value 0% disables
</span></span></span><span class="line"><span class="cl"><span class="s"># min_free_space = &#34;10%&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># mkfsarg specifies extra mkfs arguments to be used when creating the base
</span></span></span><span class="line"><span class="cl"><span class="s"># device.
</span></span></span><span class="line"><span class="cl"><span class="s"># mkfsarg = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># metadata_size is used to set the &#39;pvcreate --metadatasize&#39; options when
</span></span></span><span class="line"><span class="cl"><span class="s"># creating thin devices. Default is 128k
</span></span></span><span class="line"><span class="cl"><span class="s"># metadata_size = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Size is used to set a maximum size of the container image.
</span></span></span><span class="line"><span class="cl"><span class="s"># size = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_removal marks devicemapper block device for deferred removal.
</span></span></span><span class="line"><span class="cl"><span class="s"># If the thinpool is in use when the driver attempts to remove it, the driver
</span></span></span><span class="line"><span class="cl"><span class="s"># tells the kernel to remove it as soon as possible. Note this does not free
</span></span></span><span class="line"><span class="cl"><span class="s"># up the disk space, use deferred deletion to fully remove the thinpool.
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_removal = &#34;True&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_deletion marks thinpool device for deferred deletion.
</span></span></span><span class="line"><span class="cl"><span class="s"># If the device is busy when the driver attempts to delete it, the driver
</span></span></span><span class="line"><span class="cl"><span class="s"># will attempt to delete device every 30 seconds until successful.
</span></span></span><span class="line"><span class="cl"><span class="s"># If the program using the driver exits, the driver will continue attempting
</span></span></span><span class="line"><span class="cl"><span class="s"># to cleanup the next time the driver is used. Deferred deletion permanently
</span></span></span><span class="line"><span class="cl"><span class="s"># deletes the device and all data stored in device will be lost.
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_deletion = &#34;True&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># xfs_nospace_max_retries specifies the maximum number of retries XFS should
</span></span></span><span class="line"><span class="cl"><span class="s"># attempt to complete IO when ENOSPC (no space) error is returned by
</span></span></span><span class="line"><span class="cl"><span class="s"># underlying storage device.
</span></span></span><span class="line"><span class="cl"><span class="s"># xfs_nospace_max_retries = &#34;0&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="max-logsize-config">Max logsize Config</h3>
<p>Setzt ein Limit für Container logs (analog zu <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/tree/main/container-common"
    title="container-common" 
     target="_blank" rel="nofollow noopener noreferrer" >
  container-common&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> für Unifi Geräte mit podman). 104857600 Bytes = 100 Megabytes</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/libpod.conf <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">max_log_size = 104857600
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="boot-script">Boot Script</h3>
<p>Dieses Script stellt sicher dass podman beim Start des UDR vollständig aufgebaut wird. Daher werden alle binaries aus dem persistenten Verzeichnis gelinked.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat &gt; /data/on_boot.d/07-podman.sh <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /usr/share/containers
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /usr/libexec/podman
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /etc/containers
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /etc/containers/registries.conf.d
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /data/podman/var/lib/containers/
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/share/containers/seccomp.json /usr/share/containers/seccomp.json
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/libexec/podman/conmon /usr/libexec/podman/conmon
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/bin/runc /usr/bin/runc
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/bin/podman /usr/bin/podman
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/containers.conf /etc/containers/containers.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/policy.json /etc/containers/policy.json
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/storage.conf /etc/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/libpod.conf /etc/containers/libpod.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/registries.conf.d/dockerio.conf /etc/containers/registries.conf.d/dockerio.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/var/lib/containers/ /var/lib/containers
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span><span class="line"><span class="cl">chmod a+x /data/on_boot.d/07-podman.sh
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="quellen">Quellen</h2>
<ul>
<li><link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/issues/273#issuecomment-982135782#issuecomment-982135782"
    title="Kommentar in Issue #263 der unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Kommentar in Issue #263 der unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/issues/321#issuecomment-1034079344#issuecomment-1034079344"
    title="Kommentar in Issue #321 der unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Kommentar in Issue #321 der unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/issues/321#issuecomment-1098460030#issuecomment-1098460030"
    title="Kommentar in Issue #321 der unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Kommentar in Issue #321 der unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
