Category Archives: Python

HowTo и примеры на Python-е

RabbitMQ: запуск, описание, примеры

6 June 2018
 

 RabbitMQ – менеджер сообщений (message broker), написан на Erlang, ближайший аналог в AWS – SQS. Предназначен для передачи данных (сообщений) между несколькими сервисами : один сервис добавляет в очередь сообщение, другой – получает это сообщение. Ниже – пример установки, запуска и использования RabbitMQ. Установка На Arch Linux: Debian/Ubuntu: Либо можно запустить из Docker-образа: rabbitmq-plugins RabbitMQ поддерживает… Read More »

AWS: SES – Simple Email Service и WorkMail: настройка аккаунта и отправка почты

18 May 2018
 

 AWS SES позволяет выполнять отправку и приём почты без необходимости настраивать свой полноценный почтовый сервис в виде Exim/Dovecot etc. Документация – тут>>>, а в этом посте рассмотрим настройку и использование сервиса на примере. Ограничения SES sandbox Как и все сервисы AWS – SES имеет свои ограничения, а для SES ещё и применяются особые правила: при… Read More »

Python: pip – AttributeError: ‘module’ object has no attribute ‘SSL_ST_INIT’

16 March 2018
 

 При установке и запуске Let’s Ecnrypt клиента – вылезла ошибка Python: root@jm-monitoring-production-vm:~# letsencrypt certonly –config-dir /data/letsencrypt/ –noninteractive –webroot –webroot-path /var/www/html/ –email email@domain.tld –agree-tos –domains monitor.domain.tld Traceback (most recent call last): File “/usr/bin/letsencrypt”, line 9, in <module> load_entry_point(‘letsencrypt==0.4.1’, ‘console_scripts’, ‘letsencrypt’)() File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 542, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 2569, in load_entry_point return… Read More »

Python: Duplicate Encoder – решение задачки с Codewars

5 March 2018
 

 Задача Ссылка на задачу Оригинал: The goal of this exercise is to convert a string to a new string where each character in the new string is ‘(‘ if that character appears only once in the original string, or ‘)’ if that character appears more than once in the original string. Ignore capitalization when determining… Read More »

Python: скрипт бекапа файлов и баз MySQL в AWS S3

3 January 2018
 

 Задача – набросать скрипт, который умел бы создавать бекап нескольких сайтов и загружать их в AWS S3 корзину. Ниже описан процесс написания такого скрипта (или, скорее, уже даже “утилиты”, т.к. имеются модули и файл настроек), без особых деталей по работе и реализации самих функций – больше информации о процессе создания утилиты, её структуре и логике… Read More »

Python: boto3 – примеры авторизации

2 January 2018
 

 Полная документация – тут>>>. Основные способы авторизации, по очереди их выполнения: передача данных доступа методу boto.client() передача данных доступа параметрами при создании объекта Session() переменные окружения файл данных CLI ~/.aws/credentials файлы /etc/boto.cfg и ~/.boto Пишу скрипт бекапа (очередной 🙂 ), и очень хочется избежать передачи данных через файл настроек скрипта, поэтому основным вариантом для домашней… Read More »

Python: boto3 и скрипт обновления AWS Security Group

31 December 2017
 

 Имеется VPN сервис, работающий в AWS на EC2, доступ к которому ограничен с помощью security group. Задача: набросать скрипт, который работал бы под Linux/Windows (VPN-ом пользуюсь не я один), который позволял бы быстро добавить запись с новым IP для доступа. Используем Python 3 и boto3.

Travis: деплой конфигов NGINX в Azure File share

7 August 2017
 

 Имеется ресурс группа, которая включает в себя один Azure Load Balancer, за котором находится Azure VMSS с двумя виртуальными машинами. На машинах работает NGINX, который использует файлы настроек виртуалхостов, которые хранятся в файл-шаре, которая монтируется к обеим машинам. Полное описание проекта – Azure: VMSS за Load Balancer, renew SSL от Let’s Encrypt, SMB file share и NGINX-proxy.… Read More »

Viber: получить history в текстовом виде и скрипт бекапа

10 July 2017
 

 Как и Skype – Linux-клиент Viber хранит данные в локальной SQLite базе: $ ls -l ~/.ViberPC/38096***26/ | grep db -rw-r–r– 1 setevoy setevoy 38912 Jun 30 15:30 data.db -rw-r–r– 1 setevoy setevoy 32768 Jul 10 10:38 data.db-shm -rw-r–r– 1 setevoy setevoy 1048032 Jul 10 10:38 data.db-wal -rw-r–r– 1 setevoy setevoy 5072896 Jul 10 09:59 viber.db… Read More »

Python: структуры данных

30 June 2017
 

 Перевод – краткий обзор структур данных в Python. Оригинал – тут>>>. В Python 3 имеется четыре встроенных типа данных – списки (list), кортежи (turple), словари (dictionary) и списки (set).