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

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

AWS: RDS Proxy – обзор, запуск, тестирование

11 декабря 2021
 

 AWS RDS Proxy – сервис от AWS, позволяющий разгрузить сервера баз данных AWS RDS, в первую очередь за счёт переиспользования существующих подключений вместо открытия новых для выполнения запросов от клиентов. Кроме того, RDS Proxy улучшает failover при переключении упавшего инстанса на резервный, например – когда AWS RDS Aurora выполняет переключение read-replica на роль master, если… Читать далее »

AWS: Lambda – копирование тегов EC2 на EBS, часть 1 – Python и boto3

11 октября 2021
 

 Есть кластер AWS Elastic Kubernetes Service, у которого есть несколько WorkerNode Group, которые созданы как AWS AutoScaling Groups, всё создаётся через eksctl, см. AWS Elastic Kubernetes Service: — автоматизация создания кластера, часть 2 — Ansible, eksctl. Для WorkerNode Group в конфигурации eksctl прописан набор тегов, которые позволяют проводить инвентаризацию сервисов: — apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig… Читать далее »

Git: сканирование репозиториев с Gitleaks и запуск из Jenkins

12 августа 2021
 

 Утечка конфиденциальных данных, таких как пароли или RSA-ключи в репозиторий Github, даже в приватный – очень неприятное событие, и хотелось бы иметь представление о том, кто и что пушит в репозитории нашей Github-организации. Утилиты сканирования Для проверки репозиториев имеется достаточно много утилит: Gittyleaks – выглядит неплохо, но последнее обновление репозитория 2 года тому Repo Supervisor… Читать далее »

Kubernetes: Ingress, ошибка 502, readinessProbe и livenessProbe

11 ноября 2020
 

 Имеется приложение на Go, API-бекенд. Периодически начинает возвращать 502 ошибку, хотя сам под работает и в статусе Running. Что бы рассмотреть, как и почему Ingress и Service могут возвращать 502, и как работают readinessProbe и livenessProbe в Kubernetes Deployment – напишем простой веб-сервер на Go, в котором опишем два ендпоинта – один будет возвращать нормальный… Читать далее »

Jenkins: деплой Redis и Helm subchart values

29 октября 2020
 

 Задача – содать Jenkins джобу, которая будет деплоить Redis на Dev/Stage/Prod кластера. В посте Redis: Master-Slave репликация и запуск в Kubernetes сделали это вручную, посмотрели что и как вообще запускается и работает – теперь надо автоматизировать. Главный вопрос – как вообще деплоить и передавать параметры? Хочется использовать уже готовый чарт, но в тоже время –… Читать далее »

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… Читать далее »