<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">5 июня 2015 г., 10:28 пользователь Денис Смирнов <span dir="ltr">&lt;<a href="mailto:mithraen@freesource.info" target="_blank">mithraen@freesource.info</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">On Wed, Jun 03, 2015 at 11:48:35PM +0300, Alexey Shabalin wrote:<br>
<br>
&gt; Вот тебе mini-howto. Развёрнут простейший вариант.<br>
<br>
</span>Спасибо! Работает!<br>
<span class=""><br>
&gt; - внутри контейнера нужен /etc/os-release<br>
<br>
</span>Как именно он используется?<br>
<span class=""><br></span></blockquote><div>Он служит для определения полноценности ОС. nspawn можно запускать без параметра --boot, и тогда наличие этого файла не проверяется. А если напускаешь с --boot, то запускается полноценный init, вместо shell, и типа этот файл показывает наличие полноценной ОС.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
&gt; - добавьте внутри контейнера в /etc/securetty<br>
&gt; pts/0<br>
&gt; pts/1<br>
&gt; pts/2<br>
&gt; pts/3<br>
<br>
</span>Это нужно только для machinectl login?<br>
<span class=""><br></span></blockquote><div>да. Поэтому и в /etc/fstab нужно убрать упоминания о /dev/pts, systemd лучше знает как что должно быть смонтировано внутри контейнера.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
&gt; - просмотр логов контейнера<br>
&gt; journalctl -M systemd-guest1<br>
<br>
</span>Кстати, в zsh для опции -M у journalctl autocomplete не работает :(<br>
<span class=""><br></span></blockquote><div>возможно в новом релизе пофиксили, я видел коммиты для zsh. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
&gt; Нужно иметь ввиду, что machinectl enable|start это просто надстройка над<br>
&gt; /lib/systemd/system/systemd-nspawn@.service, в котором происходит запуск<br>
&gt; /usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest<br>
&gt; --network-veth --machine=%I<br>
<br>
</span>А откуда при этом берутся MAC-адреса для veth?<br>
<br></blockquote><div>генерируются как </div><div>-------</div><div>       r = generate_mac(&amp;mac_container, CONTAINER_HASH_KEY, 0);</div><div>        if (r &lt; 0)</div><div>                return log_error_errno(r, &quot;Failed to generate predictable MAC address for container side: %m&quot;);</div><div><br></div><div>        r = generate_mac(&amp;mac_host, HOST_HASH_KEY, 0);</div><div>        if (r &lt; 0)</div><div>                return log_error_errno(r, &quot;Failed to generate predictable MAC address for host side: %m&quot;);</div><div>---------</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Как вообще в такой конструкции авторами предполагалось настраивать сеть --<br>
раздавать адреса по dhcpd, а далее роутинг и DNAT на HN?<br>
<span class="im"><br></span></blockquote><div>В systemd-networkd есть не только dhcp-клиент, но и dhcp-сервер, как раз предназначенный в первую очередь для обеспечения нужд виртуализации. Так же nat и роутинг можно определять в сетевых юнит-файлах .network</div><div>смотри man systemd.network</div><div>[Network]<br></div><div>DHCP=<br></div><div>DHCPServer=<br></div><div>IPForward=<br></div><div>IPMasquerade=<br></div><div>[Route]<br></div><div>Gateway=<br></div><div>Destination=<br></div><div>Source=<br></div><div>Scope=<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="im">
&gt; Если нужен другой тип сети (смотрите man systemd-nspawn), дополнительные<br>
&gt; опции (например --bind=, --bind-ro=), то надо этот unit-файл скопировать в<br>
&gt; /etc/systemd/system под нужным именем и поправить по потребностям, и дальше<br>
&gt; включать|выключать как отдельные сервис.<br>
&gt; Я писал в рассылку systemd-devel запрос на возможность конфигурирования<br>
&gt; этих параметров при старте, Ленар ответил что планирует добавить это в<br>
&gt; будущем.<br></span></blockquote></div><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Alexey Shabalin<br><br><br><br></div>
</div></div>