Кафедра ИСиТ УО ВГТУ
  • Специальности
    • Экономика электронного бизнеса
    • Информационные системы
    • Information Control Systems
  • Каталог
  • Сайт кафедры
  • Сервисы
    • GitLab
    • ownCloud
    • JupyterHub
    • JupyterHub 2
    • VNC
    • Soft
  1. ИСиТ
  2. Системное программирование
  3. Практика
  4. Лаб. работа “Работа с виртуальной машиной Linux”
  • ИСиТ
    • АОС
      • Теория
        • Введение в операционные системы
        • Управление памятью
        • Управление процессами
        • Система ввода-вывода
        • Информационная безопасность
        • Виртуализация
      • Практика
    • РВПсИПП
      • Теория
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
        • Основы Laravel
        • Шаблоны в Laravel
        • Модели и базы данных в Laravel
        • Формы и валидация в Laravel
        • Аутентификация и авторизация в Laravel
        • Создание REST API в Laravel
        • Работа с файлами и изображениями в Laravel
        • Тестирование и отладка в Laravel
        • Введение в фреймворк Symfony
        • Маршруты и контроллеры в Symfony
        • Шаблоны и Twig в Symfony
        • Формы и валидация в Symfony
        • Доступ к базам данных в Symfony
        • Аутентификация и авторизация в Symfony
        • Сервисы и зависимости в Symfony
        • Создание REST API в Symfony
        • Работа с файлами и медиа в Symfony
        • Сравнение и выбор фреймворка
        • Развертывание веб-приложения
      • Практика
        • Лаб. работа 1 “Создание нового приложения Laravel”
        • Лаб. работа 2 “Добавление главной страницы и базовых маршрутов”
        • Лаб. работа 3 “Создание моделей, миграций и сидеров”
        • Лаб. работа 4 “Создание индексных страниц и пагинация”
        • Лаб. работа 5 “Создание форм для работы с сущностями”
        • Лаб. работа 6 “Работа с файлами (эмуляция S3-хранилища)”
        • Лаб. работа “Создание маршрутов в Laravel”
        • Лаб. работа “Работа с базами данных в Laravel”
        • Лаб. работа “Работа с формами в Laravel”
        • Лаб. работа “Аутентификация и авторизация в Laravel”
        • Лаб. работа “Работа с файлами в Laravel”
        • Лаб. работа “Тестирование и оптимизация в Laravel”
        • Лаб. работа “Создание REST API в Laravel”
        • Лаб. работа “Основы Symfony”
        • Лаб. работа “Шаблоны и представления в Symfony”
        • Лаб. работа “Работа с базами данных в Symfony”
        • Лаб. работа “Фомы и аутентификация в Symfony”
        • Лаб. работа “Сервисы и зависимости в Symfony”
        • Лаб. работа “REST API в Symfony”
        • Лаб. работа “Работа с медиа контентом в Symfony”
        • Лаб. работа “Создание и развертывание проекта”
    • ПСП
      • Теория
        • Введение
        • Протокол HTTP
        • Программирование с использованием сокетов
        • Введение в PHP
        • Работа с базами данных в PHP
        • Объектно-ориентированные возможности PHP
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб. работа “Массивы в PHP”
        • Лаб. работа “Создание веб-приложений с использованием Slim”
    • Компьютерные сети
      • Теория
        • Введение в компьютерные сети
        • Топологии сетей
        • Кодирование и мультиплексирование
        • Стеки протоколов
        • Адресация в компьютерных сетях
        • Система доменных имен (DNS)
        • Программирование с использованием сокетов
        • Введение в PHP
        • Протокол HTTP
        • Введение в компьютерные сети
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб работа “Массивы в PHP”
    • РиОИИС
      • Теория
        • Классификация оптимизационных задач
        • Генетические алгоритмы
        • Системы массового обслуживания
        • Теория игр
        • Машинное обучение
        • Глубокое обучение (Deep learning)
        • Основы функционального программирования
        • Основы программирования на Haskell
        • Введение в логическое программирование
        • Инференция и рассуждения в логическом программировании
        • Разработка экспертных систем
        • Интеллектуальные системы и их архитектура
        • Веб-скрэйпинг
        • Сбор данных с открытых API
      • Практика
        • JupyterHub
        • Лаб. работа “Методы одномерной оптимизации”
        • Лаб. работа “Методы многомерной оптимизации”
        • Лаб. работа “Функции в Python”
        • Лаб. работа “Рекурсия в Python”
        • Лаб. работа “Итераторы в Python”
        • Лаб. работа “Генетические алгоритмы”
        • Лаб. работа “Haskell”
        • Лаб. работа “Логическое программирование”
        • Лаб. работа “Сбор данных с помощью веб-скрейпинга”
    • КСКР
      • Практика
        • Лаб. работа “Одномерные и двумерные массивы в C#”
        • Лаб. работа “Обращение матриц в C#”
    • Системное программирование
      • Теория
        • Управление памятью в Windows
        • Файловые операции в Windows
        • Управление процессами в Windows
        • Графический интерфейс Windows
        • ОС Unix
      • Практика
        • Лаб. работа “Работа с динамической памятью в Windows”
        • Лаб. работа “Операции с файлами в Windows”
        • Лаб. работа “Управление процессами в Windows”
        • Лаб. работа “Работа с виртуальной машиной Linux”
        • Лаб. работа “Язык командного энтерпритатора Shell”
        • Лаб. работа “Работа с файлами в Linux”
        • Лаб. работа “Работа с процессами в Linux”

