Установка qemu-kvm и настройка локальной виртуальной сети 3

Установка и настройка программ в Debian

Установка qemu-kvm и настройка локальной виртуальной сети 3

Сообщение nezabudka » 07 май 2015, 21:04

До конца быть может дочитают разве что единицы но мы все же поставим заключительную
точку в этой саге. Это последняя часть трилогии, первая находится здесь вторая здесь
В них описана установка qemu-kvm настройка моста объединившего все виртуалки в одну локальную
сеть, где мы превратили целевую машину в маршрутизатор и открыли выход в глобальную сеть всех
виртуальных точек. Теперь просто обустроим все и добавим некоторого удобства в работе.
Обычно я запускаю виртуалки на разных рабочих столах это создает эффект удаленности и
перемещаю файлы при помощи инструмента
Код: выделить все
scp ./document one@linux:/home/nezabudka/

Теперь к делу. Мы собирались оптимизировать работу нашего скрипта запускающего виртуальные
машины. Сразу бросается в глаза неудобство связанное со вводом пароля при запуске скрипта.
Это связано с тем что саму машину мы должны запускать от имени пользователя, а именованный канал
создаем от рута. Я работаю на домашнем компьютере так что могу себе позволить отключить ввод
пароля для нужных мне команд. Но я наверное обязана для начала предупредить что это серьезная
дыра в безопасности системы и повторять это или нет в первую очередь зависит от основной цели использования станции. По крайней мере нужно всегда помнить на будущее что мы добавили
некоторые команды в безпарольный запуск. Теперь сделаем это
Код: выделить все
vim /etc/sudoers

Добавим следующую строчку в секцию# User privilege specification
Код: выделить все
nezabudka   ALL=NOPASSWD:/sbin/ifconfig,/usr/sbin/tunctl,/sbin/brctl

Теперь при вызове команды с префиксом sudo ifconfig пароль вводить нам больше не потребуется.
Переходим к следующей проблемме. Она сводилась к тому что сеть в нашей машине нельзя
рестартнуть ибо собьются все настройки, а правильный кейс следующий - "остановить и
по новой запустить саму виртуалку но уже не создавая именованного канала".
Как учила баба Шура, во первах составим алгоритм нового скрипта
1.Создаем преключатель
а)Запускаем машину в режиме по умолчанию
б)Запускаем машину в режиме перезагрузки когда уже созданы именованные каналы
За работу преключателя назначаем ответственным параметр "reboot"
Сперва выстроим работоспособный скелет

Код: выделить все
if [[ "$1" == "reboot" ]]; then
   echo "Запускаем машину без создания именованного канала"
else
   sudo echo "Запускаем машину по дефолту с cозданием канала"
fi
exit 0

Теперь мы можем пользоваться параметром "reboot" или заменить его например на "-r"
Но можем прикрутить сюда и псевдо графический интерфейс который нам любезно
предоставляет тулза whiptail. Cмотрим че за зверь.
Код: выделить все
dpkg -s whiptail
apt-cache show whiptail

А дословный перевод нам говорит что перед нами сам Хлыстохвост. С его помощью мы можем сделать простой переключатель.
Код: выделить все
#!/usr/bin/env bash
if (whiptail --yesno "Режимы запуска ВМ" --yes-button "Start" --no-button "Reboot" --title "Тестируем байду от незабудки" 10 70) then
   toilet --gay "Привет"
else
   toilet --metal "Пока"
fi
exit 0

Можете скопировать, добавить права на запуск и поиграться, если конечно у вас установлены
две утилиты, обязательная whiptail и не обязательная toilet которую вы можете заменить
комндой echo. Но вот зачем нам взрослым людям гуй и тем более псевдо гуй? Мы все им наигрались
при устаноке системы. Оставим его на новый год лампочки переключать. А выбор режима запуска
мы можем с легкостью перепоручить самой программе. Лишние телодвижения это не линукс вэй.
Алгоритм работы программы будет слудующим.
Запускаем скрипт, программа проверяет доступен ли интерфейс tap0. Если доступен, запускаем
одну группу команд, если нет другую. Добавим в наш скрипт следующую конструкцию
Код: выделить все
if (sudo ifconfig | grep -o tap0) then
   "Строка запуска машины без создания канала"
else
   "Строки создания канала и запуска машины"   
fi
exit 0

