AWS: CloudFront и S3 — No ‘Access-Control-Allow-Origin’ header is present on the requested resource

22 января 2019
 

 Имеется S3 корзина, к которой подключен CloudFront CDN. (см. AWS: S3 – хостинг статического сайта). При проверке ресурса на сайте http://inspectstream.theoplayer.com/ получаем ошибку Cross Origin Resource Sharing (CORS) is not enabled: Полностью ошибка выглядит так: Access to XMLHttpRequest at ‘https://stage.cdn.example.world/meditation/audio/T/W/TWtEMwG0LuW8R5OlCFR3-X8Y1t-NocSX.m3u8’ from origin ‘https://bitmovin.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.… Читать далее »

Jenkins: JNLP-slave из Docker-образа

21 января 2019
 

 Имеется у нас зоопарк билд-агентов (macOS, Ubuntu), работающих в офисе. Сам Jenkins при этом запущен в AWS, на ЕС2, и обращается к агентам через проброс SSH-портов на офисном роутере. Задача — перенастроить схему, что бы агенты сами обращались к Jenkins, и, таким образом, отказаться от пробоса портов. Сесурити и вот это вот всё. Простой пример… Читать далее »

Linux: ncdu и pydf — отображение информации о занятом/свободном месте на дисках

16 января 2019
 

 NCDU NCDU — утилита для отображения занятого и свободного места на дисках, аналог du и df. Аббревиатура NCDU расшифровывается как NCurse Disk Usage, и, очевидно, использует библиотеку ncurses для отображения данных. Установка на Arch — с помощью pacman: [simterm] $ sudo pacman -S ncdu [/simterm] Debian/Ubuntu: [simterm] $ sudo apt install ncdu [/simterm] Запускаем: После проверки… Читать далее »

Jenkins: Remote call on JNLP4-connect connection failed

15 января 2019
 

 Имеется Jenkins, для которого подключили новый слейв. Слейв запущен на Mac Mini, и используется для iOS билдов. Но во время запуска — возникает ошибка: [EnvInject] — Injecting environment variables from a build step. [EnvInject] — Injecting as environment variables the properties file path ‘propsfile’ [EnvInject] — Variables injected successfully. FATAL: Remote call on JNLP4-connect connection… Читать далее »

Linux: проверка диска на bad blocks

14 января 2019
 

 Имеется у нас билд-агент для Jenkins, запущен на Ubuntu 16. Периодически при загрузке машина подвисает сразу после запуска GRUB. Один из вариантов поиска проблемы — проверить диск на предмет наличия битых секторов. Для этого можно использовать утилиты badblocks из набора e2fsprogs, и smartctl из набора smartmontools. badblocks Проверяем диски на этой машине: [simterm] root@username-ci:~# fdisk… Читать далее »

Linux: сделать скриншот на удалённой машине по SSH

9 января 2019
 

 Есть Jenkins билд-агент на Ubuntu, запущенный на машинке, которая стоит в офисе, мониторы от неё висят на стенке и отображают результаты билдов (см. Build Monitor Plugin). Задача — сделать скриншот экрана, не бегая в другой конец комнаты к клавиатуре. Устанавливаем imagemagick: [simterm] root@projectname-ci:~# apt install imagemagick [/simterm] Создаём скриншот, используя import: [simterm] root@projectname-ci:~# import -window root… Читать далее »

AWS RDS: PDOException: SQLSTATE[08004] [1040] Too many connections

26 декабря 2018
 

 В Sentry начали сыпаться ошибки вида: PDOException: SQLSTATE[08004] [1040] Too many connections in /data/projects/project/vendor/yiisoft/yii2/db/Connection.php:687 Stack trace: #0 /data/projects/project/vendor/yiisoft/yii2/db/Connection.php(687): PDO->__construct(‘mysql:host=stag…’, ‘user’, ‘pass’, NULL) Для всех инстансов RDS MariaDB максимальное кол-во подключений считается по формуле {DBInstanceClassMemory/12582880}. Т.е. в нашем случае это тип db.m4.xlarge с 16ГБ памяти, следовательно: [simterm] $ echo «(16*1024*1024*1024)/12582880» | bc 1365 [/simterm] Для указания значения лимита… Читать далее »

Linux: добавить swap-file

25 декабря 2018
 

 На AWS EC2 AMI-образ Debian 9 идёт без активного swap. При желании и необходимости — его можно легко добавить самому. Создаём файл: [simterm] root@bttrm-stage-app-1:/home/admin# fallocate -l 1G /data/swapfile [/simterm] Задаём права доступа: [simterm] root@bttrm-stage-app-1:/home/admin# chmod 600 /data/swapfile [/simterm] Выполняем mkswap: [simterm] root@bttrm-stage-app-1:/home/admin# mkswap /data/swapfile Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)… Читать далее »

memcached: Too many open files

24 декабря 2018
 

 Перед Новым Годом делали нагрузочное тестирование, насобиралось несколько черновиков по мелким фиксам. Без детального расмотрения, просто примеры того, как можно исправить некоторые ошибки. В данном случае — у нас иногда начинал отваливаться memcached с ошибкой вида: Dec 16 00:40:12 bttrm-stage-app-1 systemd-memcached-wrapper[14041]: accept4(): Too many open files Редактируем /etc/security/limits.conf, задаём лимиты для пользователя memcache, от которого… Читать далее »

Arch Linux: File /usr/lib/libQt5Positioning.so.5.12.0 is empty, not checked

14 декабря 2018
 

 Уже не первый раз ноут вырубается от перегрева (см. Linux: /lib/modules/4.16.13-1-ARCH/modules.devname not found и error: file ‘/grub/i386-pc/normal.mod’ not found и Linux: /usr/bin/ps: empty и ldconfig: File /usr/lib/libprocps.so.7 is empty, not checked.), теперь вылезла аналогичная проблема, но с библиотеками Qt. В /var/log/pacman.log куча ошибок типа: [2018-12-13 21:55] [ALPM-SCRIPTLET] ldconfig: File /usr/lib/libQt5Positioning.so.5.12.0 is empty, not checked. [2018-12-13 21:55] [ALPM-SCRIPTLET] ldconfig:… Читать далее »