24.02.2017, 17:39 - 5 мин читать

Как я создал и отказался от локального репозитория apt-mirror для Ubuntu для ускорения тестирования ansible ролей

При тестировании плейбуков на чистой Ubuntu (а как же еще?) самые большие накладные расходы по времени (субъективно) и уж точно самые большие по трафику уходят на установку пакетов из системного репозитория. Особенно это заметно, когда видишь, что один и тот же тест Travis CI прогоняет в 1.5 раза быстрее.

Ниже описано, как создать зеркало из http://mirror.yandex.ru/ubuntu и подружить его с Gitlab CI и molecule.

Tl;dr: не делайте локальный репозиторий через apt-mirror для мелких задач, не стоит оно того. Вместо этого нужно поднять кеширующий сервер через apt-cacher-ng.

Tux and servers

22.02.2017, 01:19 - 1 мин читать

Извлечение одной из папок в git репозитории в отдельный репозиторий с сохранением истории - git-extract-subproject

Занялся я тут распиливанием большого проекта (дерево ansible ролей) на отдельные репозитории.

Для этого надо:

  1. Извлечь директорию подпроекта в отдельный репозиторий
  2. Удалить из проекта папку подпроекта
  3. Добавить в большой проект зависимость от подпроекта

Ниже написано, как сделать 1-й шаг одной командой через скрипт git-extract-subproject.

Git projects extract

19.05.2016, 00:47 - 5 мин читать

Kapacitor: часть 1. Введение, сравнение с Monit, установка с Ansible и без, настройка

Несколько недель назад я начал разбираться с Kapacitor, попутно записывая свои действия. Конца разбирательствам было не видно, записей становилось все больше и накопилось на серию.

Речь пойдет о Kapacitor, последнеем слое из стека TICK от InfluxData, набора программ для сбора, отображения и обработке метрик.

Tl;dr: думаю, что Kapacitor нужен только тем, кто уже использует InfluxDB для сбора метрик. С установкой могут быть проблемы, если руки кривые.

А также небольшое замечание о том, как делать Pull request'ы из браузера за 2 минуты

Kapacitor

07.04.2016, 00:26 - 2 мин читать

Windows 10 build 14316 со встроенной Ubuntu и bash через программу Microsoft Insider Preview доступна не всем

Все конечно слышали, что Microsoft и Canonical сговорились и встроили в винду линукс. Так вот, его пока еще нельзя потрогать.

UPD 11.04.2016: сборка 14316 дошла до меня, смотрите инструкцию по настройке.

06.03.2016, 10:09 - 7 мин читать

CHANGELOG.md: ручное и автоматическое ведение истории изменений проекта в Git

С начала января я веду свой проектик, на котором обкатываю новые для меня технологии:

  • Статический анализ кода, phpcs, phpmd, Scrutinizer
  • Автоматическая сборка, Travis CI
  • Unit тесты, PHPUnit
  • Покрытие кода, Coveralls
  • Работу через задачи для любых изменений, Github Issues, PhpStorm tasks
  • Документирование всего: README, CHANGELOG, сайт проекта, –help

В этом посте изложена история изменений моего мнения о разных генераторах историй изменения.

Tl;dr: conventional-changelog, стандартизация коммитов.

changelog

02.03.2016, 00:49 - 5 мин читать

Интеграция Git, Gitlab и Planfix почти как на Github

Распробовал тут на неделе интеграцию задач Github и самого Git issue tracker.

Ниже будет написано, как настроить в Планфиксе такое поведение:

  • В коммите упоминаем задачу, например, Правки футера шаблона, https://test.planfix.ru/task/123456
  • После push в удаленный репозиторий в упомянутой задаче появляется комментарий с текстом коммита и ссылкой на страницу коммита на Gitlab, если проект подключен к репозиторию.

Tl;dr: настраивается post-receive hook в Git на удаленном сервере, после каждого пуша анализируются сообщения пришедших коммитов, коммиты, содержащие ссылки на задачи отправляются в задачи по email.

Вся интеграция делается в одном файле, код хука лежит здесь - git-hook-post-receive

planfix

29.02.2016, 03:46 - 2 мин читать

average: измерение среднего времени выполнения команды в bash

Периодически хочется посчитать среднее время, у меня были такие сценарии:

  • простая проверка скорости загрузки страницы
  • подбор оптимальных параметров к команде
  • сравнение разных команд

Раньше я просто запускал несколько раз с time, смотрел результат, у уме делил. Но мне это надоело, поэтому написал скрипт average.

27.02.2016, 14:48 - 7 мин читать

Как я обрабатываю входящие потоки контента через RSS и Pocket или моя воронка статей

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

Tl;dr: RSS + Twitter + Email → Pocket → Firefox → Twitter + закладки.

content pyramid

26.02.2016, 21:29 - 7 мин читать

Docker в картинках

Оставлю здесь свой пост с хабра.

Перевод поста Visualizing Docker Containers and Images, от новичка к новичкам, автор на простых примерах объясняет базовые сущности и процессы в использовании docker.

Если вы не знаете, что такое Docker или не понимаете, как он соотносится с виртуальными машинами или с инструментами configuration management, то этот пост может показаться немного сложным.

Пост предназначен для тех, кто пытается освоить docker cli, понять, чем отличается контейнер и образ. В частности, будет объяснена разница между просто контейнером и запущенным контейнером.

docker layers