Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Установка qemu-kvm и настройка локальной виртуальной сети 3
Установка qemu-kvm и настройка локальной виртуальной сети 3
До конца быть может дочитают разве что единицы но мы все же поставим заключительную
точку в этой саге. Это последняя часть трилогии, первая находится здесь вторая здесь
В них описана установка qemu-kvm настройка моста объединившего все виртуалки в одну локальную
сеть, где мы превратили целевую машину в маршрутизатор и открыли выход в глобальную сеть всех
виртуальных точек. Теперь просто обустроим все и добавим некоторого удобства в работе.
Обычно я запускаю виртуалки на разных рабочих столах это создает эффект удаленности и
перемещаю файлы при помощи инструмента
Теперь к делу. Мы собирались оптимизировать работу нашего скрипта запускающего виртуальные
машины. Сразу бросается в глаза неудобство связанное со вводом пароля при запуске скрипта.
Это связано с тем что саму машину мы должны запускать от имени пользователя, а именованный канал
создаем от рута. Я работаю на домашнем компьютере так что могу себе позволить отключить ввод
пароля для нужных мне команд. Но я наверное обязана для начала предупредить что это серьезная
дыра в безопасности системы и повторять это или нет в первую очередь зависит от основной цели использования станции. По крайней мере нужно всегда помнить на будущее что мы добавили
некоторые команды в безпарольный запуск. Теперь сделаем это
Добавим следующую строчку в секцию# User privilege specification
Теперь при вызове команды с префиксом sudo ifconfig пароль вводить нам больше не потребуется.
Переходим к следующей проблемме. Она сводилась к тому что сеть в нашей машине нельзя
рестартнуть ибо собьются все настройки, а правильный кейс следующий - "остановить и
по новой запустить саму виртуалку но уже не создавая именованного канала".
Как учила баба Шура, во первах составим алгоритм нового скрипта
1.Создаем преключатель
а)Запускаем машину в режиме по умолчанию
б)Запускаем машину в режиме перезагрузки когда уже созданы именованные каналы
За работу преключателя назначаем ответственным параметр "reboot"
Сперва выстроим работоспособный скелет
Теперь мы можем пользоваться параметром "reboot" или заменить его например на "-r"
Но можем прикрутить сюда и псевдо графический интерфейс который нам любезно
предоставляет тулза whiptail. Cмотрим че за зверь.
А дословный перевод нам говорит что перед нами сам Хлыстохвост. С его помощью мы можем сделать простой переключатель.
Можете скопировать, добавить права на запуск и поиграться, если конечно у вас установлены
две утилиты, обязательная whiptail и не обязательная toilet которую вы можете заменить
комндой echo. Но вот зачем нам взрослым людям гуй и тем более псевдо гуй? Мы все им наигрались
при устаноке системы. Оставим его на новый год лампочки переключать. А выбор режима запуска
мы можем с легкостью перепоручить самой программе. Лишние телодвижения это не линукс вэй.
Алгоритм работы программы будет слудующим.
Запускаем скрипт, программа проверяет доступен ли интерфейс tap0. Если доступен, запускаем
одну группу команд, если нет другую. Добавим в наш скрипт следующую конструкцию
И более того предлагаю вообще оторвать запуск скрипта от терминала.
Заходим в "параметры" выбираем "клавиатура" преходим на вкладку "комбинации клавиш",
добавляем название и команду (путь до нашего скрипта) и привяжем это действие к
комбинации Alt+Ctrl+1, а из скрипта уберем значек выполнения в фоне. Есть смысл повесить
запуск других машин на Alt+Ctrl+2... Помимо удаления значка амперсанда, отвечающего за
запуск программы в фоне, нам нужно обязательно прописать в скрипте sh все абсолютные пути
используемых файлов и программы. Наш скрипт в конечном итоге приобретет следующий вид
Ну и на последок для любителей мышек создадим ярлык запуска нашего скрипта на
рабочем столе. У нас есть очень интересный каталог. В нем находятся ярлыки
установленных в системе программ. Если мы зайдем туда и воспользуемся для просмотра
редактором vim или утилитой cat | more
то мы можем просмотреть их содержимое для ознакомления, а через наутилус с помощью мыши
позапускать их. По их подобию можно создать аналогичный ярлык. Попробуем.
К стати сказать я пользуюсь оболочкой gnome-shell так что делайте поправки на свое окружение.
Скопируем туда ниже приведенный текст
Сохраняемся и выходим. Картинку естественно можно поменять через свойства в контекстном
меню. И конечно же не забываем добавить права на выполнение
Теперь нам остается помнить что в скрипте мы убрали занчек запуска в фоне и по сему скрипт
запущенный из терминала обязательно захватит весь терминал. Если вы работаете только в эмуляторе консоли и вы противник использования хот кеев верните амперсанд на место.
В следующих постах мы начнем то ради чего настраивали этого спрута, начнем создавать соединения, тестировать сетевые утилиты и инструменты, настраивать службы, а так же работать над безопасностью
системы, но это уже будут отдельные истории.
точку в этой саге. Это последняя часть трилогии, первая находится здесь вторая здесь
В них описана установка qemu-kvm настройка моста объединившего все виртуалки в одну локальную
сеть, где мы превратили целевую машину в маршрутизатор и открыли выход в глобальную сеть всех
виртуальных точек. Теперь просто обустроим все и добавим некоторого удобства в работе.
Обычно я запускаю виртуалки на разных рабочих столах это создает эффект удаленности и
перемещаю файлы при помощи инструмента
Код: Выделить всё
scp ./document one@linux:/home/nezabudka/
машины. Сразу бросается в глаза неудобство связанное со вводом пароля при запуске скрипта.
Это связано с тем что саму машину мы должны запускать от имени пользователя, а именованный канал
создаем от рута. Я работаю на домашнем компьютере так что могу себе позволить отключить ввод
пароля для нужных мне команд. Но я наверное обязана для начала предупредить что это серьезная
дыра в безопасности системы и повторять это или нет в первую очередь зависит от основной цели использования станции. По крайней мере нужно всегда помнить на будущее что мы добавили
некоторые команды в безпарольный запуск. Теперь сделаем это
Код: Выделить всё
vim /etc/sudoers
Код: Выделить всё
nezabudka ALL=NOPASSWD:/sbin/ifconfig,/usr/sbin/tunctl,/sbin/brctl
Переходим к следующей проблемме. Она сводилась к тому что сеть в нашей машине нельзя
рестартнуть ибо собьются все настройки, а правильный кейс следующий - "остановить и
по новой запустить саму виртуалку но уже не создавая именованного канала".
Как учила баба Шура, во первах составим алгоритм нового скрипта
1.Создаем преключатель
а)Запускаем машину в режиме по умолчанию
б)Запускаем машину в режиме перезагрузки когда уже созданы именованные каналы
За работу преключателя назначаем ответственным параметр "reboot"
Сперва выстроим работоспособный скелет
Код: Выделить всё
if [[ "$1" == "reboot" ]]; then
echo "Запускаем машину без создания именованного канала"
else
sudo echo "Запускаем машину по дефолту с cозданием канала"
fi
exit 0
Но можем прикрутить сюда и псевдо графический интерфейс который нам любезно
предоставляет тулза 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
- Oleg65
- Местный говорун
- Сообщения: 859
- Зарегистрирован: 18 янв 2015, 10:56
- Откуда: г.Коломна Моск.обл.
Re: Установка qemu-kvm и настройка локальной виртуальной сет
ИМХО, это плохо: лень враг безопасности! Хотя, если только на время установки...Теперь при вызове команды с префиксом sudo ifconfig пароль вводить нам больше не потребуется
А правда, почему без case? Короче и быстрее... Да и вообще, меня смущает масса sudo в сценариях, почему не сделать запуск сценариев от root, а не вносить изменения в sudoers? Может ошибаюсь, все воедино посмотреть бы (имею ввиду код, все, что делаем по пунктам) Может проще написать сценарий на полную установку?а правильный кейс
Re: Установка qemu-kvm и настройка локальной виртуальной сет
Потому что саму машину нужно запускать от имени пользователя, я это отмечала в статье.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
Re: Установка qemu-kvm и настройка локальной виртуальной сет
Почему у тебя даже echo от рута выводится? Чёто дыр многовато.
Re: Установка qemu-kvm и настройка локальной виртуальной сет
Это же муляж. А не конечная программа. Это я имитировала команды с запуском через sudo.Sunderland93 писал(а):Почему у тебя даже echo от рута выводится? Чёто дыр многовато.
Впрочем здесь ты прав, в одной строчке я уберу sudo, а во второй оставлю для наглядности.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Re: Установка qemu-kvm и настройка локальной виртуальной сет
[мелкая придирка]gnome-shell - не окружение[/мелкая придирка] Вот это смутило
Вот взрослые люди как раз и пользуются гуем тогда, когда время и удобство важнее. А школьники будут хвастаться какие они хацкеры. Сколько раз уже замечал такое. Консоль крутая вещь, но в каждую щель её пихать не стоит.Но вот зачем нам взрослым людям гуй и тем более псевдо гуй?
Re: Установка qemu-kvm и настройка локальной виртуальной сет
Спасибо за замечание. Приду с работы, поработаю над текстом.Sunderland93 писал(а):[мелкая придирка]gnome-shell - не окружение
На счет взрослых людей я пошутила, я совсем не чувствую себя взрослой.Sunderland93 писал(а):Вот взрослые люди как раз и пользуются гуем тогда, когда время и удобство важнее. А школьники будут хвастаться какие они хацкеры. Сколько раз уже замечал такое. Консоль крутая вещь, но в каждую щель её пихать не стоит.
Эта статья просто выход увлеченного человека а не профессионала. Мне не важно
время. Мне был важен мой интерес и он меня провел вот по этой кривой.
А на счет шуток, без них жизнь была бы пресной. Впредь прошу не отностся к моим
строчкам слишком серьезно, пропустите капельку шутки в свою жизнь.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
-
- Местный говорун
- Сообщения: 579
- Зарегистрирован: 19 янв 2015, 15:56
- Откуда: Russian_federation, какой то
Re: Установка qemu-kvm и настройка локальной виртуальной сет
Она идёт совершенно правильной дорогой, разбирается в самой сути проблем, а не юзает сразу гуй. Из админов уже на работу некого брать, все только мышкой привыкли тыкать, или враемворками пользоваться, а чуть проблема и надо ручками покопаться, уже ни кто не может.Sunderland93 писал(а):[мелкая придирка]gnome-shell - не окружение[/мелкая придирка] Вот это смутилоВот взрослые люди как раз и пользуются гуем тогда, когда время и удобство важнее. А школьники будут хвастаться какие они хацкеры. Сколько раз уже замечал такое. Консоль крутая вещь, но в каждую щель её пихать не стоит.Но вот зачем нам взрослым людям гуй и тем более псевдо гуй?
Re: Установка qemu-kvm и настройка локальной виртуальной сет
Я и не говорю что везде гуй нужен.
- ALEXX
- Администратор
- Сообщения: 1350
- Зарегистрирован: 21 дек 2014, 14:59
- Откуда: Королёв
- Контактная информация:
Re: Установка qemu-kvm и настройка локальной виртуальной сет
Нужно готовить кадры, а не искать их со стороны. Набери группу "Мышкарей", посади за терминал и учи. Так и только так кадровиков можно набрать, а не искать на "большой дороге".Шпак Дмитрий писал(а):Из админов уже на работу некого брать, все только мышкой привыкли тыкать, или враемворками пользоваться, а чуть проблема и надо ручками покопаться, уже ни кто не может.