Updates rtfm.co.ua 🇺🇦 – Telegram
Updates rtfm.co.ua 🇺🇦
723 subscribers
35 photos
457 links
Канал @rtfm - новые посты на https://rtfm.co.ua.
Обсуждения - группа @rtfmco https://t.me./rtfmco
Download Telegram
Calibre: домашняя онлайн-библиотека в браузере и Moon+ Reader

Calibre пользуюсь много лет, но всегда desktop-версией. На днях увидел Calibre Web – та же библиотека, работающая с той же базой, но доступна через браузер. Домашняя страница проекта в Github – тут>>>. Идея состоит в том, что бы по возможности уйти от хранения книг в Google Books, так как там нет нормальной возможности добавлять своё…

https://rtfm.co.ua/calibre-domashnyaya-onlajn-biblioteka-v-brauzere-i-moon-reader/
PHP: кеширование PHP-скриптов – настройка и тюнинг OpCache

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

https://rtfm.co.ua/php-keshirovanie-php-skriptov-nastrojka-i-tyuning-opcache/
Debian: php7.3-curl : Depends: libcurl3 (>= 7.44.0) but it is not installable

Имеется джоба в 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…

https://rtfm.co.ua/debian-php7-3-curl-depends-libcurl3-7-44-0-but-it-is-not-installable/
AWS: IAM AssumeRole – описание, примеры

AssumeRole – механизм аутентификации в AWS IAM, позволяющий получить временные данные доступа для выполнения запросов к ресурсам, к которым у вас нет доступа. Эти временные данные доступа состоят из привычных ACCESS и SECRET ключей, плюс security token. Одним из примеров AssumeRole может быть Jenkins в EC2, джобы которого могут выполнять операции в AWS-аккаунте, используя EC2…

https://rtfm.co.ua/aws-iam-assumerole-opisanie-primery/
Kubernetes: запуск push-сервера Gorush в EKS за AWS LoadBalancer

Gorush – сервер, написанный на Go, для отправки пуш-уведомлений на мобильные. Запускать будем в AWS EKS, в отдельном namespace, при этом сервис должен быть доступен толкьо внутри VPC, поэтому используем AWS Internal Application Load Balancer. Запуск Gorush Namespace Клонируем репозиторий: git clone https://github.com/appleboy/gorushcd gorush/k8s/ Создаём пространство имён gorush и confgiMap, который будет использоваться сервисом для получения настроек подключения…

https://rtfm.co.ua/kubernetes-zapusk-push-servera-gorush-v-eks-za-aws-loadbalancer/
Kubernetes: ConfigMap и Secrets – auto-reload данных в подах

Имеется ConfigMap для Gorush сервиса (см. Kubernetes: запуск push-сервера Gorush в EKS за AWS LoadBalancer). Проблема заключается в том, что при изменении данных в ConfigMap или Secrets – они не будут сразу отображены в подах и их контейнерах. Есть несколько костылей типа монтирования в виде volume, а потом ремаунтить разделы, или каждый раз создавать новый…

https://rtfm.co.ua/kubernetes-configmap-i-secrets-auto-reload-dannyx-v-podax/
PHP: PHP-FPM игнорирует переменные – решения

Имеется 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 ... Значение…

https://rtfm.co.ua/php-php-fpm-ignoriruet-peremennye-resheniya/
Kubernetes: ConfigMaps и Secrets на примере Gorush сервера

Имеется Gorush сервер, запущенный в предыдущем посте, к которому теперь хочется добавить возможность добавления своего файла настроек – для Staging с одними данными, и для Production – с другими. Используем Kubernetes ConfigMap для хранения содержимого файлов настроек Gorush, которые потом покдлючим внутрь запускаемых подов и их контейнеров, и Secrets – для конфиденциальных данных. Сейчас в…

https://rtfm.co.ua/kubernetes-configmaps-i-secrets-na-primere-gorush-servera/
Kubernetes: запуск metrics-server в AWS EKS для Kubernetes Pod AutoScaler

