Управление проектом на удаленном сервере Flashcards

1
Q

Сервер

A

это компьютер, предназначенный для непрерывного выполнения определённых задач.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

SSH (англ. Secure SHell — «безопасная оболочка»)

A

это сетевой протокол для зашифрованного соединения между двумя компьютерами. По этому протоколу можно безопасно передавать данные или выполнять команды на удалённом компьютере так, как если бы терминал запускался непосредственно на нём.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

SSH-клиент

A

это программа, которая умеет устанавливать соединение с серверами по протоколу SSH.
В Windows встроенного SSH-клиента нет, но он включён в пакет установки Git Bash.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

ssh username@server_address

A

Команда для подключения к серверу

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Аутентификация с помощью ключей происходит так:

A
  • сервер отправляет компьютеру зашифрованное через открытый ключ сообщение;
  • компьютер расшифровывает его через закрытый ключ.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

выведите SSH-ключ в консоль командой:

A

cat ~/.ssh/id_rsa.pub

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как сгенерировать SSH-ключ?

A
  • Отройте терминал или Git Bash и выполните команду ssh-keygen.
    Консоль попросит ввести путь к файлу, в который будут сохранены сгенерированные ключи.
    Enter file in which to save the key (/home/ваш_пользователь/.ssh/id_rsa):
  • При создании ключей система попросит придумать пароль для доступа к ключам.
    Enter passphrase (empty for no passphrase):
  • Создайте пароль и запомните его — это дополнительная мера безопасности на тот случай, если ваш приватный ключ (например, вместе с компьютером) попадёт не в те руки.
  • Выведите SSH-ключ в консоль командой cat ~/.ssh/id_rsa.pub.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

pwd (англ. print working directory — «вывести рабочий каталог»)

A

На экран будет выведен полный путь до текущей директории.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Команда ls (англ. list — «список»)

A

выведет на экран список всех файлов и папок той директории, в которой вы находитесь.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

-p

A

это ключ, который нужен, чтобы указать номер порта для подключения. После ключа написано значение

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Для чего предназначены эти ключи?
-R
-r

A
  • рекурсивно отобразит содержимое поддиректорий
  • отсортирует директории и файлы в обратном порядке
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Команда touch

A

создаёт один или несколько файлов сразу.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Команда mkdir

A

Создать директорию

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Команда rm (англ. remove— «удалить»)

A

служит для удаления одного или нескольких файлов и/или директорий.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Команда cp (англ. copy — «копировать»)

A

дублирует выбранный каталог или файл. После команды через пробел указывают:
* Адрес и имя файла, который будет копирован.
* Адрес, куда будет копирован файл и, если необходимо, новое имя копии.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Команда mv

A

перемещает папку или файл (от англ. move — «переместить»). Она работает по такой же логике, что и команда cp

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

команда nano

A

Для просмотра и редактирования файлов есть консольные текстовые редакторы. Один из самых популярных — nano. Чтобы открыть файл в таком редакторе, используется команда nano, а после неё пишется название нужного файла или путь к нему:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

apt update

A

обновление списка доступных пакетов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

apt install имя пакета

A

автоматическое скачивание и установка запрошенного пакета.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

apt upgrade имя пакета

A

обновление пакета.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

apt remove имя пакета

A

удаление пакета из системы.

22
Q

sudo apt upgrade -y

A

Ключ -y, даёт команду отвечать на все вопросы системы положительно — yes.

23
Q

sudo apt install python3-pip python3-venv git -y

A

На сервер этой командой можно установить:
* менеджер пакетов pip;
* утилиту для создания виртуального окружения venv;
* систему контроля версий git, чтобы клонировать ваш проект.

24
Q

python3 -m venv venv
. venv/bin/activate

A

Установка виртуального окружения под Линукс
Запуск виртуального окружения под Линукс

25
Q

установите пакеты из requirements.txt

A

python -m pip install -r requirements.txt

26
Q

WSGI (англ. Web-Server Gateway Interface)

A

стандарт взаимодействия Python-фреймворка и веб-сервера.
Чтобы веб-сервер nginx и Django-проект начали понимать друг друга, Django нужно запускать на WSGI-сервере. Например WSGI-сервер Gunicorn.

27
Q

Ставим Gunicorn

A

pip install gunicorn
gunicorn –bind 0.0.0.0:8000 yatube.wsgi

28
Q

Порт

A

Порт — это механизм маршрутизации пакетов данных, способ передать запрос тому приложению, которому он предназначен.
Номера портов для серверных приложений можно изменить, но традиционно веб-приложения работают на порте 80 (протокол HTTP, без шифрования) и 443 (протокол HTTPS, шифрованное соединение), FTP — на 21 порте, SSH — на 22. Свои стандартные порты есть и для других популярных серверных приложений.

29
Q

