Это задание для самостоятельной отработки навыков и не предполагает обратной связи от преподавателя. Его выполнение не влияет на завершение модуля. Но мы рекомендуем его выполнить, чтобы закрепить полученные знания. Все вопросы, возникающие в процессе выполнения заданий, пишите в учебный чат или в раздел "Вопросы по заданиям" в личном кабинете.
Перед началом работы над заданием изучите Инструкцию по экономии облачных ресурсов. Перед отправкой работы на проверку удаляйте неиспользуемые ресурсы. Это нужно, чтобы не расходовать средства, полученные в результате использования промокода. Подробные рекомендации здесь.
- Научиться создвать виртуальные машины в Virtualbox с помощью Vagrant.
- Научиться базовому использованию packer в yandex cloud.
Установите на личный Linux-компьютер или учебную локальную ВМ с Linux следующие сервисы(желательно ОС ubuntu 20.04):
- VirtualBox,
- Vagrant, рекомендуем версию 2.3.4
- Packer версии 1.9.х + плагин от Яндекс Облако по инструкции
- уandex cloud cli Так же инициализируйте профиль с помощью
yc init
.
Примечание: Облачная ВМ с Linux в данной задаче не подойдёт из-за ограничений облачного провайдера. У вас просто не установится virtualbox.
- Убедитесь, что у вас есть ssh ключ в ОС или создайте его с помощью команды
ssh-keygen -t ed25519
- Создайте виртуальную машину Virtualbox с помощью Vagrant и Vagrantfile в директории src.
- Зайдите внутрь ВМ и убедитесь, что Docker установлен с помощью команды:
docker version && docker compose version
- Если Vagrant выдаёт ошибку (блокировка трафика):
URL: ["https://vagrantcloud.com/bento/ubuntu-20.04"]
Error: The requested URL returned error: 404:
Выполните следующие действия:
- Скачайте с сайта файл-образ "bento/ubuntu-20.04".
- Добавьте его в список образов Vagrant: "vagrant box add bento/ubuntu-20.04 <путь к файлу>".
Важно:
-
Если ваша хостовая рабочая станция - это windows ОС, то у вас могут возникнуть проблемы со вложенной виртуализацией. Ознакомиться со cпособами решения можно по ссылке.
-
Если вы устанавливали hyper-v или docker desktop, то все равно может возникать ошибка:
Stderr: VBoxManage: error: AMD-V VT-X is not available (VERR_SVM_NO_SVM)
Попробуйте в этом случае выполнить в Windows от администратора командуbcdedit /set hypervisorlaunchtype off
и перезагрузиться. -
Если ваша рабочая станция в меру различных факторов не может запустить вложенную виртуализацию - допускается неполное выполнение(до ошибки запуска ВМ)
- Отредактируйте файл mydebian.json.pkr.hcl или mydebian.jsonl в директории src (packer умеет и в json, и в hcl форматы):
- добавьте в скрипт установку docker. Возьмите скрипт установки для debian из документации к docker,
- дополнительно установите в данном образе htop и tmux.(не забудьте про ключ автоматического подтверждения установки для apt)
- Найдите свой образ в web консоли yandex_cloud
- Необязательное задание(*): найдите в документации yandex cloud как найти свой образ с помощью утилиты командной строки "yc cli".
- Создайте новую ВМ (минимальные параметры) в облаке, используя данный образ.
- Подключитесь по ssh и убедитесь в наличии установленного docker.
- Удалите ВМ и образ.
- ВНИМАНИЕ! Никогда не выкладываете oauth token от облака в git-репозиторий! Утечка секретного токена может привести к финансовым потерям. После выполнения задания обязательно удалите секретные данные из файла mydebian.json и mydebian.json.pkr.hcl. (замените содержимое токена на "ххххх")
- В качестве ответа на задание загрузите результирующий файл в ваш ЛК.