Содержание

  • Цель лабораторной работы
  • Ход лабораторной работы
    • Вход в систему
    • Основное окно
    • Клонирование шаблона
    • Запуск контейнера
    • Работа в виртуальной машине
  1. ИСиТ
  2. Системное программирование
  3. Практика
  4. Лаб. работа “Работа с виртуальной машиной Linux”

Лаб. работа “Работа с виртуальной машиной Linux”

Системное программирование
Практика
Автор

Бизюк Андрей

Дата публикации

5 апреля 2024 г.

Цель лабораторной работы

Изучить основы работы с виртуальными машинами и контейнерами в среде Proxmox Virtual Environment.

Ход лабораторной работы

Вход в систему

Для начала работы с PVE нужно перейти по ссылке: Proxmox VE (Ссылка доступна только из локальной сети университета).

Рисунок 1: Окно входа в систему
  • В окне входа можно переключить язык интерфейса на Русский. (дальнейшее описание будет использовать названия параметров на русском языке).

  • Для входа в систему нужно выбрать в выпадающем списке “сфера” значение “vstu”.

  • Имя пользователя и пароль соответствуют данным для входа в сеть университета (логин и пароль которые вы используете в компьютерных классах).

Основное окно

После успешного входа в систему отобразится следующий интерфейс:

Рисунок 2: Интерфейс основного окна приложения
  • В левой части окна (1) отображается список серверов (в данном случае один сервер, work-pve) и пулов (IS-21). Пулы - это совокупности различных ресурсов, облегчающие распределение прав доступа к ним.

  • Каждый сервер содержит хранилища данных, виртуальные сети, шаблоны виртуальных машин и контейнеров и сами виртуальные машины и контейнеры.

  • В центральной части окна (2) отображаются различные разделы параметров того элемента, который выбран в данный момент в левой части (1).

  • В части (3) отображаются параметры из того раздела, который выбран в (2).

  • Под номером (4) указано меню управления виртуальной машиной или контейнером.

Клонирование шаблона

Для создания собственной виртуальной машины для выполнения лабораторных работ, необходимо клонировать один из имеющихся шаблонов.

Кликнув по шаблону “debian12-xfce-template” в левой части окна, можно получить информацию о нем и клонировать его через появившееся меню “Дополнительно”.

Рисунок 3: Выбор шаблона

После нажатия пункта “Клонировать” появится следующее окно:

Рисунок 4: Окно параметров клонирования контейнера

В окне параметров кнонирования необходимо указать следующие параметры:

  • Пул ресурсов: обычно соответствуем названию вашей группы

  • Режим: обязательно выбираем режим “Связанная копия”

  • Имя хоста: имя будущей виртуальной машины или контейнера, должно содержать название группы и вашу фамилию латинскими буквами.

После указания всех параметров, нажимаем кнопку “Клонировать”.

Запуск контейнера

Рисунок 5: Запуск контейнера

После успешного клонирования шаблона, можно запустить контейнер. Для этого нужно выбрать свой контейнер в списке контейнеров (1). В меню (2) можно изменить параметры контейнера. Для запуска контейнера нужно нажать кнопку “Запуск” (3).

После запуска сменится иконка возле контейнера