Предполагается, что AWS EKS уже создан, и имеет рабочие ноды. Ниже – выполним настройку подключения к кластеру, создадим тестовый деплоймент с HPA – Kubernetes Horizontal Pod AutoScaler (опишу отдельным постом), и попробуем получить данные об используемых ресурсах с помощью kubectl top. Kubernetes cluster Создаём тестовый кластер: eksctl create cluster --profile arseniy --region us-east-2 --name eks-dev-1...[]  node "ip-192-168-54-141.us-east-2.compute.internal" is ready[]  node "ip-192-168-85-24.us-east-2.compute.internal" is ready[]  kubectl command should work with "/home/setevoy/.kube/config", try 'kubectl get nodes'[]  EKS cluster "eks-dev-1" in "us-east-2" region is ready Переключаемся на него. Kubernetes cluster context Настраиваем kubectl:…

https://rtfm.co.ua/kubernetes-zapusk-metrics-server-v-aws-eks-dlya-kubernetes-pod-autoscaler/
Linux: PHP-FPM, Docker, STDOUT и STDERR – нет логов приложения

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

https://rtfm.co.ua/linux-php-fpm-docker-stdout-i-stderr-net-logov-prilozheniya/
Redis: “psync scheduled to be closed ASAP for overcoming of output buffer limits” и client-output-buffer-limit

Имеется Redis-кластер с Sentinel, см. Redis: репликация, часть 2 — Master-Slave репликация, и Redis Sentinel, Redis: fork — Cannot allocate memory, Linux, виртуальная память и vm.overcommit_memory и Redis: основные параметры конфигурации и тюнинг производительности. Система работала отлично долгое время, пока мы не начали использовать кеш намного более активно. Redis info Проверить все ключи в базах можно…

https://rtfm.co.ua/redis-psync-scheduled-to-be-closed-asap-for-overcoming-of-output-buffer-limits-i-client-output-buffer-limit/
Linux: настройка gnome-keyring в роли Freedesktop SecretService

Сейчас у меня KeePass используется как менеджер паролей, хранилище RSA-ключей и в роли Freedesktop SecretService, см. пост KeePass: настройка MFA, хранение паролей браузера, паролей SSH ключей и интеграция Secret Service. Первая проблема применения KeePass в роли SecretService заключается в том, что у меня его база синхронизируется между компьютерами (просто хранится в Dropbox), и он каждый…

https://rtfm.co.ua/linux-nastrojka-gnome-keyring-v-roli-freedesktop-secretservice/
AWS: CloudFormation – вложенные стеки и Import/export параметров

Вложенные стеки (Nested Stacks) в CloudFormation – это стеки, которые создаются из другого, “родительского”, стека используя AWS::CloudFormation::Stack. Основная идея использования вложенных стеков – избежать необходимости писать новый шаблон для ресурса, который используется в нескольких стеках. Вместо этого – шаблон создаётся один раз, хранится в AWS S3 корзине, и при создании стеков – вы просто ссылаетесь…

https://rtfm.co.ua/aws-cloudformation-vlozhennye-steki-i-import-export-parametrov/
Prometehus: мониторинг AWS Billing

Задача – иметь перед глазами график в Grafana, который будет отображать расходы на AWS. Есть два варианта – использовать експортер от Prometheus – prom/cloudwatch-exporter, или самописный от nachomillangarcia – prometheus_aws_cost_exporter. Первый собирает метрики от AWS CloudWatch, в которые данные по биллингу поступают только на следующий день. Второй написан на Python, ходит к AWS API, получает…

https://rtfm.co.ua/prometehus-monitoring-aws-billing/
Linux: создание coredump памяти процесса, Debian и systemd-coredump

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

https://rtfm.co.ua/linux-sozdanie-coredump-pamyati-processa-debian-i-systemd-coredump/
WordPress: использование дочерних тем оформления блога

