Popstas

Записки о Linux

31 Dec 2017, 01:30 - 7 мин читать

Итоги 2017 года

Решил зафиксировать уходящий год и вспомнить, что было. Давно хотелось иметь такую шпаргалку, чтобы вспоминать, в каком же году это было. К счастью, в этом году перед долгой новогодней ночью нам достались выходные, использую их для этой записи.

1 Dec 2017, 23:25 - 3 мин читать

Ext4 vs XFS

Мне недавно подсказали посмотреть на файловую систему XFS. Я посмотрел, первые результаты понравились, буду переходить на разделах с кучей файлов.

23 May 2017, 21:20 - 4 мин читать

Интеграция NodeMCU и JetBrains IDE на примере IDEA или как я чуть не написал свою IDE

Я в последнее время делаю себе домашние девайсы на ESP-8266, использую прошивку nodemcu-firmware, а значит Lua.

Самый простой способ писать код на Lua под ESP-8266 - ESPlorer. У меня есть ряд претензий к этому редактору:

  • нет структуры проекта (можно только открывать вкладки по одной через File - Open)
  • простой редактор без автодополнения, мультиредактирования и т.д.
  • нельзя загружать файл по хоткею
  • нет git

TL;DR: написал свой велосипед, работает, но не без проблем.

26 Mar 2017, 21:30 - 5 мин читать

Packer: создаем свои vagrant box и docker image из одного конфига

Проект viasite-ansible/ansible-server подошел к моменту, когда нужно протестировать роль, которая зависит сразу от нескольких ролей (роль установки сайта).

Естественно, при тестировании этой роли я не хочу ждать по 10 минут каждый раз, поэтому я потратил день я вспомнил, что есть такой тул - Packer и решил, что пришло его время.

Packer умеет брать чистую операционку, настраивать ее и упаковывать результат в образ системы для использования в других программах или разворачивания на хостинге.

Для чего это может пригодиться:

  • ускорение тестирования
  • большая повторяемость, по сравнению с ansible
  • образы для продакшена для быстрого развертывания новых серверов
  • образы идентичные продакшену для локальной разработки

Tl;dr: я буду собирать образы для Docker и Vagrant из Ubuntu, на которую накатили ansible плейбук. Gist с результатами здесь.

18 Mar 2017, 22:20 - 2 мин читать

Продублировать последний аргумент текущей команды в zsh, zle widget

В последнее время я упоролся по тюнингу своего zsh. Потратил на это кучу времени, но есть и плюсы: поучаствовав в правке пары плагинов, я начал понимать, как работает вся эта магия, которой я давно пользуюсь.

Так вот, у меня в терминале бывает частая задача: скопировать файл и положить рядом с немного другим именем. Раньше я пользовался такой схемой:

ls filename.ext
cp <Alt+.> <Alt+.>

То есть, я сначала вводил команду-пустышку, такую, чтобы в историю попала команда, где последним аргументом будет путь к файлу. Потом через Alt+. вставлял 2 раза последний аргумент предыдущей команды.

Другие примеры использования:

  • mv path/file1 path/file2
  • cp config.example config
  • mc /home/user /home/user

Теперь я могу делать так:

cp filename.ext <Alt+,>

В действии:

13 Mar 2017, 00:30 - 2 мин читать

Подсветка Python синтаксиса в PhpStorm

Я долго терпел, но сегодня решил выяснить: можно ли добавить поддержку Python в PhpStorm.

Оказалось, что можно и делается хоть и не за минуту, а за 5-10 минут.

Tl;dr: можно сделать только подсветку, Solarized Dark нельзя. Официальная документация

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: на этот раз все получилось, этот способ меня устроил.