Архив за месяц: Апрель 2019

Linux: GPG-ключи, менеджер паролей pass и импорт из KeePass

25 апреля 2019
 

 pass — менеджер паролей для Linux/UNIX, наверно один из старейших. Хранит данные в древовидной структуре каталогов и файлов, а сами файлы с секретами шифрует с помощью GPG-ключа. В Arch Linux есть из коробки, в Debian можно установить с помощь apt из дефолтных репозиториев: В macOS — с помощью Homebrew: Хотя я сомневаюсь, что Mac-пользователи будут… Читать далее »

Golang: указатели — подробный разбор

20 апреля 2019
 

 Я уже когда-то добавлял пост про указатели в C — C: указатели — подробный разбор, но было это достаточно давно, да и Си всё-таки не совсем Go, хотя в плане указателей разницы нет. Тем не менее — рассмотрим указатели в отдельном посте. Что такое указатель? Кратко, указатель — это переменная, которая хранит адрес памяти другой… Читать далее »

Authy: настройка Multi-Factor Authentication для Github и AWS

17 апреля 2019
 

  Уверен, что необходмость использования MFA — Multi-Factor Authentication сегодня очевидна для всех. Для 2FA (2-Factor Authentication) наиболее используемым является TOTP — Time-based One-time Password, когда наряду с паролем для авторизации требуется ввести временный код, генерируемый устройством или утилитой. Самым известным является Google Authenticator, но кроме него существует множество других реализаций. Искал на днях решение… Читать далее »

Jenkins: проверка публичных репозиториев Github-организации

16 апреля 2019
 

 Продолжаем внедрение проверки списка публичных репозиториев организации. Напомню: идея состоит в том, что бы если кто-то из девелоперов случайно расшарит приватный репозиторий, или создаст новый репозиторий не приватным, а публичным — получить об этом уведомление в Slack. Написание самой утилиты на Go есть в посте Go: проверка списка публичных репозиториев в Github и уведомления в… Читать далее »

Redis: репликация, часть 4 — написание Ansible роли

15 апреля 2019
 

 В продолжение постов о создании Redis репликации и использования Redis Sentinel для его мониторинга. Предыдущие части: Redis: репликация, часть 1 — обзор. Replication vs Sharding. Sentinel vs Cluster. Топология Redis Redis: репликация, часть 2 — Master-Slave репликация, и Redis Sentinel Redis: репликация, часть 3 — redis-py и работа с Redis Sentinel из Python Следующая задача… Читать далее »

Arch Linux: Albion Online — Unable to preload the following plugins: libSDL2-2.0.so.0

14 апреля 2019
 

 Решил поиграться в Albion Online. Она нормально запускается из Steam, но я её покупал раньше (а сейчас она вообще Free to Play), со стартовым пакетом, и с той учёткой нельзя залогинится в игру, скачанную через Steam. Окей — загружаем отдельный клиент с сайта https://albiononline.com/ru/download, запускаем, и: Файл библиотеки libSDL2-2.0.so.0 есть в Steam — /home/setevoy/.local/share/Steam/ubuntu12_64/libSDL2-2.0.so.0, попробовал… Читать далее »

Go: проверка списка публичных репозиториев в Github и уведомления в Slack. Сравнение списков в Go. Первый опыт с Golang.

13 апреля 2019
 

 Задача — написать утилиту, которая будет запускаться по крону из Jenkins и проверять список публичных репозиториев организации в Github. Создание Docker-образа и Jenkins-джобы — в посте Jenkins: проверка публичных репозиториев Github-организации. Затем она должна сравнивать полученный список со списком разрешённых, и если списки не совпадают — слать алерт в Slack. Идея состоит в том, что… Читать далее »

Redis: Sentinel — bind 0.0.0.0, проблема с localhost и announce-ip

10 апреля 2019
 

 Изначально в файлах настроек Sentinel я использовал bind 0.0.0.0, что бы инстансы были доступны по внешним IP. Из-за этого при развёртывании системы на реальном окружении возникла проблема при определении мастер-хоста и других инстансов Sentinel. В этом посте — пример такой проблемы и их решение. На самом деле проблем было больше, но получилось воспроизвести только одну,… Читать далее »

Ansible: получить IP таргет-хоста

9 апреля 2019
 

 Задача — в Ansible получить IP адрес хоста, на котором выполняется задача. Есть два варианта (может и больше), ниже — примеры с обоими. Вариант 1 — hostvars См. документацию тут>>>. Добавим тестовую задачу: — name: Test hosts list debug: msg: «{{ hostvars[inventory_hostname][‘ansible_default_ipv4’][‘address’] }}» Запускаем: Вариант 2 — lookup и dig Второй вариант — с помощью… Читать далее »

Atom: полезные плагины

8 апреля 2019
 

 Давно пользуюсь vim практически для всего, кроме крупных проектов на Python (которые последнее время случаются крайней редко), для которого использую PyCharm. Тот же PyCharm использую при написании JSON-шаблонов для CludFormation (см. плагин aws-cloudformation). Для Go сначала пользовался vim с плагином vim-go, но недавно потрогал Atom — вполне понравился, попробую исопльзовать его. Собственно в этом посте… Читать далее »