На RTFM с 2016 года используется тема оформления Iconic One (см. RTFM: переезд и смена оформления), но с небольшими изменениями – добавлено отображение дата публикации поста, просмотры, всякие счётчики, правки в CSS темы. Iconic One постоянно развивается и обновляется, и после каждого апдейта приходится все изменения вносить заново – у меня даже есть пост, в…

https://rtfm.co.ua/wordpress-ispolzovanie-dochernix-tem-oformleniya-bloga/
Kubernetes: знакомство, часть 5 — RBAC авторизация и примеры Role и RoleBinding

Задача – создать пользователя, у которого будет возможность проверять состояние подов и читать их логи – ко всем другим операциям доступа быть не должно. AWS EKS использует AWS IAM для аутентификации в в Kubernetes-кластере (см. пост Kubernetes: знакомство, часть 4 — аутентификация в AWS EKS, aws-iam-authenticator и AWS IAM), но для авторизации, т.е. определения конкретных…

https://rtfm.co.ua/kubernetes-znakomstvo-chast-5-rbac-avtorizaciya-i-primery-role-i-rolebinding/
Kubernetes: запуск ALB Ingress controller для AWS Elastic Kubernetes Service

AWS ALB Ingress Controller for Kubernetes – контроллер Kubernetes, который управляет соданием Application Load Balancer (ALB) при создании в кластере ресурса типа Ingress с аннотацией вида kubernetes.io/ingress.class: alb. Ingress-ресурс в свою очередь определяет настройки ALB для роутинга HTTP или HTTPS трафика к различным подам кластера. Документация: https://kubernetes.io/docs/concepts/services-networking/ingress/ https://github.com/kubernetes-sigs/aws-alb-ingress-controller https://aws.amazon.com/ru/blogs/opensource/kubernetes-ingress-aws-alb-ingress-controller/ Contents Ingress controller typeseksctl – create…

https://rtfm.co.ua/kubernetes-zapusk-alb-ingress-controller-dlya-aws-elastic-kubernetes-service/
S.M.A.R.T: проверка HDD – описание атрибутов, значение атрибутов, утилиты, параметры

Решил проверить диск дома, помнил, что был пост по smartctl – но не ожидал, что он такой толковый (хотя вся информация натырена из других источников, ссылки в конце поста). Ну, или мне кажется таким. В любом случае – незапланированно решил его “перевыпустить” с небольшими обновлениями. Оригинал тут>>>, февраль 2013 года. Contents Обзорsmartctl self-testМодель дискаЗдоровье дискаИнтерпретация…

https://rtfm.co.ua/s-m-a-r-t-proverka-hdd-opisanie-atributov-znachenie-atributov-utility-parametry-2/
AWS: Elastic Kubernetes Service – автоматизация создания кластера, часть 1 – CloudFormation

Задача: продумать автоматизацию развёртывания AWS Elastic Kubernetes Service кластера. Используем: Ansible: для автоматизации создания CloudFormation стеков и запуска eksctl с нужными параметрами CloudFormation с NestedStacks: для создания инфрастуктуры – VPC, подсетей, SecurityGroups, IAM-роли, etc eksctl: для создания самого кластера, используя ресурсы, созданные CloudFormation Идея заключается в следующем: Ansible использует модуль cloudformation , создаёт инфрастуктуру используя Outputs…

https://rtfm.co.ua/aws-elastic-kubernetes-service-avtomatizaciya-sozdaniya-klastera-chast-1-cloudformation/
AWS: Elastic Kubernetes Service – автоматизация создания кластера, часть 2 — Ansible, eksctl

Первая часть – AWS: Elastic Kubernetes Service – автоматизация создания кластера, часть 1 – CloudFormation. Напомню, что общая идея заключается в следующем: Ansible использует модуль cloudformation , создаёт инфрастуктуру используя Outputs созданного стека CloudFormation – Ansible из шаблона генерирует файл настроек для eksctl Ansible вызывает eksctl, передавая ему конфиг кластера, и создаёт или обновляет кластер Запускаться…

https://rtfm.co.ua/aws-elastic-kubernetes-service-avtomatizaciya-sozdaniya-klastera-chast-2-ansible-eksctl/