29

Курс Python-программист 00. Ставим Ubuntu на VMware2

Привет! Я решил запилить свой курс по питону и это видео можно считать нулевым) или подготовкой, в котором мы установим VMware и создадим виртуальную машину на которую накатим Linux! Если у вас уже есть Linux, MacOS или вы не хотите слезать с Windows, то непосредственная работа с Python будет уже в следующем ролике!

Я как-то подумал, нафига я снимаю видео по темам которые уже миллион раз разжёваны и показаны...

А потом я подумал, а почему бы и нет, как говорится "таких видео много, но это МОЁ!" (С) :)

Лига программистов

2.1K постов11.9K подписчика

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Вы смотрите срез комментариев. Показать все
5
Автор поста оценил этот комментарий

А чем не устраивает серверная Ubuntu и подключение к серверу по ssh?

Разворачивается консольная Ubuntu.

Поднимается ssh.

Устанавливаем/обновляем питон.

Ставим: uwsgi

Ставим: NGINX

Ставим flask

Делаем простейшую страницу на flask. Проверяем через порт 5000.

Запускаем uwsgi как службу и входной поток через unix socket.

Запускаем nginx и подключение через unix socket.

К nginx прикручиваем сертификат.

Ставим git. Можем поднять на отдельном сервере Gitlab CE.

Редактируем python через ssh.

Profit.

раскрыть ветку (27)
0
Автор поста оценил этот комментарий

У тебя в комментарии штук 10 терминов, по каждому из которых можно снять отдельное видео и о которых человек который не ITшник ничего не знает и нужно объяснять, а тут нажал одну кнопку и ты на рабочем столе

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
А смысл?
ещё комментарии
Автор поста оценил этот комментарий
Если уж поднимать гитлаб - то там внутри есть вполне неплохая IDE
и в этом случае становится непонятно: зачем на сервер ставить git и редактировать код руками через SSH, если гитлаб предоставляет инструментарий для автоматической сборки кода и доставке его на сервер.
Хоть deb/rpm пакетом, хоть докером, хоть по scp зальёт.
Лично я бы предпочел докер, потому что в этом случае мы не замусорим файловую систему

Иными словами - гитлаб - инструмент следующего шага. Тут чуваки только учатся убунту ставить

И кстати: зачем nginx, если можно фласк или что угодно запустить на любом порту для учебных целей? Разве что rasa вредничает, но начинающим питонистам вряд ли она нужна)

Или ты из тех чуваков, что фронт на реакте в проде запускают через npm run dev?
раскрыть ветку (20)
1
Автор поста оценил этот комментарий

Nginx публикует Флакс на 80/443 порту.

Gitlab CE вместе с Gitlab Runner запускает docker с Ansible, который заливает код и перезапускает службу.

Потому что у меня инфраструктура из двух серверов сервер разработки и прод. На сервере разработки все обкатываю. При корректной работе и тестировании git пушит на Gitlab CE. Gitlab CE запускает Gitlab Runner, который запускает pytest. В случае успешного прохождения теста, Gitlab CE запускает Gitlab Runner с docker Ansible, который заливает файлы и перезапускает uwsgi - чтобы питоновский код перезагрузился в память.

раскрыть ветку (19)
1
Автор поста оценил этот комментарий
Неплохой продуктивный сетап.
Но он не отвечает на вопрос "зачем нужен nginx если для учебных целей uwsgi можно запустить на том же 80 порту?"
раскрыть ветку (18)
0
Автор поста оценил этот комментарий

Nginx более скоростной для доступа к статическим файлам. Такими файлами являются:

- картинки.

- JavaScript файлы.

- css файлы.

Это позволяет связке uwsgi + flask не обслуживать статические файлы.

раскрыть ветку (17)
0
Автор поста оценил этот комментарий
Это конечно верно, но мы говорим о питоне и фласке. Не о джанге.
Какая статика у бэкэнда?

И да, энвой ещё более скоростной. Почему не его?
раскрыть ветку (16)
0
Автор поста оценил этот комментарий

Взял топ: в топе оказалось всего 2 web сервера в мире:

Apache2.

NGINX.

NGINX - быстрая обработка статики.

Я ещё на nginx прикрутил сертификаты.


Все остальные во всем мире не пользуются такой популярностью как эти 2.

Плюс есть постоянные уязвимости в Apache2.

https://6sense.com/tech/web-and-application-servers

раскрыть ветку (15)
0
Автор поста оценил этот комментарий
Однако, CNCF несколько иного мнения насчёт Nginx
https://landscape.cncf.io/card-mode?category=service-proxy&a...

И таки успехов в прикручивания сертификата для localhost

И я все ещё не услышал веской причины делать ЭТО для изучения питона с нуля
раскрыть ветку (14)
0
Автор поста оценил этот комментарий

Только это статистика для прокси серверов.

А у меня обычный сервер и переадресация на uwsgi по unix socket.


Я делал софтину (учился) веб форма для Ansible.

Поэтому flask.

Потом чтобы эта штука пережила перезагрузку сервера - uwsgi (сам по себе сервис и говорят не плохой) и nginx - чтобы работать на привилегированных портах. И не мучиться с дополнительными портами типа 5000.

Потом сертификат прикручивал. Да, к фласку тоже можно прикрутить сертификат.


А плюсов в django я если честно не увидел. Одни минусы, что там все в коробке и отступления от шаблона очень трудно сделать.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Не хочу вас расстраивать, но "переадресация" в вашем случае есть ни что иное, как обратное проксирование.

Если форма представляла собой набор самописных html/css/js файлов - то здесь nginx оправдан, согласен. Но запустить flask на привилегированном порту не так уж сложно. Можно изменить диапазон таких портов, а можно flask запустить от рута

Но в этом посте мы обсуждаем изучение питона, а не архитектурные решения и применение дополнительного софта для реализации полноценного веб приложения

Кроме того: какой бы nginx не был быстрый (а он быстрый и неприхотливый к ресурсам), он все равно упирается в бэкэнд. И не важно: в юникс сокет он проксирует или в tcp порт.
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Разница есть, потому, что часть ресурсов nginx сам отдаёт с диска - т. е. не проксирует, а остальное в unix socket.

С tcp не согласен. Перекладывать в файл не тоже самое, что одному сервису слушать tcp порт, а второму передавать. Здесь имеет значение source ip подключения.

Т. к. JS CSS я писал сам, то это и были отдельные файлы.

0
Автор поста оценил этот комментарий

Я как раз и использовал uwsgi и nginx, чтобы это все жило 24*7 и выдерживало перезагрузку.

0
Автор поста оценил этот комментарий

"И таки успехов в прикручивания сертификата для localhost"


mkcert

раскрыть ветку (8)
0
Автор поста оценил этот комментарий

Я проще делал. Покупал в globalsign.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Проще для разовой операции - возможно. Когда речь о сотнях тестовых инстансов - не уверен.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
"И вот так просто, при помощи двух вязальных спиц и пустых катушек от ниток, мы сделали из хлеба троллейбус. Но нафига?" (С)

Единственное, зачем может понадобиться сертификат на локалхосте - протестировать CSP и CORS или ещё какой-то редкой активности

Во всех остальных случаях это оверинжиниринг
раскрыть ветку (4)
0
Автор поста оценил этот комментарий

В вашей сфере - возможно и всего пара кейсов, я встречал куда больше. Указанный инстумент успешно их решает.

Тестирование в контейнерах уже объявлено оверинжинирингом? Локальный дев-стенд тоже? Не знал, не знал...

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Я сертификат для домена третьего уровня покупал в globalsign. Вместе с сертификатом на почтовый ящик.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку