как загрузить python проект на pypi

Иногда вы сделали какой-то публичный проект на python и хотите его максимально и удобно распространять. Самый простой способ для этого, как ни странно, pip install. Подробнее про pip можно почитать тут: https://pypi.org/project/pip/ Рекомендованый способ загрузить свой проект — это использовать twine. Далее я приведу сокращенный вариант с использованием github на основе моего проекта. Для начала зарегистрируйте аккаунт по ссылке: https://test.pypi.org/account/register/ Это тестовый стенд, он нам нужен для экспериментов и проверки, чтоб не мусорить в основном репозитарии python пакетов.

установка socks прокси сервера

Судя во всему, скоро заблокируют месседжер Telegram на территории РФ, и поэтому друзья попросили поднять им socks прокси. Telegram как раз недавно запилил поддержку socks протокола. Я решил, что подниму socks5 сервер с авторизацией. Выбор пал на dante как простой в настройке и с поддержкой авторизации. Первая проблема была с установкой актуальной версии dante на мой дистрибутив. На сервере на момент написания статьи стоял Debian 7 (wheezy) i386. Дело в том, что версия dante-server, доступная для него, сильно устарела и не поддерживала авторизацию.

вступление в Declarative Jenkins Pipelines

Если вы работаете с Jenkins и не слышали про Declarative Pipelines, то я как раз попытаюсь объяснить что к чему. Declarative Pipeline — это развитие старых Pipelines. Declarative Pipelines должны заменить старые Pipelines, они предоставляют более простой синтаксис и инструменты для более удобной работы, такие как автоматическая проверка синтаксиса при вводе, форматирование через API или CLI, интеграцию с Docker, визуальный редактор BlueOcean. Обычно, declarative pipelines представляют в виде Jenkinsfile в корне репозитория, но их можно создавать из любых файлов, а также напрямую, через Job DSL.

обзор AWS ECS на примере

Это вторая статья из цикла «инфраструктура Jenkins в ECS». В предыдущей статье акцент был уделен сбору логов из ECS контейнеров. Давайте поподробнее разберёмся, как устроен ECS и как его правильно готовить. Если кто-то уже знаком с kubernetes, то ECS немного похож на него. Атомарной единицей в ECS является task, это, по сути, один или группа контейнеров. Таск описывается с помощью task definition, там можно задать лимиты ресурсов (памяти, процессора), дисковые тома, переменные окружения, порты и многое другое, смотри документацию по ссылке выше.

логирование docker в ECS

Это первая статья из цикла «инфраструктура Jenkins в ECS». Для тех, кто не знаком с ECS, предлагаю начать с прочтения этого ресурса. В двух словах, ECS — это Docker as a Service от Amazon. Все дальнейшие действия будут происходить на Debian 8, но и для Ubuntu описанные инструкции тоже должны сработать. Docker используется версии 1.12.5. После того, как вы установили Docker, вы захотите читать логи своих контейнеров в удобном формате. Для этого нужно настроить опции логирования при запуске контейнеров, а также настроить rsyslog на запись логов в отдельное место, ну и еще сказать ECS агенту, чтоб он поддержал нужный драйвер логирования, иначе таски не запустятся в кластере.

простой способ получить SSL сертификат

Еще недавно, чтоб получить SSL сертификат нужно было заморачиваться с StartSSL или платить деньги регистраторам. Но LetsEncrypt уже вышел из беты и хорошо себя зарекомендовал. Я не захотел использовать официальный монструозный инструментарий, а вместо этого решил разобраться, как работает протокол и заодно написать свой велосипед, который едет веселее и не имеет фатальных недостатков. Скажу сразу, что скрипт работает только с nginx, так что, если просто хотите сгенерировать сертификат или у вас другой веб сервер, то можете изучить скрипт только на предмет его работы с ACME.

создание collectd python freeradius плагина

Все мы любим мониторинг, особенно, когда он предоставляет полную информацию о сервисах. Так получилось, что на работе мы используем Graphite, а метрики в него засылаем с помощью collectd. Иногда предоставленной функциональности collectd не хватает, и тогда на выручку приходят готовые плагины с гитхаба или самописные костыли. Сейчас я на примере простого плагина для сбора метрик freeradius расскажу как написать python плагин для collectd. Для начала, определим конфиг плагина, например, в конфиге мы укажем, какой тип статистики мы будем собирать (не забудьте настроить радиус отображать статус), порт freeradius и пароль для подключения.

тестирование python приложения в docker

В этой статье речь пойдет о том, как я тестирую свой python код внутри docker контейнера с Alpine Linux. Для тех, кто не знает, что такое docker, поясню, что это инструмент для управления контейнерами, который использует «слоёные» файловые системы и написан на Go. Для меня основное преимущество docker перед привычной виртуализацией, например Qemu/KVM, в его легковесности. За счет AuFS/OverlayFS базовый образ системы и контейнер занимают до нескольких сотен мегабайт, а новые контейнеры используют тот же образ, что и старые, что позволяет экономить еще больше места.

смотрим фильмы с компьютера на TV

Новогодние праздники, полторы недели выходных, новый телевизор с wifi, ethernet и выходом в интернет. Естественно, мне стало интересно, как подружить мой домашний сервер на линуксе (старый писюк) с телевизором, чтоб невозбранно смотреть фильмы в высоком качестве на большом экране. Если вам это тоже интересно, тогда читайте дальше.

как собрать deb пакет

Постараюсь как можно доступнее изложить процесс создания deb пакетов на примере ruby-zookeper. Предупреждаю сразу, что описанный мной метод пакетирования ruby gems неправильный, лучше использовать gem2deb для этого, но т.к. из исходников с помощью gem2deb собрать ruby-zookeper последней версии у меня не получилось, то вот самый простой метод сборки.