И более того предлагаю вообще оторвать запуск скрипта от терминала.
Заходим в "параметры" выбираем "клавиатура" преходим на вкладку "комбинации клавиш",
добавляем название и команду (путь до нашего скрипта) и привяжем это действие к
комбинации Alt+Ctrl+1, а из скрипта уберем значек выполнения в фоне. Есть смысл повесить
запуск других машин на Alt+Ctrl+2... Помимо удаления значка амперсанда, отвечающего за
запуск программы в фоне, нам нужно обязательно прописать в скрипте sh все абсолютные пути
используемых файлов и программы. Наш скрипт в конечном итоге приобретет следующий вид
Код: выделить все
#!/usr/bin/env bash
macaddress=$(printf 'DE:AD:BE:EF:%02X:%02X\n' $((RANDOM%256)) $((RANDOM%256)))
if (sudo ifconfig | grep -o tap0) then #доверим программе выбирать режимы запуска
   /usr/bin/kvm -hda /home/nezabudka/kvm/Deb1.img -cdrom /home/gnom/kvm/debian.iso -net nic,model=e1000,macaddr=${macaddress},vlan=0 -net tap,vlan=0,ifname=tap0,script=no
else
   sudo  tunctl -b -u gnom
   sudo ifconfig tap0 up
   sudo brctl addif br0 tap0
   /usr/bin/kvm -hda /home/nezabudka/kvm/Deb1.img -cdrom /home/gnom/kvm/debian.iso -net nic,model=e1000,macaddr=${macaddress},vlan=0 -net tap,vlan=0,ifname=tap0,script=no
fi
exit 0

Ну и на последок для любителей мышек создадим ярлык запуска нашего скрипта на
рабочем столе. У нас есть очень интересный каталог. В нем находятся ярлыки
установленных в системе программ. Если мы зайдем туда и воспользуемся для просмотра
редактором vim или утилитой cat | more
то мы можем просмотреть их содержимое для ознакомления, а через наутилус с помощью мыши
позапускать их. По их подобию можно создать аналогичный ярлык. Попробуем.
К стати сказать я пользуюсь оболочкой gnome-shell так что делайте поправки на свое окружение.
Код: выделить все
cd desktop
vim script.desktop

Скопируем туда ниже приведенный текст
Код: выделить все
[Desktop Entry]
Name=KVM_1
Comment=Скрипт запуска виртуальной машины
GenericName=Эмулятор процессора
Keywords=эмулятор;виртуалка;машина
Exec=/home/nezabudka/kvm/1vm.sh
Terminal=false
Type=Application
Icon=/usr/share/pixmaps/faces/dice.jpg
Categories=qemu-kvm;kvm;qemu
StartupNotify=false

Сохраняемся и выходим. Картинку естественно можно поменять через свойства в контекстном
меню. И конечно же не забываем добавить права на выполнение
Код: выделить все
chmod 755 script.desktop

Теперь нам остается помнить что в скрипте мы убрали занчек запуска в фоне и по сему скрипт
запущенный из терминала обязательно захватит весь терминал. Если вы работаете только в эмуляторе консоли и вы противник использования хот кеев верните амперсанд на место.
В следующих постах мы начнем то ради чего настраивали этого спрута, начнем создавать соединения, тестировать сетевые утилиты и инструменты, настраивать службы, а так же работать над безопасностью
системы, но это уже будут отдельные истории.
Последний раз редактировалось nezabudka 12 май 2015, 18:58, всего редактировалось 4 раз(а).
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 607
Фото: 179
Стаж: 2 года 3 месяца 3 дня
Откуда: Ростов на Дону
Благодарил (а): 282 раз.
Поблагодарили: 141 раз.

Установка qemu-kvm и настройка локальной виртуальной сети 3

Спонсор

Спонсор
 

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение Oleg65 » 07 май 2015, 22:58

Цитата:
Теперь при вызове команды с префиксом sudo ifconfig пароль вводить нам больше не потребуется
ИМХО, это плохо: лень враг безопасности! Хотя, если только на время установки...
Цитата:
а правильный кейс
А правда, почему без case? Короче и быстрее... Да и вообще, меня смущает масса sudo в сценариях, почему не сделать запуск сценариев от root, а не вносить изменения в sudoers? Может ошибаюсь, все воедино посмотреть бы (имею ввиду код, все, что делаем по пунктам) :roll: Может проще написать сценарий на полную установку? :?
Аватар пользователя
Oleg65
Местный говорун
Местный говорун
 
Сообщений: 724
Стаж: 2 года 6 месяцев 3 дня
Откуда: г.Коломна Моск.обл.
Благодарил (а): 50 раз.
Поблагодарили: 161 раз.

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение nezabudka » 08 май 2015, 06:35

Oleg65 писал(а):

меня смущает масса sudo в сценариях, почему не сделать запуск сценариев от root, а не вносить изменения в sudoers?

Потому что саму машину нужно запускать от имени пользователя, я это отмечала в статье.
Иначе придется делать два скрипта и запускать от рута и пользователя по отдельности.
Остальные вопросы я не совсем поняла. "Правильный кейс" я имела ввиду правильный
порядок.
Последний раз редактировалось nezabudka 08 май 2015, 17:14, всего редактировалось 2 раз(а).
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 607
Фото: 179
Стаж: 2 года 3 месяца 3 дня
Откуда: Ростов на Дону
Благодарил (а): 282 раз.
Поблагодарили: 141 раз.

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение Sunderland93 » 08 май 2015, 06:39

Почему у тебя даже echo от рута выводится? Чёто дыр многовато.
Sunderland93
 
Стаж: 47 лет 6 месяцев 20 дней

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение nezabudka » 08 май 2015, 06:42

Sunderland93 писал(а):

Почему у тебя даже echo от рута выводится? Чёто дыр многовато.

Это же муляж. А не конечная программа. Это я имитировала команды с запуском через sudo.
Впрочем здесь ты прав, в одной строчке я уберу sudo, а во второй оставлю для наглядности.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 607
Фото: 179
Стаж: 2 года 3 месяца 3 дня
Откуда: Ростов на Дону
Благодарил (а): 282 раз.
Поблагодарили: 141 раз.

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение Sunderland93 » 08 май 2015, 06:43

[мелкая придирка]gnome-shell - не окружение[/мелкая придирка] Вот это смутило
Цитата:
Но вот зачем нам взрослым людям гуй и тем более псевдо гуй?
Вот взрослые люди как раз и пользуются гуем тогда, когда время и удобство важнее. А школьники будут хвастаться какие они хацкеры. Сколько раз уже замечал такое. Консоль крутая вещь, но в каждую щель её пихать не стоит.
Sunderland93
 
Стаж: 47 лет 6 месяцев 20 дней

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение nezabudka » 08 май 2015, 06:47

Sunderland93 писал(а):

[мелкая придирка]gnome-shell - не окружение

Спасибо за замечание. Приду с работы, поработаю над текстом.
Sunderland93 писал(а):

Вот взрослые люди как раз и пользуются гуем тогда, когда время и удобство важнее. А школьники будут хвастаться какие они хацкеры. Сколько раз уже замечал такое. Консоль крутая вещь, но в каждую щель её пихать не стоит.

На счет взрослых людей я пошутила, я совсем не чувствую себя взрослой.
Эта статья просто выход увлеченного человека а не профессионала. Мне не важно
время. Мне был важен мой интерес и он меня провел вот по этой кривой.
А на счет шуток, без них жизнь была бы пресной. Впредь прошу не отностся к моим
строчкам слишком серьезно, пропустите капельку шутки в свою жизнь.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 607
Фото: 179
Стаж: 2 года 3 месяца 3 дня
Откуда: Ростов на Дону
Благодарил (а): 282 раз.
Поблагодарили: 141 раз.

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение Шпак Дмитрий » 08 май 2015, 21:06

Sunderland93 писал(а):

[мелкая придирка]gnome-shell - не окружение[/мелкая придирка] Вот это смутило
Цитата:
Но вот зачем нам взрослым людям гуй и тем более псевдо гуй?
Вот взрослые люди как раз и пользуются гуем тогда, когда время и удобство важнее. А школьники будут хвастаться какие они хацкеры. Сколько раз уже замечал такое. Консоль крутая вещь, но в каждую щель её пихать не стоит.

Она идёт совершенно правильной дорогой, разбирается в самой сути проблем, а не юзает сразу гуй. Из админов уже на работу некого брать, все только мышкой привыкли тыкать, или враемворками пользоваться, а чуть проблема и надо ручками покопаться, уже ни кто не может.
Шпак Дмитрий
Местный говорун
Местный говорун
 
Сообщений: 586
Стаж: 2 года 6 месяцев 2 дня
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение Sunderland93 » 08 май 2015, 22:08

Я и не говорю что везде гуй нужен.
Sunderland93
 
Стаж: 47 лет 6 месяцев 20 дней

Re: Установка qemu-kvm и настройка локальной виртуальной сет

Сообщение ALEXX » 08 май 2015, 22:11

Шпак Дмитрий писал(а):

Из админов уже на работу некого брать, все только мышкой привыкли тыкать, или враемворками пользоваться, а чуть проблема и надо ручками покопаться, уже ни кто не может.

Нужно готовить кадры, а не искать их со стороны. Набери группу "Мышкарей", посади за терминал и учи. Так и только так кадровиков можно набрать, а не искать на "большой дороге".
Умом Россию не понять, Аршином общим не измерить.
У ней особенная стать — В Россию можно только верить.
Федор Иванович Тютчев
Аватар пользователя
ALEXX
Администратор
Администратор
 
Сообщений: 1102
Фото: 32
Стаж: 2 года 7 месяцев
Откуда: Королёв
Благодарил (а): 321 раз.
Поблагодарили: 181 раз.

След.

Вернуться в Установка программ

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1