Архив за год: 2015

Python: модуль Fabric

17 июня 2015
 

 Описание, установка Fabric — система для управления и развёртывания приложений. Управляющие скрипты (аналог рецептов в Chef) пишутся на Python. И сам Fabric написан на Python. Особое значение (по крайней мере — для меня) имеет то, что Fabric отлично работает с SSH, позволяя выполнять любые действия на удалённой машине. При этом, в отличии от paramiko, имеет намного более… Читать далее »

SSH: авторизация по ключам

15 июня 2015
 

 Упрощенная схема, аналог поста SSH – авторизация по ключам. Сегодня наткнулся на неё — и понял что она запутанная. сервер — машина, с которой будем подключаться; клиент — машина, на которую будем подключаться. Для того, что бы авторизовываться на клиенте — нам необходимо сначала изменить настройки демона sshd. На клиенте редактируем файл /etc/ssh/sshd_config, и в нём раскомментируем… Читать далее »

Python: пример использования модуля requests

12 июня 2015
 

 Общие сведения можно найти в посте Python: модуль requests. В примере ниже — пример его использования. Функция cloud_put() выполняет деплой данных (XML и DLL файлы) в базу данных Cassandra через API нашего приложения:

Python: модуль argparse — использование субкоманд

11 июня 2015
 

 В примере ниже продемонстрировано использование субкоманд (или «подкоманд«) с использованием модуля argparse. К примеру, в предыдущем проекте скрипт управления приложением имел около 20-ти различных опцией (был написан на BASH с использованием getopts()), при том что букв в английском алфавите — 26. В новом проекте — имеется аналогичный скрипт, но на Python. Приложение состоит из нескольких частей,… Читать далее »

Python: декораторы

8 июня 2015
 

 У Python есть интересная возможность, которая называется «декораторы» (decorators), которая позволяет добавлять функциональность к уже существующему коду. Такая возможность так же называется метапрограммированием — когда одна часть программы пытается модифицировать другую часть во время компиляции. Введение Что бы понять суть работы декораторов — мы сначала должны рассмотреть несколько базовых концепций Python. Во-первых — мы должны понимать, что абсолютно… Читать далее »

Git: использование stash и rebase для обновления локального бранча

7 июня 2015
 

 Имеется локальный бранч, созданный из develop. После его создания — в develop было сделано много изменений, и перед созданием pull-реквеста — хочется их синхронизировать. Отличная документация по rebase и merge есть тут>>>. Для того, что бы не потерять изменения, которые мы уже сделали в локальном бранче — сначала выполняем stash: d:***plugins>git stash Saved working directory… Читать далее »