2015-06-26 2 views
2

Я хотел бы автоматизировать процесс настройки виртуальной машины Mininet, SSHing в виртуальную машину, запуск Mininet в VM и инициализацию топологии. Мне нужно, чтобы сеанс оставался открытым, поэтому я могу выдавать команды Mininet с помощью созданной сети. Все работает, включая инициализацию сети, но как только скрипт bash заканчивается, Mininet срывает топологию и выходит из виртуальной машины. Соответствующие части моего кода следующим образом:Инициализация топологии Mininet из сценария bash

vboxmanage startvm "Mininet-VM_1" --type=headless 

ssh -t -Y -l mininet -p 2222 localhost << HERPDERP 

    # Start the network 
    sudo mn --controller=remote,ip=$ip --custom /home/mininet/sf_mininet_vm/mininet/topo_basic.py --topo clos_tree --switch ovsk --link tc 

HERPDERP 

Вещи, которые я пробовал:

  1. Окончание документа здесь с s0 bash;
  2. Окончание с s0 $SHELL;
  3. Снятие ограничителя в конце здесь документ (снято в темноте).

(1) и (2) вышел из Mininet и оставил меня с приглашением на виртуальной машине, но по какой-то причине я не могу выдавать команды от него. (3) ничего не делает.

+0

Не команда mininet 'mn'? –

+0

Да, это команда инициализации сети, но я имел в виду команды в Mininet (например, pingall). Я обнаружил, что инициализация сети лучше всего обрабатывать через API Python, например: topo = SingleSwitchTopo (n = 4) net = Mininet (topo) net.start() CLI (net) # эта строка начнет работу с Mininet CLI и оставить его открытым для принятия команд. – Toni

+0

Хорошо, если у вас есть этот python topo в файле, вы можете запустить topo, просто используя 'sudo -E python ' –

ответ

0

, если у вас есть, что питон Топографические в файле вы можете запустить Топографический только с помощью

sudo -E python <nameofthefile> 

Например, если у вас есть тие в файле Pkt_Topo_with_loop.py, вы могли бы просто использовать sudo -E python Pkt_Topo_with_loop.py для запуска mininet , Таким образом, у вас будет эта строка в вашем скрипте bash для автоматизации.

Смежные вопросы