Какой файерволл стоит в Ubuntu по умолчанию

A

ufw

30
Q

Что такое файервол

A

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

31
Q

SSL

A

расшифровывается как Secure Socket Layer (англ. «уровень защищённых сокетов»). Сокет — это соединение между клиентом и сервером.

32
Q

SSL-сертификат

A

это уникальный цифровой ключ, он выдаётся Центрами сертификации (Certificate Authority или CA).

33
Q

sudo -u postgres psql

A

т имени пользователя postgres вызовите утилиту psql, это программа-клиент для подключения и управления СУБД Postgres

34
Q

psycopg2-binary

A

драйвер для работы с postgres

35
Q

Docker

A

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

36
Q

Из чего создается контейнер

A

Контейнер создаётся из образа.

37
Q

Образ (англ. image) — …

A

…это шаблон, который содержит всё необходимое для автономной работы контейнера: в образ может быть упакована операционная система, сервер, интерпретатор языка (в нашем случае — Python), виртуальное окружение проекта, файлы приложения.

38
Q

Контейнер (англ. container) — …

A

…это окружение, которое создаётся из образа, как из шаблона. Из одного образа можно создать сколько угодно контейнеров.

39
Q

Что делает команда - docker run имя-образа

A

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

40
Q

Что делает команда docker stop ID-контейнера

A

все процессы в контейнере останавливаются, но он сохраняется в системе и его можно запустить вновь, обратившись к нему по ID: нет необходимости заново выполнять run для образа. Для окончательного удаления контейнера есть команда docker rm ID-контейнера.

41
Q

Dockerfile

A

это файл с инструкциями для создания образа. В докерфайле разработчик описывает, что должно быть включено в образ: какая операционная система, какой интерпретатор языка, где взять пакеты для приложения.

42
Q

Команды Dockerfile

A

FROM - Она определяет базовый образ, на основе которого создаётся ваш локальный образ:
RUN - Выполняет команды внутри контейнера так, как если бы эти команды выполнялись в терминале.
COPY - Копирует файлы и директории из указанной локальной директории в директорию контейнера:
WORKDIR - Задаёт в образе директорию, из которой будут выполняться все команды, следующие за этой инструкцией.
CMD - Запускает что-нибудь, например bash-скрипт или сервер для приложения, при старте контейнера.
LABEL - Она задаёт служебную информацию об образе.
ENV - Инструкция ENV задаёт переменные окружения в контейнере:

43
Q

Сборка образа

A

Из той же директории где находится Докефайл
docker build -t имя_образа .
build — команда сборки образа по инструкциям из Dockerfile.
-t имя_образа — ключ, который позволяет задать имя образу, а потом и само имя.
. — точка в конце команды — путь до Dockerfile, на основе которого производится сборка..

44
Q

Менеджер образов docker image

A

docker image ls какие образы есть на вашем компьютере.
docker image rm IMAGE_ID удаление

45
Q

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

A

docker run --name <имя контейнера> -it -p 8000:8000 имя_образа
run — команда запуска нового контейнера.
--name my_project — ключ, который позволяет задать имя контейнеру, и само имя.
-it — комбинация этих ключей даёт возможность передавать в контейнер команды из вашего терминала.
-p 8000:8000 — указывает публичный порт контейнера. Левая часть — внешний порт контейнера, правая — порт, на который будет перенаправлен запрос.
имя_образа — образ, из которого будет запущен контейнер.

46
Q

Volume

A

Принцип работы volume можно сравнить с картой памяти, «флешкой». На флешку с компьютера можно слить какие-то данные, и если затем компьютер будет выключен или даже уничтожен, — данные останутся на флешке. То же и с volume: контейнер сохраняет данные в volume, и они остаются в сохранности вне зависимости от состояния контейнера.

47
Q

docker-compose.yaml

A

Инструкции по развёртыванию проекта в нескольких контейнерах пишут в файле docker-compose.yaml.

48
Q

DevOps (Development Operations)

A

это методика увеличения скорости, качества и безопасности разработки. Понятие DevOps определяет и техническую, и организационную стороны процесса разработки

49
Q

Continuous Integration (англ. «непрерывная интеграция», сокращенно CI)

A

Идея состоит в том, чтобы после внесения изменений в любую часть кода проводилось тестирование не только того модуля, который был изменён, но и всего проекта. Если команда внесла в код десять изменений за день — значит, за день будет проведено десять сборок и тестов проекта.

50
Q

GitHub Actions

A

это облачный сервис, инструмент для автоматизации процессов тестирования и деплоя ваших проектов. Он служит тестовой площадкой, на которой можно запускать и тестировать проекты в изолированном окружении.

51
Q

Подключение репозитория к GitHub Actions

A

Для подключения GitHub Actions необходимо создать директорию .github/workflows, а в ней — yml-файл.