Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

Строим полигон для виртуальных машин: часть 2

Установка и настройка системы Fedora
Ответить
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Строим полигон для виртуальных машин: часть 2

Сообщение nezabudka »

Первая часть этого дуэта находится здесь
Создадим скрипт подымающий интерфейс tap0 для подключения
единичных виртуальных машин запущенных напрямую через qemu-kvm.
Перед запуском в пятой строчке замените мой логин "nez"
на свой. При следующей загрузке системы интерфейс tap0 пднимется
без участия человека и будет включен как порт в коммутаторе
и виртуалки смогут через него коннектится к виртуальной сети.
Для запуска этого Манускрипта необходимы рут права полученные
через команду sudo
[spoiler]

Код: Выделить всё

#!/usr/bin/env bash
#dnf install tunctl
if [ $(whoami) == root ] && [ $USER != root ]; then
        :
else
        echo "Скрипт запускается через команду sudo"
        exit 1
fi
echo "#!/usr/bin/env bash
ovs-vsctl del-port ovsbr0 tap0
tunctl -pbu $USER
ovs-vsctl add-port ovsbr0 tap0
ifconfig tap0 up" > /usr/sbin/vint

chmod 755 /usr/sbin/vint

echo "@reboot root /usr/sbin/vint" >> /etc/crontab
[/spoiler]
Следующий скрипт запускается от обычного пользователя
[spoiler]

Код: Выделить всё

#!/usr/bin/env bash
#примеры скриптов установки и запуска виртуальных машин
if [ $(whoami) == root ]; then
	echo "Необходим запуск от обычного пользователя"
	exit 1
fi
mkdir -p ~/Projects/{virt-install,qemu-kvm}

cat>~/Projects/virt-install/install_template.sh<<\STOP
#!/usr/bin/env bash
name="devuan"
virt-install \
--virt-type=kvm \
--name $name \
--ram 1024 \
--vcpus=1 \
--os-variant=debian7 \
--hvm \
--cdrom=/var/lib/libvirt/images/devuan_jessie_1.0.0-beta2_amd64_CD.iso \
--network network=default,model=virtio,virtualport_profileid=openvswitch \
--graphics spice \
--disk pool=default,size=8,bus=virtio
STOP
chmod 755 ~/Projects/virt-install/install_template.sh

cat>~/Projects/qemu-kvm/install_template.sh<<\STOP
#!/usr/bin/env bash
/usr/bin/qemu-kvm -m 512 \
-hda /home/nez/Projects/minix3/minix3.img \
-cdrom /home/nez/Projects/minix3/minix_R3.3.0-588a35b.iso \
-localtime -net nic,model=e1000 -net \
tap,vlan=0,ifname=tap0,script=no,downscript=no -boot d &
#После установки заменить на -boot c
STOP
chmod 755 ~/Projects/qemu-kvm/install_template.sh
echo "Готово!"

#Если включен доспуп по acl
#echo "Разрешим пользователю qemu работать с хомяком"
#setfacl -m "u:libvirt-qemu:--x" $HOME # for Debian/Ubuntu
#setfacl -m "u:qemu:--x" $HOME # for CentOS/Fedora

echo "Быстрое разворачивание образов:"
cd ~/Projects
git clone https://github.com/kayrus/deploy-vm.git
cd deploy-vm
sed -ri 's/(\W+--network .*)( \\)/\1,virtualport_profileid=openvswitch\2/' deploy_vms_cluster.sh
#./deploy_vms_cluster.sh -o freebsd -c 11.0
[/spoiler]
Краткое содержание серии:
Cоздадим в директории ~/Projects/ примеры скриптов виртуальных машин.
Один для запуска через virt-install и другой для запуска qemu-kvm
через интерфейс tap0. Это шаблоны которые при необходимости нужно
скопировать, подправить и поместить в отделльную директорию
для установки и последующего запуска.

Я позаимствовала на гитхабе как мне показалось не плохой
скрипт для быстрого развертывания образов и поместила его
в директорию ~/Projects/deploy-vm
Можете пробежаться по телу этого Манускрипта и посмотреть
какие ос доступны. Например что бы установить последнюю
фряху нужно этот скрипт запустить с такими параметрами.

Код: Выделить всё

./deploy-vms_cluster.sh -o freebsd -c 11.0
Скрипт на автомате скачает из интернета специальный образ фряхи
и создаст виртуальную машину. Я немного его изменила что бы
он также на автомате подключал к сети через коммутатор создаваемую
виртуальную машину. После устаноки, повторная команда будет
просто запускать виртуальную машину.
По уму надо бы клнировать было этот скрипт к себе в репозиторий, мало ли
автору захочется коренных перестроек, но ладно я предупредила, это
маловероятно но все же возможно.
Ну вот собственно и все, может только осталось прикрутить контейнеры...
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Ответить

Вернуться в «Установка и обновление системы»