Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

Helm: пошаговое создание чарта и деплоймента из Jenkins

14 мая 2020
 

 Продолжаем трогать Kubernetes и Helm. Сам Хельм в общих чертах рассмотрели в посте Helm: Kubernetes package manager — обзор, начало работы — теперь надо прикрутить его в Jenkins. И не просто прикрутить его вызов — а создать чарт, потому что сейчас приложение деплоится через «голые» манифест-файлы Kubernetes, в котором sed проставляет теги Докер-образа и значения переменных… Читать далее »

Linux: создание coredump памяти процесса, systemd-coredump и Debian

10 марта 2020
 

 Возникла необходимость получить дамп РНР-процесса на Debian 9. Рассмотрим механизм ядра, позволящий создать дамп, и настройку создания дампов в Linux. Ниже будем говорить о создании дампа памяти процесса в Linux, а не дампа ядра при kernel panic — там он иной, см. Kdump на Arch Wiki. Linux Core Dump Ядро создаёт дамп памяти процесса, если… Читать далее »

Linux: PHP-FPM, Docker, STDOUT и STDERR — нет логов приложения

17 февраля 2020
 

 Имеется Docker-образ, в который включены NGINX и PHP-FPM, плюс Supervisor для их запуска. В этот же образ включён код PHP-приложения, которое пишет ошибки PHP в /dev/stderr, как задано в php.ini: … [global] error_log=/dev/stderr … Проблема заключается в том, что при выполнении kubectl logs — в выводе этих данных нет. Где проблема? В Docker? Kubernetes? Linux… Читать далее »

PHP: PHP-FPM игнорирует переменные — решения

13 февраля 2020
 

 Имеется PHP приложение, которое для подключения к серверу баз данных использует дефолтные данные из файла /app/.env и переменные окружения. Проблема заключается в том, что приложение не видит переменную $TEST_VAR, хотя в шаблоне Kubernetes пода она задана: … containers: — name: application-dev-web image: bttrm-application:119 … — name: TEST_VAR valueFrom: secretKeyRef: name: bttrm-app-secret key: test_var … Значение… Читать далее »

Debian: php7.3-curl : Depends: libcurl3 (>= 7.44.0) but it is not installable

23 января 2020
 

 Имеется джоба в Jenkins, которая запускает контейнер, и выполняет сборку PHP-приложения на Yii. Во время сборки PHP-приложения — билд падает с ошибкой: … Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been… Читать далее »

PHP: кеширование PHP-скриптов — настройка и тюнинг OpCache

25 декабря 2019
 

 OpCache увеличивает производительность PHP сохраняя уже скомпилированные скрипты PHP в общей памяти, таким образом уменьшая работу для PHP-FPM, которому приходится меньше выполнять загрузку, чтение и обработку PHP при поступлении новых запросов. Workflow обработки новых запросов выглядит так: Исходный код проекта — тут>>>. Enable OpCache Редактируем php.ini файл, в данном примере это будет /etc/php/7.3/fpm/php.ini. Добавляем в… Читать далее »

Chromium: Linux, keyrings && Secret Service, шифрование и хранение паролей

9 декабря 2019
 

 Одним из поводов настолько углубиться в keyrings (см. What is: Linux keyring, gnome-keyring, Secret Service, и D-Bus) был факт того, что Chromium, внезапно, при отсутствии keyring в Linux будет хранить пароли в «открытом виде». Собственно, давайте попробуем найти — как и где Chromium хранит пароли, и, самое важное — шифрует ли он их? Chromium и… Читать далее »

Jenkins: деплой Docker Compose из Ansible и ECR авторизация

26 сентября 2019
 

 В продолжение поста AWS: создание Elastic Container Registry и деплой из Jenkins, в котором создали джобу для билда Docker-образов и их пуша в AWS ECR — теперь надо создать джобу в Jenkins для деплоя и запуска одного Docker-контейнера. Запускать будем через Docker Compose, в котором Ansible будет задавать требуемую версию из параметров Jenkins-джобы. Для того, что… Читать далее »

Redis: fork — Cannot allocate memory, Linux, виртуальная память и vm.overcommit_memory

27 августа 2019
 

 Cейчас настраиваю Redis как кеширующий сервис приложения, и среди прочего встал вопрос — надо ли включать vm.overcommit_memory в 1, или нет? Вопрос достаточно старый, см. История, но вот докопаться до сути, упорядочить и привести в читабельный вид удалось только сейчас. Проблема заключается в том, что официальная документация и практически все гайды/HowTo-шки по Redis достаточно легкомысленно… Читать далее »

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

18 июня 2019
 

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