Работа в виртуальной машине

Работать в виртуальной машине можно несколькими способами:

  • Используя доступ к командной оболочке машины через PVE

  • Используя удаленный доступ к командной оболочке по протоколу SSH

  • Используя удаленный доступ к графическому рабочему столу по протоколу RDP

Для первого входа в систему нужно использовать следующие учетные данные:

  • Имя пользователя: user

  • Пароль: user

После входа в систему имя пользователя и пароль можно будет изменить.

Доступ к командной оболочке машины через PVE

Рисунок 6: Доступ к консоли контейнера

Для доступа к командной оболочке машины можно нажать кнопку “Консоль” в меню виртуальной машины или контейнера (1) либо выбрать пункт “Консоль” в меню (2). Более предпочтителен первый вариант, так как в таком случае консоль откроется в новом окне.

Рисунок 7: Окно консоли

Удаленный доступ к командной оболочке по протоколу SSH

Для удаленного доступа к контейнеру требуется знать IP адрес контейнера во внутренней сети Proxmox. К сожалению, на данный момент, в веб-интерфейсе не реализовано отображение динамического IP адреса для контейнера. Для определения IP адреса контейнера, нужно войти в систему через командную оболочку через веб-интерфейс.

После входа в систему, для определения IP адреса контейнера нужно выполнить следующую команду:

ip a | grep inet

Вывод команды будет подобен следующему:

user@is-21-ivanov:~$ ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host noprefixroute 
    inet 192.168.9.201/24 brd 192.168.9.255 scope global dynamic eth0
    inet6 fe80::be24:11ff:fe02:7684/64 scope link 
user@is-21-ivanov:~$

В выводе команды содержится список IP адресов нашего контейнера. Нас интересует IP адрес протокола IPv4 внешнего интерфейса системы. В данном примере это 192.168.9.201. Для нас важна последняя часть адреса - 201, запомним ее.

Для подключения к нашему контейнеру по протоколу SSH с Windows машины, нам требуется клиентское приложение ssh. На Windows 10 и выше это приложение уже установлено в систему. Для более старых версий ОС нужно использовать какое-либо стороннее приложение, например PuTTY или Bitwise SSH client.

Установка Bitwise SSH Client без прав администратора

Для установки Bitwise SSH Client через официальный установщик требуются права администратора. Если у вас нет прав администратора на компьютере, то вы можете скачать архив по ссылке, распаковать его и запустить приложение BwSsh.exe из этого архива.

Порядок подключения:

  1. Открыть окно консоли

    • Пуск - Выполнить - powershell
    • Либо: Пуск - Выполнить - cmd
  2. Выполнить команду

    ssh user@192.168.1.55 -p 22201

    Где user это имя пользователя в контейнере (если вы его не переименовали), 22201 это номер порта, который вычисляется по формуле 22000 + последняя_часть_IP_адреса, которую мы запомнили ранее.

  3. При первом подключении необходимо подтвердить аутентичность хоста, введя yes

  4. Ввести пароль пользователя.

    При вводе пароля символы не будут отображаться на экране!

    При правильном вводе пароля мы получим удаленный доступ к командной оболочке системы нашей виртуальной машины (контейнера)

Удаленный доступ к графическому рабочему столу по протоколу RDP

Для удаленного доступа к графическому рабочему столу виртуальной машины из Windows, нужно открыть приложение “Подключение к удаленному рабочему столу” из меню “Пуск”, либо выполнить команду mstsc в меню Пуск - выполнить

Рисунок 8: Интерфейс программы подключения к удаленному рабочему столу

Заполним параметры:

  • Компьютер: 192.168.1.55:33201

  • Пользователь: user

  • Разрешить мне сохранять учетные данные: да

Порт (33201) нужно скорректировать в соответствии с адресом своей виртуальной машины по формуле 33000 + последняя_часть_IP_адреса, как описано в предыдущем пункте.

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

Рисунок 9: Заполнение параметров

ОС может задать вопрос о доверии удаленному подключению, на который нужно ответить утвердительно:

Рисунок 10: Подтверждение доверия
Рисунок 11: Подтверждение подлинности

После успешного входа мы увидим рабочий стол виртуальной машины

Рисунок 12: Удаленный рабочий стол виртуальной машины
Наверх
Лаб. работа “Управление процессами в Windows”
Лаб. работа “Язык командного энтерпритатора Shell”