rockon |
|
Темы:
19
Сообщения:
107
Участник с: 30 октября 2015
|
Собственно сабж. На борту имеется виртуальная машина "роутер", которая является шлюзом для хоста и остальных виртуалок. В арче - Network manager мне необходимо прописывать правильный маршрут в инет после запуска "роутера" (через 60 сек ожидания его запуска). Как это правильно сделать? Сейчас я сеть поднимаю руками: #/root/.autostart/vmlan.bash
Я пытаюсь сделать сервис: Но он срабатывает раньше..Подскажите пожалуйста, как это сделать правильно и желательно по феншую? В идеале: оставить надстройку NM сверху, подружить netctl с libvirt и заставить прописываться маршруты после того, как виртуальный "роутер" запустится и поднимет инет. пс все проблемы берут свои корни из проблем с подьемом сети в libvirt в арче с его netctl. У них там какая то адовая несовместимость.. |
indeviral |
|
Темы:
38
Сообщения:
3167
Участник с: 10 августа 2013
|
ничего непонятно... что такое виртуальный роутер??))(т.е. вы в виртуалке запускаете ещё одну систему, чтоб она делала что?? прописывала петлевые маршруты в опережения хоста??) почему это чудо действие которое вы хотите не может сделать хост?? если расклад такой то это проблематично, непонятно когда стартанёт то через что вы там сделали роутер и потом его ещё запустит.
Ошибки в тексте-неповторимый стиль автора©
|
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
интересный способ скрестить таймер и сервис в одном флаконе :) п.с. таймер сервис Сервис определяет время своего запуска после старта системы либо своего перезапуска(например после падения). Таймер запускает сервис(ы) // это отдельный файл. Таймер определяет точное время или период запуска указанного сервиса. |
rockon |
|
Темы:
19
Сообщения:
107
Участник с: 30 октября 2015
|
На виртуалке стоит настроенный микротик с проброшенным физическим сетевым адаптером, на микротике dhcp, впны и прочее. Удобная вещь, вся сеть под рукой, не надо ставить горы софта на хост и править конфу в случае чего. Подобные вещи я всегда выношу на отдельные виртуальные машины, дабы не плодить мусор на хосте. Микротик имеет общую сеть с хостом, маршрут до инета строится: Inet -> mikrotik -> arch При надобности ему добавляются виртуальные сетевые адаптеры для вирт машин. Но это другая история. Задача сделать так, что бы в случае старта виртуальной машины, а так же работоспособности сети на хосте, через 60 секунд запускался скрипт, создающий tap интерфейс и прописывающий маршрут. Хочется сделать это по-человечески(а не писать скрипты в микротике) и наконец поизучать systemd. |
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
rockon Будет проще написать на хосте скрипт запуска виртуальной машины где после запуска машины будет проверяться наличие сети и при её наличии запускаться нужный скрипт через 60 секунд. (виртуалку ведь в ручную запускаете ?) Здесь не та область применения для systemd хотя можно конечно по извращаться и всё же использовать systemd, например, написать таймер который с некоторой периодичностью будет дергать сервис который в совю очередь будет запускать скрипт в котором будет проводится проверка на наличие сети и запущенности виртуалки, и ели ответ положительный то запускать конфигурационный скрипт. п.с. затем можно автоматизировать(если нужно) и запускать сам скрипт запуска виртуальной машины после старта системы(хоста) с помощью systemd. |
rockon |
|
Темы:
19
Сообщения:
107
Участник с: 30 октября 2015
|
redrockon Виртуалка с микротиком запускается автоматом средствами libvirt и к моменту появления рабочего стола уже работает. По поводу таймера - я правильно понял, что рядом с vmlan.service надо положить vmlan.timer с содержанием примерно таким:
|
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
rockonможно не указывать если имена файла сервиса и таймера одинаковы rockonWantedBy=timers.target в [Timer] еще нужно указывать период либо точное время Если вам нужно запустить только один раз после старта системы то таймер не нужен, достаточно одного сервиса |
rockon |
|
Темы:
19
Сообщения:
107
Участник с: 30 октября 2015
|
redВы меня запутали. Если мне надо, что бы прогрузилось после старта системы - я создам .service.rockonможно не указывать если имена файла сервиса и таймера одинаковы Но мне надо, что бы прогрузился виртуальный микротик(60 секунд), а уже потом прописались маршруты. Это должно происходить один раз, после старта системы и таймер должен начать работать с момента, как стартует виртуальная машина (т.е. libvird.service запущен) |
rockon |
|
Темы:
19
Сообщения:
107
Участник с: 30 октября 2015
|
Я сделал таймер, предварительно убрав службу из автозагрузки - результат достигнут. Думаю, можно сказать что проблема решена.Спасибо за наводку про таймеры. |
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
rockonпросто в самом скрипте нужно было поставить задержку в 60секунд (sleep 60) п.с. возможно как-то так:
|