Архив рубрики: Virtualization

In computing, virtualization refers to the act of creating a virtual version of something, including virtual computer hardware platforms, storage devices, and computer network resources.

SonarQube: запуск в Docker и вызов из Jenkins Pipeline

18 июня 2019
 

 Задача — запустить SonarQube, что бы Jenkins выполнял проверку кода. Jenkins работает в Docker, билды запускаются тоже Docker. Основная проблема, которая возникла во время запуска SonarQube из Docker Compose, это то, что контейнер с SonarQube внутри себя запускает процесс с Elastisearch (что, вроде как, нарушает главный принцип использования конейнеров — 1 сервис на один контейнер).… Читать далее »

AWS: ротация ключей IAM пользователей, EC2 IAM Roles и Jenkins

30 мая 2019
 

 Сегодня просматривал IAM-пользователей в AWS, и вспомнил, что с точки зрения безопасности иногда полезно менять ключи доступа: Но тут встал вопрос: хорошо, задать ключам expire, и периодически их обновлять в AWS IAM — это одно… Но эти ключи используются в куче скриптов, которые запускаются в Jenkins-джобах. Например — провижен бекенда выполняется из Ansible и модуля… Читать далее »

Debian: автоматические обновления с помощью unattended-upgrades и отправка почты через AWS SES

23 мая 2019
 

 Пакет unattended-upgrades выполняет автоматическую установку обновлений на Debian/Ubuntu. Представляет собой Python-скрипт (1500 строк), расположенный в /usr/bin/unattended-upgrade (при этом /usr/bin/unattended-upgrades является симлинком на /usr/bin/unattended-upgrade). Аналог для CentsOS/RHEL — yum-cron. Устанавливаем: [simterm] $ sudo apt -y install unattended-upgrades [/simterm] Основной файл настроек — /etc/apt/apt.conf.d/50unattended-upgrades, в нём настраиваются тип обновлений, отправка почты и прочее. Настройки самих обновлений выполняются… Читать далее »

Sentry: запуск self-hosted версии системы мониторинга ошибок на AWS EC2

18 мая 2019
 

 Для проекта мы пользовались Cloud-based версией Sentry, но в один прекрасный день исчерпали лимит на отправку сообщений, и бекенд-команда, по сути, осталась без мониторинга. Давно собирались запустить Sentry на своём сервере, появился повод. В посте описывается запуск Sentry с Docker Compose, настройка почты и пример перехвата ошибок в Python. Используем репозиторий Sentry. Запускаем AWS EC2,… Читать далее »

AWS: VPC peering DNS resolution и настройки DNS для OpenVPN AS

17 мая 2019
 

 Имеется VPC с OpenVPN. Эта VPC через VPC Peering объединена с другими VPC в нашем AWS-аккаунте. Проблема в том, что для разрешения DNS имён на приватные, а не публичные IP, сейчас используется dnsmasq на хосте с VPN-сервером, для которого создан файл /etc/dnsmasq.hosts, в котором вручную приходится вносить приватные IP для доменов. Подробнее см. в посте… Читать далее »

AWS: MariaDB RDS — kill: You are not owner of thread

14 мая 2019
 

 Имеется AWS RDS с MariaDB. Ошибка и решение не специфичны ни для AWS RDS, ни для MariaDB. При попытке убить процесс — RDS сообщает, что: [simterm] MariaDB [(none)]> kill 759; ERROR 1095 (HY000): You are not owner of thread 759 [/simterm] Решение — использовать процедуру mysql.rds_kill(): [simterm] MariaDB [(none)]> SHOW CREATE PROCEDURE mysql.rds_kill\G *************************** 1.… Читать далее »

Bitwarden: менеджер паролей организации — установка self-hosted версии на AWS EC2

1 мая 2019
 

 Мы рассматриваем Bitwarden как менеджер паролей для проекта, основная цель которого — разделение доступа к различным секретам по ролям и/или ACL. Т.е. Pass и/или KeePass — это хорошо для одного пользователя, но у них нет главного — нормального веб-интерфейса, и разделения доступа к секретам для пользователей, а всякие 1Password/LastPass не имеют возможности установки на свой… Читать далее »

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: Sentinel — bind 0.0.0.0, проблема с localhost и announce-ip

10 апреля 2019
 

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