Что: 98cf1f1dcab8867f44edd527ccad93c1e6b77a27
Когда: 2020-03-12 15:42:38+03:00
Темы: bsd systemd tip
Автоматическое создание интерфейса для jail, в жопу systemd Есть у меня jail для которого я создаю полноценный сетевой стек (vnet). Относительно редко запускаю его и поэтому не парился с автоматизацией создания сетевого интерфейса. Появился у меня недавно ещё один jail из этой же серии, тоже с vnet-ом. В jail.conf вот такое: [...] vnet = new; vnet.interface = epair0b; [...] Засада в том, что тут название интерфейса намертво вбито. Мне надо или создавать заранее все эти epair интерфейсы или не иметь возможности запускать эти jail-ы параллельно. Задача то проста само собой. Создал скриптик который будет создавать epair интерфейс (это штука у которой не просто epairX появляется, а epairXa и epairXb, и один из этих интерфейсов отдаётся полностью в jail) с человекочитаемым названием: # cat net-jail-epair.sh #!/bin/sh -ex name=$1 ifconfig epaira_$name && exit || : epair=$(ifconfig epair create) ifconfig $epair name epaira_$name ifconfig ${epair%a}b name epairb_$name ifconfig epaira_$name up а в jail.conf теперь настройка сети выглядит вот так: [...] vnet.interface = epairb_unsafe; exec.prestart += "/root/net-jail-epair.sh unsafe"; exec.poststop += "ifconfig epaira_unsafe destroy"; [...] Несколько строк на shell и задача вполне себе решена. Сразу вспомнил мир systemd где это бы обязательно написали на C, добавив сотник строк кода для такого use-case.
Сгенерирован: SGBlog 0.34.0