contest_stage2
contest_stage2
contest_stage2 Задание второго этапа конкурса Запуск проекта
- Сборка контейнеров с использованием docker-compose Вы уже настроили файлы Docker для каждого компонента системы. Следующий шаг — убедиться, что все контейнеры корректно строятся и запускаются с помощью Docker Compose.
- Проверьте наличие Makefile: Убедитесь, что файл Makefile находится в корне проекта (contest_stage2). bash Копировать код ls
- Проверьте синтаксис Makefile: В файле Makefile должны быть команды для сборки, запуска и тестирования. Пример: makefile Копировать код .PHONY: build up test
build: docker-compose -f docker/docker-compose.yml build
up: docker-compose -f docker/docker-compose.yml up
test: pytest tests/ 3. Соберите проект: Используйте команду make build для сборки всех сервисов. bash Копировать код make build 4. Запустите проект: Запустите проект с помощью команды make up. bash Копировать код make up 5. Проверьте работоспособность контейнеров: Для проверки статуса контейнеров используйте: bash Копировать код docker-compose ps Пример документации: markdown Копировать код
Описание проекта
Этот проект реализует следующие компоненты:
- Файловая система в памяти (с использованием FUSE)
- Виртуальный терминал с поддержкой SSH
- Система контроля версий для конфигурационных файлов
- Система автоматического бэкапа
Запуск проекта
1. Сборка контейнеров:
Для сборки контейнеров используйте команду:
make build2. Запуск контейнеров: контейнер пробрасывается через 2222 порт. Тость у нас запущен сначала сервер. Все файлы собрали активировали, а уже после активируем сервер ssh. Но для начала нужно будет приостановить другой процесс на 2222 порту. После делааем успешный вход и работаем с файлами. Для запуска проекта выполните:bashКопировать кодmake up
sereg@DESKTOP-OC6SA2U MINGW64 ~/OneDrive/Рабочий стол/test_unpack/contest_stage2$ docker start ssh-containerssh-container
sereg@DESKTOP-OC6SA2U MINGW64 ~/OneDrive/Рабочий стол/test_unpack/contest_stage2$ ssh -p 2222 user@localhostThe authenticity of host '[localhost]:2222 ([::1]:2222)' can't be established.ED25519 key fingerprint is SHA256:Y3q+6HDoWpSl5qJ8HPYAVagvVR8GSE7/PQHFevmpxO8.This key is not known by any other names.Are you sure you want to continue connecting (yes/no/[fingerprint])? yesWarning: Permanently added '[localhost]:2222' (ED25519) to the list of known hosts.user@localhost's password:paPermission denied, please try again.user@localhost's password:Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro
This system has been minimized by removing packages and content that arenot required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.Last login: Sun Nov 17 10:12:30 2024 from 172.17.0.1$
Контейнеры будут запущены, и вы сможете подключиться к SSH через:bashКопировать кодssh -p 2222 user@localhost
3. Тестирование:Для выполнения тестов проекта используйте команду:bashКопировать кодmake testПример работы:1. Запустите SSH-сервер:Копировать кодpython ssh_server.py2. Подключитесь к серверу через SSH:cssКопировать кодssh -p 2222 user@localhost3. Введите команды:o mkdir testdir — создаст директорию.o touch testfile — создаст файл.o ls — выведет список файлов.o cat testfile — выведет содержимое файла (если файл пуст, то просто ничего не покажет).o rm testfile — удалит файл.Пример работы:1. Запустите сервер:Копировать кодpython ssh_server.py2. Подключитесь через SSH:cssКопировать кодssh -p 2222 user@localhost3. Пример ввода команд:shellКопировать код$ mkdir newdirDirectory newdir created successfully.
$ lsnewdir
$ cd newdirChanged directory to newdir
$ echo "Hello, world!" > hello.txtOutput redirected to hello.txt
$ lshello.txt
$ cat hello.txtHello, world!
$ echo "This is a test" | tee testfile.txtThis is a testТеперь ваша система поддерживает базовые команды оболочки, обработку ошибок, перенаправления вывода и конвейеры!Для выполнения задания, связанного с виртуальным терминалом SSH, системой контроля версий (VCS) и автоматическим бэкапом, давайте пройдем пошагово через все этапы.Шаг 1: Настройка виртуального терминала с SSH1. Настройка SSH-сервера в контейнереВ вашем проекте используется Docker для контейнеризации, и вам нужно настроить SSH-сервер для работы с контейнером.Dockerfile должен содержать установку OpenSSH-сервера и настройку для подключения через SSH. Пример Dockerfile для этой задачи:DockerfileКопировать код# Используем базовый образ UbuntuFROM ubuntu:latest
# Устанавливаем необходимые пакетыRUN apt-get update && apt-get install -y \ openssh-server \ sudo \ curl \ vim \ && rm -rf /var/lib/apt/lists/*
# Создаем директорию для SSHRUN mkdir /var/run/sshd
# Создаем пользователя user и добавляем его в sudo-группуRUN useradd -m user && echo "user:password" | chpasswd && adduser user sudo
# Разрешаем вход по паролю для SSHRUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_configRUN echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
# Открываем порт для SSHEXPOSE 2222
# Стартуем SSH-серверCMD ["/usr/sbin/sshd", "-D"]В данном Dockerfile мы:o Устанавливаем OpenSSH.o Создаем пользователя user с паролем password.o Открываем порт 2222 для SSH.o Разрешаем вход по паролю.2. Сборка и запуск контейнераПосле того, как Dockerfile готов, соберите и запустите контейнер:bashКопировать кодdocker build -t ssh-container .docker run -d -p 2222:22 --name ssh-container ssh-container3. Подключение через SSHПосле того как контейнер запущен, вы можете подключиться к нему через SSH. В вашем случае SSH работает на порту 2222. Подключитесь с помощью команды:bashКопировать кодssh -p 2222 user@localhost
Проверка работы каждого компонента1. Файловая система в памяти (MemoryFS):o Убедитесь, что директория mount создана.o После запуска сервиса memory_fs, перейдите в папку mount:bashКопировать кодcd mounttouch testfileecho "Hello, World!" > testfilecat testfileЕсли файл создался, записался и прочитался, компонент работает.
Описание
contest_stage2 Задание второго этапа конкурса 1. Общее описание задачи В команду системной разработки поступила задача по созданию прототипов систем, которую нужно решить: 1.1. Файловой системы в памяти Максимальное количество баллов за решение - 30 Реализовать виртуальную файловую систему с использованием FUSE (Filesystem in Us