Syntax highlighting of c0f3a80 ~( devops/vagrant)
= Vagrant = <<TableOfContents(2)>> == Refs == [[https://www.vagrantup.com]] [[https://www.vagrantup.com/docs/vagrantfile|Vagrantfile refs|class=" moin-https"]] == Install == Go to [[https://www.vagrantup.com/downloads.html|downdload page|class=" moin-https"]] {{{#!highlight bash sudo apt install virtualbox sudo dpkg -i vagrant_X_Y_Z.deb }}} == Images == [[https://app.vagrantup.com/boxes/search|search|class=" moin-https"]] [[https://app.vagrantup.com/ubuntu|ubuntu all|class=" moin-https"]] [[https://app.vagrantup.com/kalilinux/boxes/rolling|kalilinux/rolling|class=" moin-https"]] | [[https://app.vagrantup.com/kalilinux/boxes/rolling-light|kalilinux/rolling-light|class=" moin-https"]] == plugins == https://github.com/devopsgroup-io/vagrant-hostmanager == Commands == {{{#!highlight bash # --- список образов vagrant box list # --- состояние глабального окружения vagrant global-status # --- состояние vagrant в текущем проекте vagrant status # --- запуск VM # при необходимости скачивается образ системы и создается VM vagrant up # --- остановка окружения # VM переводится в состояние poweroff vagrant halt # --- приостановка окружения # VM "ставится на паузу", занимает доп. пространство HDD vagrant suspend # --- возобновление работы приостановленной VM vagrant resume # --- остановка и удаление VM, образ системы не удаляется vagrant destroy # --- перезапуск VM vagrant reload # --- доступ к окружению vagrant ssh # или ssh -p2222 vagrant@127.0.0.1 # username: vagrant # password: vagrant # --- создание образа для текущего окружения # box-файл создается в текущей директории vagrant package --output my-package-name.box # --- добавление образа в общую директорию # box-файл скопируется в $VAGRANT_HOME/.vagrant.d/boxes/my-shared-package-name.box vagrant box add my-shared-package-name my-package-name.box }}} == Recipes == === HostOnly === Для включения режима сети HostOnly запускаем VirtualBox, далее Файл -> Менеджер сетей хоста -> Создать (если нет). Запоминаем имя сети В Vagrantfile указываем: {{{#!highlight bash config.vm.network "private_network", type: "dhcp", name: "vboxnet0" }}} где vboxname - имя из сети. После загрузки командой смотрим IP, например {{{#!highlight bash hostname -I }}} === ssh vagrant === Конфигурация ssh клиента, при использовании которой можно подключаться через `ssh vagrant` и информация в ''known_hosts'' не заносится. Полезно, при пересоздании ВМ. Используется ключ, сгенерированный при создании машины. {{{ # --- ~/.ssh/config HOST vagrant HostName 127.0.0.1 Port 2222 StrictHostKeyChecking no PasswordAuthentication no UserKnownHostsFile /dev/null IdentitiesOnly yes IdentityFile /home/username/path/to/project/.vagrant/machines/default/virtualbox/private_key LogLevel FATAL User vagrant }}} Альтернативно, можно использовать свой собственный ключ, который копируется в ВМ. Из конфигурации выше необходимо убрать опцию `IdentifyFile` и в Vagrantfile добавить: {{{ ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip config.vm.provision 'shell', inline: "echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys", privileged: false }}} == troubleshooting == === VT-x is not available === Для запуска virtualbox через vagrant требуется включить в биосе "аппаратную виртуализацию". === ERROR: could not insert 'vboxdrv': Operation not permitted === https://crazytechgo.com/modprobe-error-could-not-insert-vboxdrv-operation-not-permitted/#:~:text=The%20issue%20is%20that%20the,vboxdrv'%3A%20Operation%20not%20permitted%20. При установке virtualbox отображается ошибка. Т.к. процесс установки изменен, требуются дополнительные действия, связанные с MOK. Во время установки вводится пароль. После установки необходимо перезагрузить систему и на синем экране выбрать опцию Enroll MOK -> Continue -> Yes -> Password: -> Reboot После перезагрузки проверяем состояние сервиса {{{#!highlight bash sudo systemctl status virtualbox }}}
