Popstas

Записки о Linux

9 Mar 2017, 08:00 - 7 мин читать

ansible-role-zsh: zsh терминал с autosuggestions, fzf и красивым удобным prompt

Репост моей статьи с хабра.

Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно. Из этого рождается постоянное желание его настраивать, пробовать разные плагины. Шеллом я выбрал для себя zsh лет 5 назад, пару лет назад нашел oh-my-zsh для его удобной настройки. Со временем к этому конфигу добавились некоторые сбоку торчащие части в виде powerline и percol.

Недавно я решил пересобрать все так, чтобы избавиться от ненужных плагинов, добавить нужные, сделать легкую установку и обновление. В итоге появилась роль ansible-role-zsh, которая полностью настраивает терминалы на локалке и на моих серверах.

Особенности:

  • устанавливается одной командой (кроме шрифта и темы вашего терминального клиента)
  • быстро загружается, быстро работает
  • полностью настраивается через ansible, ~/.zshrc
  • полностью локальная (в систему ничего не ставится, все хранится в ~/.oh-my-zsh)
  • оставляет возможность юзеру вносить свои настройки через ~/.zshrc.local
  • одинаково работает на macOS, старом Debian, Ubuntu, CentOS
  • нормально выглядит на разных цветовых схемах (но лучше всего на Solarized Dark)
  • встроенная подсветка синтаксиса (помогает реже ошибаться и лучше читать длинные команды)
  • автодополнение по истории команд (помогает реже нажимать Ctrl+R)
  • отображение времени для долго выполняемых команд (помогает реже использовать time)

Демонстрация фич за 1 минуту:

8 Mar 2017, 01:00 - 3 мин читать

Мой процесс написания ansible роли с Molecule и Gitlab CI

Опишу процесс, к которому я пришел на данный момент.

TODO: concurrent TODO: несколько дистрибов

Особенности

  • Стремление не писать роли
  • Постепенное ужесточение требований при написании, от “Лишь бы прошло с 10 раза” к “Скорее всего Travis пройдет с первого раза”
  • Тестирование на разных машинах

26 Feb 2017, 04:14 - 5 мин читать

Настройка кеширующего прокси apt-cacher-ng для ускорения тестирования ansible ролей с Molecule, Gitlab CI и Docker

В предыдущей статье я настраивал apt-mirror для тех же целей. У того способа нашлось несколько недостатков.

В статье ниже описано, как решить ту же проблему, используя apt-cacher-ng.

Tl;dr: на этот раз все получилось, этот способ меня устроил.

24 Feb 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.

22 Feb 2017, 01:19 - 1 мин читать

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

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

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

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

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

19 May 2016, 00:47 - 5 мин читать

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

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

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

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

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

11 Apr 2016, 05:01 - 2 мин читать

Bash on Ubuntu on Windows: первый блин

Итак, дождался обновления Windows, поставил в нее Ubuntu по инструкции, вот что было дальше: Tl;dr: оно очень сырое, не работает почти ничего. Первым делом захотелось родной zsh, берем aptitude, ставим, Ubuntu же! Шелл открылся под root, так что sudo не нужен. $ aptitude install zsh Конечно, ничего не вышло :) Во-первых, aptitude не нашел файл /var/lock/aptitude, нет проблем, ставим через apt-get, но оказывается, что нет инета. Про это есть issue#14 (а багов за 4 дня открыли 40+), оказалось, дело в DNS, лечится так:

7 Apr 2016, 00:26 - 2 мин читать

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

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

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

6 Mar 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, стандартизация коммитов.