RTFM: Linux, DevOps та системне адміністрування
2016–2026
1,491 posts
2026 125
October 2026
- Kubernetes: a “Detective Work” with the OOM Killer, Linux cgroups, and cAdvisor container_memory
- Kubernetes: “детектив” з OOM Killer, Linux cgroups та cAdvisor container_memory
- Arseny та “Український прожар” від ChatGPT
- Starlink: Installation, Activation, Registration, and Connecting to Wi-Fi
- Starlink: встановлення, активація та реєстрація в ЦНАП, підключення до WiFi
- PHP: PHP2Shell – CVE-2026-109618 and CVE-2026-109619, Temporary Fix
- PHP: PHP2Shell – CVE-2026-109618 та CVE-2026-109619, тимчасовий фікс
- RTFM: TeamUpdraft (UpdraftPlus) and WordPress Hack on the RTFM Blog
- RTFM: злам TeamUpdraft (UpdraftPlus) та WordPress з блогом RTFM
- Підготовка до зими 2026-2027: “And So It Begins” – готуємось до зими і блекаутів
- LiteLLM: PostgreSQL Failed Requests, AWS RDS, and “Manual Debugging”
- LiteLLM: PostgreSQL Failed Requests, AWS RDS та “ручний дебаг”
September 2026
- AI: LLMs, Agents, Work, and Us – Engineers. Personal Thoughts.
- AI: LLM, агенти, робота і ми – інженери. Особисті думки.
- AI: LLM Spend Control with LiteLLM Budgets and OpenAI Limits
- AI: контроль витрат LLM з LiteLLM Budgets та OpenAI Limits
- LiteLLM: Debugging AI Cost Monitoring with VictoriaMetrics
- LiteLLM: дебаг AI Cost Monitoring з VictoriaMetrics
- LiteLLM: Custom Callbacks and LLM Evaluations with Judge LLM
- LiteLLM: Custom Callback та LLM Evaluations з Judge LLM
- LiteLLM: Custom Callback for Traffic Mirroring and OTel Tracing to VictoriaTraces
- LiteLLM: Custom Callback для traffic mirroring та OTel tracing до VictoriaTraces
August 2026
- LiteLLM: Traffic Mirroring, Batch Completions, and Traffic to Two Providers
- LiteLLM: Traffic Mirroring та Batch Completions і трафік до двох провайдерів
- llama.cpp: Metrics and Monitoring with VictoriaMetrics
- llama.cpp: метрики та моніторинг з VictoriaMetrics
- Ubuntu: Installing NGINX with TLS Certificate from Let’s Encrypt and AWS Route 53
- Ubuntu: установка NGINX та TLS-сертифікат з Let’s Encrypt та AWS Route53
- LiteLLM: Metrics, Traces, and Debugging exception_class=”ValueError”
- LiteLLM: метрики, traces та дебаг exception_class=”ValueError”
- NixOS: Getting Started, Installing Packages, and Configuring the System
- NixOS: знайомство, установка пакетів та конфігурація системи
July 2026
- LiteLLM: OpenRouter Integration and Fallbacks Configuration
- LiteLLM: OpenRouter та налаштування Fallbacks
- MongoDB: run in Kubernetes with MongoDB Operator and MongoDBCommunity CRD
- MongoDB: запуск в Kubernetes з MongoDB Operator та MongoDBCommunity CRD
- Valkey: Deployment in Kubernetes – Helm, Monitoring, ACL
- Valkey: запуск в Kubernetes – Helm, monitoring, ACL
- LiteLLM: Monitoring with VictoriaMetrics – Alerts and Grafana
- LiteLLM: моніторинг з VictoriaMetrics – алерти та Grafana
- LiteLLM: Metrics, Traces, and VictoriaMetrics Stack Integration
- LiteLLM: метрики, traces та інтеграція з VictoriaMetrics Stack
June 2026
- LiteLLM: AI Gateway on Kubernetes and Metrics in VictoriaMetrics
- LiteLLM: AI Gateway в Kubernetes та метрики до VictoriaMetrics
- Claude Code: Monitoring with OpenTelemetry and VictoriaMetrics
- Claude Code: моніторинг з OpenTelemetry та VictoriaMetrics
- LiteLLM: AI Gateway for LLMs – Features Overview
- LiteLLM: AI Gateway для LLM – overview можливостей
May 2026
- MikroTik: User Management, access permissions, and SSH
- MikroTik: Users Management, права доступа та SSH
- VictoriaTraces: Recording Rules, Metrics, and Alerts from Trace Spans
- VictoriaTraces: Recording Rules, метрики та алерти з trace spans
- Arch Linux: a DNS Mystery – VPN, systemd-resolved, and Unbound
- Arch Linux: DNS-детектив – VPN, systemd-resolved та Unbound
- VictoriaTraces: Tracing, Observability, and OpenTelemetry
- VictoriaTraces: Tracing, Observability та OpenTelemetry
- OpenTelemetry: OTel Collectors in Kubernetes and VictoriaMetrics Stack integration
- OpenTelemetry: OTel Collectors в Kubernetes та інтеграція з VictoriaMetrics stack
- Arch Linux: WireGuard Peer for Connecting to MikroTik
- Arch Linux: WireGuard Peer для підключення до MikroTik
- FreeBSD: Jails Networking and Container Management with Bastille
- FreeBSD: Jails networking та менеджмент контейнерів з Bastille
- Hermes Agent: Running an AI Agent in a FreeBSD Jail with Bastille
- Hermes Agent: запуск AI Agent у FreeBSD Jail з Bastille
April 2026
- Claude Code: creating Kubernetes debugging AI Agent for VictoriaMetrics
- Claude Code: створення Kubernetes debugging AI Agent для VictoriaMetrics
- Okta: Integration with Google Workspaces, Part 1 – Provisioning
- Okta: інтеграція з Google Workspaces, частина 1 – Provisioning
- SSL/TLS: Self-signed Certificate Authority for NGINX on FreeBSD
- SSL/TLS: self-signed Certificate Authority для NGINX на FreeBSD
March 2026
- AWS: Setting up Okta SSO with AWS IAM Identity Center
- AWS: налаштування Okta SSO з AWS IAM Identity Center
- FreeBSD: Configuring FEMP – NGINX, PHP-FPM, MariaDB
- FreeBSD: налаштування FEMP – NGINX, PHP-FPM, MariaDB
- VictoriaMetrics: Basic Monitoring for AWS, Linux, NGINX, and PHP
- VictoriaMetrics: базовий моніторинг AWS, Linux, NGINX та PHP
- Okta: Configuring Grafana SSO with OIDC and Role Mapping
- Okta: налаштування Grafana SSO з OIDC та Role mapping
- VictoriaMetrics: using vmalert and query() in alerts for different $value values
- VictoriaMetrics: vmalert та query() в алерті для різних $value
- AWS: Amazon Linux – Sending Email with Postfix via Gmail
- AWS: Amazon Linux відправка пошти з Postfix через Gmail
- AWS: Increasing the EBS volume size on an EC2 instance running Linux
- AWS: збільшення розміру EBS на EC2 з Linux
- AWS: ALB and Cloudflare – Configuring mTLS and AWS Security Rules
- AWS: ALB та Cloudflare – налаштування mTLS та AWS Security Rules
- AWS: Self-Managed EC2 NAT Gateway vs AWS Managed NAT
- AWS: Basic Infrastructure Setup for WordPress
- FreeBSD: Home NAS, Part 15: Automating Backups – scripts, rsync, rclone
- FreeBSD: Home NAS, Part 13: Planning Data Storage and Backups
- MikroTik: WireGuard VPN Setup and Linux Peer Configuration
- Backblaze: A First Look at B2 Cloud Storage
- FreeBSD: Home NAS, part 12: synchronizing data with Syncthing
- Raspberry Pi: first experience and installation of Raspberry Pi OS Lite
- Glance: setting up a self-hosted home page for your browser
- AWS: власний EC2 в ролі NAT Gateway замість AWS Managed NAT Gateway
- AWS: сетап базової інфраструктури для WordPress
- FreeBSD: Home NAS, part 15: автоматизація бекапів – скрипти, rsync, rclone
February 2026
- FreeBSD: Home NAS, part 14 – logs with VictoriaLogs and alerts with VMAlert
- FreeBSD: Home NAS, part 14 – логи з VictoriaLogs і алерти з VMAlert
- FreeBSD: Home NAS, part 13: планування зберігання даних та бекапів
- ilert: an alternative to Opsgenie – first impressions, Alertmanager, Slack
- ilert: альтернатива Opsgenie – перше знайомство, Alertmanager, Slack
- Backblaze: знайомство з B2 Cloud Storage – перші враження
- MikroTik: налаштування WireGuard та підключення Linux peers
- FreeBSD: Home NAS, part 12: синхронізація даних з Syncthing
- Raspberry Pi: перший досвід і установка Raspberry Pi OS Lite
- Glance: налаштування self-hosted home page для браузера
- FreeBSD: Home NAS, part 11 – extended monitoring with additional exporters
- FreeBSD: Home NAS, part 11 – extended моніторинг з додатковими експортерами
- FreeBSD: configuring DragonFly Mail Agent for the root user mail
- FreeBSD: налаштування DragonFly Mail Agent для пошти root
- FreeBSD: Home NAS, part 10 – monitoring with VictoriaMetrics and Grafana
- FreeBSD: Home NAS, part 10 – моніторинг з VictoriaMetrics та Grafana
January 2026
- MikroTik: First Look and Getting Started
- MikroTik: перше знайомство та Getting Started
- FreeBSD: Home NAS, part 9 – data backup to AWS S3 and Google Drive with rclone
- FreeBSD: Home NAS, part 9 – backup даних з rclone до AWS S3 та Google Drive
- Arch Linux: “mysterious” DNS timeouts and “in search of the Ethernet truth”
- Arch Linux: “містичні” таймаути з DNS та “в пошуках Ethernet-істини”
- FreeBSD: Home NAS, part 8 – NFS and Samba data backups using restic
- FreeBSD: Home NAS, part 8 – backup даних NFS та Samba з restic
- FreeBSD: Home NAS, part 7 – NFSv4 and use with Linux clients
- TCP/IP: SYN flood attack on the RTFM server, and “Hacker News hug of death”
- TCP/IP: SYN flood атака на сервер RTFM, та “Hacker News hug of death”
2025 100
December 2025
- FreeBSD: Home NAS, part 7 – NFSv4 та підключення до Linux
- SSH: sshd hardening on FreeBSD and Linux, and 1Password integration
- Arch Linux: pacman -Syu and “Failed to connect to system scope bus via local transport” errors
- Arch Linux: pacman -Syu та помилки “Failed to connect to system scope bus via local transport”
- SSH: sshd hardening на FreeBSD і Linux, та інтеграція з 1Password
- FreeBSD: Home NAS, part 6 – Samba server and client connections
- FreeBSD: Home NAS, part 6 – Samba server та підключення клієнтів
- FreeBSD: Home NAS, part 5 – ZFS pool, datasets, snapshots, and ZFS monitoring
- FreeBSD: Home NAS, part 4 – Local DNS with Unbound
- FreeBSD: Home NAS, part 3 – WireGuard VPN, Linux peer, and routing
- FreeBSD: Home NAS, part 2 – introduction to Packet Filter (PF) firewall
- FreeBSD: Home NAS, part 1 – configuring ZFS mirror (RAID1)
- FreeBSD: Installation on a ThinkPad X200 Tablet in 2025
- FreeBSD: Home NAS, part 5 – ZFS pool, datasets, snapshots та моніторинг
- FreeBSD: Home NAS, part 4 – локальний DNS з Unbound
- FreeBSD: Home NAS, part 3 – WireGuard VPN, Linux peer та routing
- FreeBSD: Home NAS, part 2 – знайомство з Packet Filter (PF) firewall
- FreeBSD: Home NAS, part 1 – налаштування ZFS mirror (RAID1)
- VictoriaMetrics: Recording rules for AWS Load Balancer logs
- Golang: writing an AWS Load Balancer logs collector for VictoriaLogs
- VictoriaMetrics: Recording Rules для логів AWS Load Balancer
November 2025
- FreeBSD: установка на ThinkPad X200 Tablet у 2025 році
- Golang: interfaces – the “magic” of calling methods through interface
- Golang: запис логів AWS Loab Balancer до VictoriaLogs
- Golang: creating OpenAI Exporter for VictoriaMetrics
- Golang: інтерфейси, типи та методи на прикладі io.Copy()
- Golang: створення OpenAI Exporter для VictoriaMetrics
- Golang: interfaces – “магія” виклику методів через інтерфейси
- VictoriaMetrics: Churn Rate, High cardinality, metrics, and IndexDB
- Kubernetes: monitoring processes with process-exporter
- AWS: Monitoring AWS OpenSearch Service cluster with CloudWatch
- VictoriaMetrics: Churn Rate, High cardinality, метрики та IndexDB
October 2025
- InfluxDB: запуск на Debian з NGINX і підключення Grafana
- InfluxDB: знайомство і основні можливості
- Arize Phoenix: сервіс моніторингу LLM – запуск в Kubernetes
September 2025
- Kubernetes: моніторинг процесів з process-exporter
- Terraform: creating an AWS OpenSearch Service cluster and users
- AWS: моніторинг AWS OpenSearch Service кластеру з CloudWatch
- Terraform: using Ephemeral Resources and Write-Only Attributes
- Terraform: створення AWS OpenSearch Service cluster та юзерів
- AWS: introduction to the OpenSearch Service as a vector store
- AWS: creating an OpenSearch Service cluster and configuring authentication and authorization
- Arch Linux: installing and configuring KDE Plasma in 2025
- VictoriaLogs: “rate limit exceeded” and monitoring ingested logs
- Terraform: використання Ephemeral resources та Write-only attributes
August 2025
- AWS: створення OpenSearch Service cluster та налаштування аутентифікації і авторизації
- AWS: знайомство з OpenSearch Service в ролі vector store
- Arch Linux: установка і налаштування KDE Plasma у 2025
- VictoriaLogs: “rate limit exceeded” і моніторинг ingested logs
- Terraform: AWS EKS Terraform module update from version 20.x to version 21.
- Terraform: “no available releases match the given constraints
- Terraform: апгрейд модуля AWS EKS Terraform module v20.x на v21.x
July 2025
- Terraform: “no available releases match the given constraints”
- Kubernetes: PVC in StatefulSet, and the “Forbidden updates to statefulset spec” error
- Kubernetes: Kubernetes API, API groups, CRDs, and the etcd
- Kubernetes: what are the Kubernetes Operator and CustomResourceDefinition
- Kubernetes: Pod resources.requests, resources.limits, and Linux cgroups
- TCP/IP: OSI and TCP/IP models, TCP packets, Linux sockets and ports
- Kubernetes: що таке Kubernetes Operator та CustomResourceDefinition
- Kubernetes: PVC в StatefulSet та помилка “Forbidden updates to statefulset spec”
- Kubernetes: Kubernetes API, API Groups, CRD та etcd
- VictoriaMetrics: fixing the “no matches for kind VMAnomaly” error
- VictoriaMetrics: фікс помилки “no matches for kind VMAnomaly”
- Arch Linux: linux-firmware-nvidia: /usr/lib/firmware/nvidia/ exists in filesystem
- Arch Linux: linux-firmware-nvidia: /usr/lib/firmware/nvidia/ exists in filesystem
- Kubernetes: 503 errors with AWS ALB possible causes and solutions
- Arch Linux: install in 2025 – partitions, encryption, and manual system installation
- VictoriaMetrics: migrating VMSingle and VictoriaLogs data between Kubernetes cluster
- Kubernetes: Pod resources.requests, resources.limits та Linux cgroups
June 2025
- TCP/IP: моделі OSI та TCP/IP, TCP-пакети, Linux sockets і порти
- VictoriaMetrics: міграція даних VMSingle та VictoriaLogs між кластерами Kubernetes
- Kubernetes: помилки 503 з AWS ALB – можливі причини та рішення
- Terraform: using import, and some hidden pitfalls
- Terraform: використання import, та деякі неочевидні нюанси
- Terraform: data types, loops, indexes, and the “resource must be replaced” issue
- Terraform: типи даних, цикли, індекси, та “resource must be replaced”
May 2025
- AI: Introduction to Ollama for local LLM launch
- AI: знайомство з Ollama для локального запуску LLM
- Arch Linux: установка у 2025 – диски, шифрування, встановлення системи
- AI: writing an MCP server for VictoriaLogs
- AI: What is the MCP?
- Python: introduction to the Celery, and its monitoring configurations
- Python: introduction to @decorators using FastAPI as an example
- Kubernetes: find a directory with a mounted volume in a Pod on its host
- Nexus: Configuring Docker proxy repository, and ContainerD in Kubernetes
- Nexus: launch in Kubernetes, and PyPI caching repository configuration
- AI: пишемо MCP-сервер для VictoriaLogs
- AI: що таке той MCP?
April 2025
March 2025
- Python: знайомство з декораторами на прикладі FastAPI
- Kubernetes: знайти каталог з mounted volume в Pod на хості
- Nexus: налаштування Docker proxy repository та ContainerD в Kubernetes
- Arch Linux: підключення розділів LVM та запуск mkinitcpio
February 2025
- PostgreSQL: using EXPLAIN and setting up “auto_explain” in AWS RDS
- PostgreSQL: використання EXPLAIN та налаштування “auto_explain” в AWS RDS
- PostgreSQL: AWS RDS Performance and monitoring
- PostgreSQL: AWS RDS Performance and monitoring
January 2025
2024 70
December 2024
- Kubernetes: a single AWS Load Balancer for different Kubernetes Ingresses
- Nexus: running in Kubernetes, and setting up a PyPI caching repository
- Vector.dev: introduction, AWS S3 logs, and integration with VictoriaLogs
- Vector.dev: знайомство, логи з AWS S3 та інтеграція з VictoriaLogs
- Nexus: запуск в Kubernetes та налаштування PyPi caching repository
- VictoriaLogs: a Grafana dashboard for AWS VPC Flow Logs – migrating from Grafana Loki
- AWS: VPC Flow Logs – logs to S3 and Grafana dashboard with Loki
- VictoriaLogs: дашборда в Grafana з AWS VPC Flow Logs – мігруємо з Grafana Loki
November 2024
- Підготовка до зими 2024-2025: частина 2 – готуємо оселю до блекаутів
- Kubernetes: єдиний AWS Load Balancer для різних Kubernetes Ingress
- AWS: VPC Flow Logs – логи до S3 та Grafana dashboard з Loki
October 2024
- GitHub Actions: running the Actions Runner Controller in Kubernetes
- Karpenter: an introduction to the Disruption Budgets
- VictoriaMetrics Cloud: integration with AWS Data Firehose for CloudWatch metrics
September 2024
- GitHub Actions: запуск Actions Runner Controller в Kubernetes
- VictoriaMetrics Cloud: інтеграція з AWS Data Firehose для CloudWatch метрик
- Karpenter: використання Disruption budgets
- VictoriaLogs: an overview, run in Kubernetes, LogsQL, and Grafana
- VictoriaLogs: знайомство, запуск в Kubernetes, LogsQL та Grafana
August 2024
- AWS: Kubernetes and External Secrets Operator for AWS Secrets Manager
- AWS: IAM Access Analyzer policy generation – create an IAM Policy
- Terraform: managing EKS Access Entries and EKS Pod Identities
- AWS: Kubernetes та External Secrets Operator для AWS Secrets Manager
July 2024
- AWS: IAM Access Analyzer policy generation – створення IAM Policy
- Terraform: менеджмент EKS Access Entries та EKS Pod Identities
- Terraform: EKS and Karpenter version upgrade 19.21 to 20.0
- Terraform: EKS та Karpenter – upgrade версії модуля з 19.21 на 20.0
- EcoFlow: monitoring with Prometheus and Grafana
- AWS: Kubernetes and Access Management API, the new authentication in EKS
- AWS: RDS IAM database authentication, EKS Pod Identities, and Terraform
- EcoFlow: моніторинг з Prometheus та Grafana
- AWS: Kubernetes та Access Management API – нова схема авторизації в EKS
June 2024
- Підготовка до зими 2024-2025: частина 1 – ДБЖ, інвертори, та акумулятори
- AWS: RDS з IAM database authentication, EKS Pod Identities та Terraform
- AWS: Cost optimization – an overview of Bills, Cost Explorer, and the costs control
- Kubernetes: containers, and the “lost” SIGTERM signals
- Kubernetes: monitoring Events with kubectl and Grafana Loki
- AWS: Karpenter and SSH for Kubernetes WorkerNodes
- Pritunl: launching a VPN in AWS on EC2 with Terraform
- Kubernetes: контейнери та “загублений” SIGTERM
- Kubernetes: моніторинг Events з kubectl та Grafana Loki
- AWS: Karpenter та SSH для Kubernetes WorkerNodes
May 2024
- Pritunl: запуск VPN в AWS на EC2 з Terraform
- Renovate: GitHub, and Helm Charts versions management
- Dependabot: GitHub, and Terraform versions management
- Renovate: GitHub та Helm Charts versions management
- Dependabot: GitHub та Terraform versions management
- Helm: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
- Helm: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
- AWS: VPC Flow Logs, NAT Gateways, and Kubernetes Pods – a detailed overview
- AWS: VPC Flow Logs, NAT Gateways, та Kubernetes Pods – детальний обзор
April 2024
March 2024
- GitHub Actions: working with Reusable Workflows
- Arch Linux: фікс помилки “yay: error while loading shared libraries: libalpm.so.13”
- Arch Linux: fixing the “yay: error while loading shared libraries: libalpm.so.13” error
- GitHub Actions: використання Reusable Workflows – нюанси роботи
- GitHub Actions: Terraform deployments with a review of planned changes
- GitHub Actions: деплой Terraform з review запланованих змін
- Kubernetes: tracing requests with AWS X-Ray, and Grafana data source
- Kubernetes: tracing запитів з AWS X-Ray та Grafana data source
February 2024
- AWS: VPC Prefix and the maximum of Pods on Kubernetes WorkerNodes
- AWS: VPC Prefix та максимальна кількість подів на Kubernetes WorkerNodes
- Terraform: creating a module for collecting AWS ALB logs in Grafana Loki
- Grafana Loki: LogQL and Recording Rules for metrics from AWS Load Balancer logs
- Terraform: створення модулю для збору логів AWS ALB в Grafana Loki
- Karpenter: its monitoring, and Grafana dashboard for Kubernetes WorkerNodes
- Grafana Loki: LogQL та Recoding Rules для метрик з логів AWS Load Balancer
- Arduino: запуск Arduino IDE на Linux, та перший “Hello, World!”
- Arduino: перше знайомство та мій Arduino Starter Kit
- Karpenter: моніторинг та Grafana dashboard для Kubernetes WorkerNodes
2023 123
December 2023
- AWS: EKS Pod Identities – a replacement for IRSA? Simplifying IAM access management
- AWS: EKS Pod Identities – заміна IRSA? Спрощуємо менеджмент IAM доступів
- AWS: CloudWatch – Multi source query: collecting metrics from an external Prometheus
- AWS: CloudWatch – Multi source query: збираємо метрики із зовнішнього Prometheus
- AWS: Amazon Q – an overview, features, and first impressions
- AWS: Amazon Q – знайомство, можливості та перші враження
November 2023
- AWS Elastic Kubernetes Service: RBAC Authorization via AWS IAM and RBAC Groups
- Grafana Loki: collecting AWS LoadBalancer logs from S3 with Promtail Lambda
- Kubernetes: ensuring High Availability for Pods
- Kubernetes: забезпечення High Availability для Pods
- Kubernetes: Liveness and Readiness Probes – Best practices
- VictoriaMetrics: pushing metrics without Prometheus Pushgateway
- Grafana Loki: збираємо логи AWS LoadBalancer з S3 за допомогою Promtail Lambda
- Kubernetes: Liveness та Readiness Probes – Best practices
- VictoriaMetrics: Exporter в CronJob та пуш метрік без Pushgatway
- Karpenter: the Beta version – an overview of changes, and upgrade from v0.30.0 to v0.32.1
- Karpenter: Beta version – обзор змін та upgrade v0.30.0 на v0.32.1
October 2023
- GitHub Actions: Docker build to AWS ECR and Helm chart deployment to AWS EKS
- GitHub Actions: Docker-білд в AWS ECR та деплой Helm-чарту в AWS EKS
September 2023
- Terraform: terraform_remote_state – getting Outputs from other state-files
- GitHub Actions: deploying Dev/Prod environments with Terraform
- Terraform: створення Lambda-функцій у VPC
- Terraform: terraform_remote_state – отримання outputs інших state-файлів
- GitHub Actions: деплой Dev/Prod оточень з Terraform
- Slack: switch back to the old experience (UI and theme)
- Terraform: building EKS, part 4 – installing controllers
- Terraform: building EKS, part 3 – Karpenter installation
- Terraform: “One Ring to rule them all!” – управління бекендами проектів
- Terraform: створення EKS, частина 4 – установка контролерів
- Terraform: створення EKS, частина 3 – установка Karpenter
- Terraform: Building EKS, part 2 – an EKS cluster, WorkerNodes, and IAM
- RTFM: How and why is this blog written?
- Terraform: Building EKS, part 1 – VPC, Subnets and Endpoints
- RTFM: як і для чього пишеться цей блог?
- Terraform: count, for_each, and for loops
- Terraform: introduction to data types – primitives and complex
- Terraform: створення EKS, частина 2 – EKS кластер, WorkerNodes та IAM
- Terraform: створення EKS, частина 1 – VPC, Subnets та Endpoints
- Terraform: цикли count, for_each та for
- Terraform: знайомство з типами даних – primitives та complex
- Terraform: dynamic remote state with AWS S3 and multiple environments by directory
- Terraform: remote state with AWS S3, and state locking with DynamoDB
- RTFM: День народження – 12 років. Що нового?
August 2023
- Terraform: динамічний remote state з AWS S3 та multiple environments по директоріям
- Terraform: remote state з AWS S3 та state locking з DynamoDB
- VictoriaMetrics: VMAuth – Proxy, Authentication, and Authorization
- VictoriaMetrics: VMAuth – проксі, аутентифікація та авторизація
- AWS: Getting started with Karpenter for autoscaling in EKS, and its installation with Helm
- Kubernetes: Pods and WorkerNodes – control the placement of the Pods on the Nodes
- Grafana: values from records in Loki logs, and dual-Y-axes panels in Grafana
- Helm: multiple deployment of the same chart with Chart’s dependency
- Grafana Loki: performance optimization with Recording Rules, caching, and parallel queries
- AWS: Grafana Loki, InterZone traffic in AWS, and Kubernetes nodeAffinity
- AWS: знайомство з Karpenter для автоскейлінгу в EKS, та встановлення з Helm-чарту
- Kubernetes: Pods та WorkerNodes – контроль розміщення подів на нодах
- Grafana: values з записів в логах Loki, та dual-Y-axes графіки в Grafana
- Helm: multiple деплой одного чарта з Chart’s dependency
- Підготовка до зими 2023-2024: електрохарчування
- Grafana Loki: оптимізація роботи – Recording Rules, кешування та паралельні запити
- AWS: Grafana Loki, InterZone трафік в AWS, та Kubernetes nodeAffinity
July 2023
- Arch Linux: failed to mount on real root
- Arch Linux: failed to mount on real root
- VictoriaMetrics: deploying a Kubernetes monitoring stack
- AWS: CDK and Python – installing EBS CSI driver Add-On on EKS
- AWS: Kubernetes – AWS Secrets Manager and Parameter Store integration
- AWS: CDK and Python – configure an IAM OIDC Provider, and install Kubernetes Controllers
- AWS: CDK and Python – building an EKS cluster, and general impressions of CDK
- VictoriaMetrics: створення Kubernetes monitoring stack з власним Helm-чартом
- AWS: Kubernetes – інтеграція AWS Secrets Manager та Parameter Store
- AWS: CDK підключення EBS CSI driver Add-On до EKS
- AWS: CDK та Python, IAM OIDC Provider, та Kubernetes Controllers
- AWS: EKS, OpenID Connect, and ServiceAccounts
- AWS: EKS, OpenID Connect та ServiceAccounts
June 2023
- AWS: CDK – створення EKS з Python та загальні враження від CDK
- VictoriaMetrics: an overview and its use instead of Prometheus
- Prometheus: GitHub Exporter – creating own exporter for GitHub API
- VictoriaMetrics: знайомство та використання замість Prometheus
- Prometheus: GitHub Exporter – пишемо власний експортер для GitHub API
May 2023
- Loki: collecting logs from CloudWatch Logs using Lambda Promtail
- Terraform: planning a new project with Dev/Prod environments
- Loki: збір логів з CloudWatch Logs з використанням Lambda Promtail
- AWS: CDK – an overview, and Python examples
- Terraform: початок роботи та планування нового проекту – Dev/Prod та bootsrap
- AWS: CDK – знайомство та приклади на Python
- AWS: Fargate – capabilities, comparison with Lambda/EC2 and usage with AWS EKS
- AWS: Fargate – можливості, порівняння з Lambda/EC2 та використання з AWS EKS
- Kubernetes: vertical Pods scaling with Vertical Pod Autoscaler
April 2023
- Kubernetes: вертикальний скейлінг подів з Vertical Pod Autoscaler
- Prometheus: running Pushgateway on Kubernetes with Helm and Terraform
- Prometheus: запуск Pushgateway у Kubernetes з Helm та Terraform
- GitLab: gitlab-shell timeouts, and /metrics Connection refused
- AWS: security – Instance Metadata Service v1 vs IMDS v2, Kubernetes Pod and Docker containers
- AWS: Instance Metadata Service v1 vs IMDS v2 та робота з Kubernetes Pod і Docker контейнерів
- Knative: Serverless for Kubernetes – an overview and launch in Minikube
- Knative: Serverless для Kubernetes – огляд можливостей та запуск у Minikube
March 2023
- GitLab: gitlab-shell timeouts та /metrics Connection refused
- GitLab: monitoring – Prometheus, metrics, and Grafana dashboard
- Grafana Loki: LogQL for logs and creating metrics for alerts
- Grafana Loki: alerts from the Loki Ruler and labels from logs
- GitLab: моніторинг – Prometheus, метрики, та Grafana dashboard
- GitLab: міграція даних з GitLab cloud та процес backup-restore у self-hosted версії в Kubernetes
February 2023
- Prometheus: Building a Custom Prometheus Exporter in Python
- Kubernetes: збільшення Persistent Volume з PersistentVolumeClaim та volumeClaimTemplates
- Prometheus: створення Custom Prometheus Exporter на Python
- GitLab: Helm chart of values, dependencies, and deployment in Kubernetes with AWS S3
- GitLab: Helm-чарт values, залежності та деплой у Kubernetes з AWS S3
- GitLab: Helm-чарт values, зависимости и деплой в Kubernetes с AWS S3
- GitLab: Components, Architecture, Infrastructure, and Launching from the Helm Chart in Minikube
- GitLab: компоненты, архитектура, инфраструктура и запуск из Helm-чарта в Minikube
- GitLab: компоненти, архітектура, інфраструктура та запуск з Helm-чарту в Minikube
January 2023
- Kubernetes: Cluster Cost Monitoring – Kubernetes Resource Report and Kubecost
- Kubernetes: моніторинг вартості кластеру – Kubernetes Resource Report та Kubecost
- Kubernetes: мониторинг стоимости кластера – Kubernetes Resource Report и Kubecost
- Kustomize: managing Kubernetes manifests – an overview, and examples
- Kustomize: робота з маніфестами Kubernetes – огляд, приклади
- Kustomize: управление манифестами Kubernetes – обзор, примеры
- BASH: using functions, with examples
- BASH: використання циклів FOR, WHILE, UNTIL – приклади
- BASH: використання функцій, приклади
- BASH: using loops – for, while, until, with examples
- Підготовка до зими 2022-2023: інтернет, електрика, опалення, їжа та вода
- Grafana Loki: alerts from Ruler and labels from logs
- Grafana Loki: architecture and running in Kubernetes with AWS S3 storage and boltdb-shipper
2022 46
December 2022
- Grafana Loki: можливості LogQL для роботи з логами та створення метрик для алертів
- Grafana Loki: алерти з Ruler та labels з логів
- Grafana Loki: архітектура та запуск в Kubernetes з AWS S3 storage та boltdb-shipper
- Grafana Loki: алерты с Ruler и labels из логов
- Prometheus: Kubernetes endpoints monitoring with blackbox-exporter
- Terraform: modules, Outputs, and Variables
- Kubernetes: ServiceAccount from AWS IAM Role for Kubernetes Pod
- Prometheus: моніторинг ендпоінтів в Kubernetes з blackbox-exporter
November 2022
- Terraform: модулі, Outputs та Variables
- Kubernetes: ServiceAccount з AWS IAM Role для Kubernetes Pod
- Networking: when there is no power – ZTE 4G modem + external antenna
- Linux: saving laptop’s battery energy
- Linux: збереження заряду батареї ноутбуку
- Networking: коли немає світла – модем 4G ZTE + зовнішня антена
October 2022
- Google: прибрати сайти з .RU із результатів пошуку
- ФОП: податки для нубасів, ч3 – сплата податків ЄП та ЄСВ
- Pritunl: running VPN in Kubernetes
- Pritunl: запуск VPN в Kubernetes
- Pritunl: запуск VPN в Kubernetes
- Apache Druid: PostgreSQL as Metadata storage, and replace ZooKeeper with Kubernetes Extensions
- Kubernetes: Minikube, and a LoadBalancer in the Pending status
- Kubernetes: Minikube, и LoadBalancer в статусе Pending
- Apache Druid: PostgreSQL в роли metadata storage и замена ZooKeeper на Kubernetes extensions
- PostgreSQL: запуск в Kubernetes з PostgreSQL Operator и мониторинг с Prometheus
- Kubernetes: Minikube, та LoadBalancer в статусі “Pending”
- ФОП: податки для нубасів, ч2 – “ІТ- Експорт – документи до надходження”
September 2022
- PostgreSQL: PostgreSQL Operator for Kubernetes, and its Prometheus monitoring
- Apache Druid: PostgreSQL в ролі metadata storage, та заміна ZooKeeper на Kubernetes Extensions
- PostgreSQL: запуск в Kubernetes з PostgreSQL Operator та моніторинг з Prometheus
- ФОП: податки для нубасів, ч1 – вступ та відкриття рахунків Моно
- Apache Druid: огляд, запуск в Kubernetes та моніторинг з Prometheus
- Apache Druid: overview, running in Kubernetes and monitoring with Prometheus
- Apache Druid: обзор, запуск в Kubernetes и мониторинг с Prometheus
July 2022
June 2022
- AWS: VPC Flow Logs – знайомство та аналітика з CloudWatch Logs Insights
- AWS: VPC Flow Logs – описание и пример с CloudWatch Logs Insights
May 2022
- Arch Linux: pacman – error “HTTP server doesn’t seem to support byte ranges”
- Arch Linux: pacman – ошибка “HTTP server doesn’t seem to support byte ranges”
April 2022
- NGINX: IP Geolocation by Cloudflare and “nested” if conditions
- NGINX: IP Geolocation от Cloudflare и вложенные if
March 2022
- Cloudflare: speed up WordPress with Automatic Platform Optimization plugin
- Cloudflare: ускоряем работу WordPress с плагином Automatic Platform Optimization
- SSH: the “Too many authentication failures” error and its solution
- SSH: ошибка “Too many authentication failures” и её решение
February 2022
January 2022
2021 122
December 2021
- Prometheus: мониторинг сети с node_exporter – метрики сети CloudWatch и Docker –net=host
- AWS: RDS Proxy – обзор, запуск, тестирование
- Prometheus: мониторинг AWS Load Balancer Controller Controller в AWS EKS
November 2021
- RTFM: День рождения и годовщина – 10 лет. Обзор изменений.
- Linux: ошибки unknown filesystem type ‘LVM2_member’ и duplicate VG names или VG name is used by
- AWS: Trusted Advisor, part 2 – CloudWatch Alarms and Slack notifications
- AWS: Trusted Advisor, part 1 – its features overview
- Prometheus: Recording Rules и теги – разделяем алерты в Slack
- AWS: Trusted Advisor, часть 2 – алерты CloudWatch и уведомления в Slack
- AWS: Trusted Advisor, часть 1 – обзор возможностей
- AWS: Console – The Dark theme
- AWS: Console – тёмная тема оформления
- AWS: Cost optimization – services expenses overview and traffic costs in AWS
- AWS: Cost optimization – обзор Bills, Cost Explorer и контроль расходов
- AWS: Cost optimization – обзор расходов на сервисы и стоимость трафика в AWS
October 2021
- AWS: Lambda – copy EC2 tags to its EBS, part 2 – create a Lambda function
- AWS: Lambda – copy EC2 tags to its EBS, part 1 – Python and boto3
- AWS: Lambda – копирование тегов EC2 на EBS, часть 2 – создание Lambda-функции
- AWS: Lambda – копирование тегов EC2 на EBS, часть 1 – Python и boto3
- Kubernetes: Krew plugins manager, and useful kubectl plugins list
- AWS User group Ukraine: AWS Tech Conference
- AWS User group Ukraine: AWS Tech Conference
- Kubernetes: менеджер плагинов Krew и полезные плагины для kubectl
September 2021
- Linux: create Gif or record video from the screen
- Linux: записать gif или видео с экрана
- Kubernetes: Helm – “x509: certificate signed by unknown authority”, and ServiceAccount for Pod
- Kubernetes: Helm – “x509: certificate signed by unknown authority” и ServiceAccount для Pod
- AWS: disable TLS 1.0 and TLS 1.1 for Application LoadBalancer
- AWS: отключить TLS 1.0 и TLS 1.1 на Application LoadBalancer
- AWS: Cost Explorer – costs checking on the CloudWatch Logs example
- .NET Meetup Temabit
- .NET Meetup Temabit
- AWS: Cost Explorer – проверка расходов на примере CloudWatch Logs
August 2021
- Поездка в Kemer, Турция — фото
- AWS: Lambda functions – an overview, and integration with AWS API Gateway
- AWS: Lambda-функции – обзор и интеграция с AWS API Gateway
- Git: scan repositories for secrets using Gitleaks
- Git: сканирование репозиториев с Gitleaks и запуск из Jenkins
- Tableau: install Tableau Bridge to access a database server in a private network
- Tableau: установка Tableau Bridge для доступа к базам данных в приватных сетях
- Prometheus: prometheus_replica и дублирование метрик
July 2021
- Let’s Encrypt: SSL and the “SERVFAIL looking up CAA for domain.com” error
- Let’s Encrypt: SSL и ошибка SERVFAIL looking up CAA for domain.com
- AWS: Route53 Private Hosted Zones — hiding domains from the Internet
- AWS: Route53 Private Hosted Zones – прячем домены от мира
- AWS: WAF WebACL logging and Logz.io integration
- AWS: WAF WebACL логи и Logz.io
- AWS: Web Application Firewall overview, configuration, and its monitoring
- AWS: обзор и настройка Web Application Firewall и его мониторинга
- AWS: CloudTrail overview and integration with CloudWatch and Opsgenie
- AWS: Simple Email Service Bounce rate and monitoring with and Prometheus
- AWS: миграция AWS ALB Ingress Controller (v1) на AWS Load Balancer Controller (v2)
- Kubernetes: Deployment Strategies types, and Argo Rollouts
- AWS User Group Ukraine: AWS CloudFormation && AWS X-Ray Meetup
June 2021
- AWS: CloudTrail – обзор и интеграция с CloudWatch и Opsgenie
- AWS: интеграция AWS SNS и Slack, и уведомления от AWS SES о bounced-письмах
- AWS Hero: June, 2021 announce
- AWS Hero: анонс June, 2021.
- AWS: мониторинг Simple Email Service с CloudWatch и Prometheus
- DevOps IT Ring
- DevOps IT Ring
- DevSecOps Build-up from Cloud Builders
- DevSecOps Build-up от Cloud Builders
May 2021
- Поездка в Punta Cana, Dominikana — фото
- Kubernetes: типы Deployment Strategies и Argo Rollouts
- ArgoCD: declarative Projects, Applications, and ArgoCD deploy from Jenkins
- ArgoCD: декларативные Projects, Applications и деплой ArgoCD из Jenkins
- ArgoCD: Okta integration, and user groups
- ArgoCD: users, access, and RBAC
- ArgoCD: интеграция с Okta и группы пользователей
- ArgoCD: пользователи, доступы и RBAC
- Github: Github Actions overview and ArgoCD deployment example
- Github: обзор Github Actions и деплой с ArgoCD
- Kubernetes: spec.ports[0].nodePort: Forbidden: may not be used when `type` is ‘ClusterIP’
April 2021
- Istio: shared Ingress/AWS ALB, Helm chart with conditions, Istio, and ExternalDNS
- Kubernetes: spec.ports[0].nodePort: Forbidden: may not be used when `type` is ‘ClusterIP’
- Istio: a cause and solution of the “SQLSTATE Connection refused”
- Kubernetes: metrics-server – “401 Unauthorized” amd “kubelet stopped posting node status”
- Istio: external AWS Application LoadBalancer and Istio Ingress Gateway
- Istio: причина и решения ошибки “SQLSTATE Connection refused”
- Kubernetes: metrics-server – 401 Unauthorized и kubelet stopped posting node status
- Kubernetes: NodeLocal DNS and the “lookup istiod.istio-system.svc on lookup: no such host” error
- Kubernetes: NodeLocal DNS и ошибка “lookup istiod.istio-system.svc on lookup: no such host”
- AWS: cost optimization – purchasing RDS Reserved Instances
- AWS: оптимизация расходов – покупка и анализ RDS Reserved Instances
- Istio: общий Ingress/AWS ALB, Helm-чарт с условиями, Istio и ExternalDNS
- DevOps Days Kyiv 2021
- DevOpsDays Kyiv 2021
- Istio: an overview and running Service Mesh in Kubernetes
- Kubernetes: ExternalDNS – records retrieval failed: failed to list hosted zones: Throttling: status code: 400
- Kubernetes: ExternalDNS – records retrieval failed: failed to list hosted zones: Throttling: status code: 400
- Kubernetes: Cluster Autoscaler – failed to renew lease
- Prometheus: ошибки “federation failed: broken pipe” и “Received SIGTERM, exiting gracefully” – постоянные рестарты
- Kubernetes: Cluster Autoscaler: failed to renew lease
- Kubernetes: namespace hangs in Terminating and metrics-server non-obviousness
- Istio: установка с Ansible и Helm
March 2021
- Istio: интеграция Ingress Gateway с AWS Application LoadBalancer
- Istio: обзор и запуск service mesh в Kubernetes
- Kubernetes: namespace висит в Terminating и неочевидности с metrics-server
- Opsgenie: integration with AWS RDS and alerting
- Opsgenie: интеграция с AWS RDS и алерты
- Windows: Windows Subsystem for Linux and Ubuntu Linux installation
- Windows: Windows Subsystem for Linux и установка Ubuntu Linux
- Kubernetes: what is Endpoints
- Kubernetes: что такое Endpoints
- AWS: InvalidSignatureException: Signature not yet current and Kubernetes AWS ALB Ingress controller
- AWS: InvalidSignatureException: Signature not yet current и Kubernetes AWS ALB Ingress controller
- OpsGenie: настройка Incidents и Incidents Management проекта в целом
February 2021
- Jenkins: running workers in Kubernetes and Docker images build
- Jenkins: запуск slaves в Kubernetes и билд Docker-образов
- Kubernetes: NGINX/PHP-FPM graceful shutdown and 502 errors
- Kubernetes: NGINX/PHP-FPM graceful shutdown – избавляемся от 502 ошибок
- Yandex.Tank: load testing tool – an overview, configuration, and examples
- Yandex.Tank: нагрузочное тестирование
- Linux: Mutt и Neomutt – консольный почтовый клиент
- Linux: setlocale: LC_ALL: cannot change locale (en_US.utf8) and Cyrillic symbols
- Linux: setlocale: LC_ALL: cannot change locale (en_US.utf8) и кирилица
- Linux: connect Bluetooth headset with bluetoothctl and Blueman
- Linux: подключение Bluetooth-наушников
- Logz.io: collection logs from Kubernetes – fluentd vs filebeat
January 2021
2020 125
December 2020
November 2020
- ArgoCD: CIOps vs GitOps и деплой приложения из TravisCI
- Ansible: модуль community.kubernetes и установка Helm-чарта с ExternalDNS
- ArgoCD: a Helm chart deployment, and working with Helm Secrets via AWS KMS
- ArgoCD: an overview, SSL configuration, and an application deploy
- Kubernetes: ServiceAccounts, JWT-tokens, authentication, and RBAC authorization
- Kubernetes: update AWS Route53 DNS from an Ingress
- ArgoCD: деплой Helm-чарта и работа с Helm Secrets через AWS KMS
- ArgoCD: обзор, запуск, настройка SSL, деплой приложения
- Kubernetes: ServiceAccounts, JWT-токены, аутентификация и RBAC-авторизация
- Android: DroidCam – камера телефона на компьютере и “кухонные хитрости”
- Kubernetes: обновление DNS в Route53 при создании Ingress
- Kubernetes: Ingress, ошибка 502, readinessProbe и livenessProbe
- Linux: LEMP set up – NGINX, PHP, MySQL, SSL, monitoring, logs, and a WordPress blog migration
- Linux: настройка LEMP – NGINX, PHP, MySQL, SSL, мониторинг, логи, и миграция RTFM
- Jenkins: Redis deployment, and Helm subchart values
- Kubernetes: Service, load balancing, kube-proxy, and iptables
October 2020
- Kubernetes: Service, балансировка нагрузки, kube-proxy и iptables
- Jenkins: деплой Redis и Helm subchart values
- Kubernetes: running SQL migrations with Kubernetes Job and Helm hook
- Kubernetes: запуск SQL-миграций – Kubernetes Job и Helm hook
- Git: git clone – fatal: unable to fork and RSA key fingerprint
- Git: git clone – fatal: unable to fork и RSA key fingerprint
- AWS: Glue – ошибка AWS S3 connect timed out, и cross-region connections
- Helm: reusable chart – named templates, and a generic chart for multiple applications
- Helm: reusable чарт – named templates, и общий чарт для нескольких приложений
- Kubernetes: дебаг Init containers при запуске SQL-миграций
- Kubernetes: AWS ALB Ingress Controller – add redirect to another domain
- Kubernetes: AWS ALB Ingress Controller – добавление редиректа на другой домен
- Kubernetes: Evicted pods and Pods Quality of Service
- Kubernetes: Evicted поды и Quality of Service для подов
September 2020
- Redis: running Master-Slave replication in Kubernetes
- Archlabs: Openbox – послеустановочные настройки
- Redis: Master-Slave репликация и запуск в Kubernetes
- Slack: Cannot read property ‘appTeams’ of undefined
- Slack: Cannot read property ‘appTeams’ of undefined
- MySQL: mysqldbcompare – сравнение двух баз
- AWS Elastic Kubernetes Service: load-testing and high-load tuning – problems and solutions
August 2020
- AWS: Database Migration Service, часть 2 – нет AUTO_INCREMENT и индексов. Фиксы для “foreign key constraint fails” и логов CloudWatch
- AWS: Database Migration Service, часть 1 – обзор и пример миграции self-hosted MariaDB в AWS Aurora RDS
- Kubernetes: нагрузочное тестирование и high-load тюнинг – проблемы и решения
- Helm: secrets плагин не дешифрует данные
- Helm: dependencies aka subcharts – обзор и пример
- Kubernetes: a cluster’s monitoring with the Prometheus Operator
- Kubernetes: HorizontalPodAutoscaler – an overview with examples
- Instana: мониторинг Kubernetes-кластера
- Kubernetes: HorizontalPodAutoscaler – обзор и примеры
- Neo4j: running in Kubernetes
- Neo4j: запуск в Kubernetes
- Kubernetes: PersistentVolume and PersistentVolumeClaim – an overview with examples
July 2020
- Kubernetes: PersistentVolume и PersistentVolumeClaim – обзор и примеры
- Neo4j: graph database – run with Docker and Cypher QL examples
- Neo4j: graph database – запуск в Docker и примеры работы с Cypher QL
- Kubernetes: manually restart a Cron Job
- Kubernetes: перезапустить Cron Job вручную
- Prometheus: yet-another-cloudwatch-exporter – collecting AWS CloudWatch metrics
- Prometheus: yet-another-cloudwatch-exporter – сбор метрик AWS CloudWatch
June 2020
- Linux: configuring KDE Connect and connection to an Android phone
- Kubernetes: ClusterIP vs NodePort vs LoadBalancer, Services, and Ingress – an overview with examples
- Kubernetes: мониторинг кластера с Prometheus Operator
- Kubernetes: 503 no endpoints available for service – causes and solutions
- Kubernetes: 503 no endpoints available for service – причины и решения
- Kubernetes: ClusterIP vs NodePort vs LoadBalancer, Services и Ingress – обзор, примеры
May 2020
- AWS: CloudFormation – using Conditions, Fn::Equals, and Fn::If – an example
- Docker: configure tzdata and timezone during build
- Helm: helm-secrets – sensitive data encryption with AWS KMS and use it with Jenkins
- Helm: helm-secrets – шифрование sensitive данных с AWS KMS и деплой из Jenkins
- Helm: пошаговое создание чарта и деплоймента из Jenkins
- Jira: filters and email notifications about tickets
- Jira: фильтры и почтовые уведомления о тикетах
- AWS: CloudFormation – using lists in Parameters
- Arch Linux: set a Java version
- Arch Linux: установить версию Java
- Helm: Kubernetes package manager – an overview, getting started
- Helm: Kubernetes package manager – обзор, начало работы
- AWS Elastic Kubernetes Service: a cluster creation automation, part 2 – Ansible, eksctl
April 2020
- Linux: no sound after suspend/sleep – solution
- Linux: нет звука после suspend/sleep
- Steam: Civilization V, Arch Linux and ERROR:Invalid resolutions constraints: 0x0 must not be greater than 0x0
- Steam: Civilization V, Arch Linux и ERROR:Invalid resolutions constraints: 0x0 must not be greater than 0x0
- Kubernetes: monitoring with Prometheus – exporters, a Service Discovery, and its roles
- AWS: eksctl – “Put http://169.254.169.254/latest/api/token: net/http: request canceled”
- AWS Elastic Kubernetes Service: a cluster creation automation, part 1 – CloudFormation
- Google Drive: using via terminal on Linux Debian 9 with insync-headless
- Google Drive: подключение на Linux Debian 9 с insync-headless
- AWS Elastic Kubernetes Service: running ALB Ingress controller
- AWS: CloudFormation – пример использования Conditions, Fn::Equals и Fn::If
- AWS: eksctl – “Put http://169.254.169.254/latest/api/token: net/http: request canceled”
- Kubernetes: kubectl и kubeconfig – обзор файла, добавление кластера, пользователя и контекста
- AWS Elastic Kubernetes Service: RBAC-авторизация через AWS IAM и RBAC группы
- AWS: CloudFormation – использование lists в Parameters
- Kubernetes: мониторинг с Prometheus
March 2020
- AWS Elastic Kubernetes Service: – автоматизация создания кластера, часть 2 — Ansible, eksctl
- AWS Elastic Kubernetes Service: автоматизация создания кластера, часть 1 – CloudFormation
- S.M.A.R.T: проверка HDD – описание атрибутов, значение атрибутов, утилиты, параметры
- AWS Elastic Kubernetes Service: запуск ALB Ingress controller
- Kubernetes: part 5 — RBAC authorization with a Role and RoleBinding example
- Kubernetes: знакомство, часть 5 — RBAC авторизация и примеры Role и RoleBinding
- Linux: processes core dumps, systemd-coredump and Debian
- WordPress: использование дочерних тем оформления блога
- Linux: создание coredump памяти процесса, systemd-coredump и Debian
- Prometehus: мониторинг AWS Billing
February 2020
- AWS: CloudFormation – Nested Stacks and stacks parameters Import/Export
- AWS: CloudFormation – вложенные стеки и Import/Export параметров
- Linux: gnome-keyring setup as Freedesktop SecretService
- Linux: настройка gnome-keyring в роли Freedesktop SecretService
- Redis: “psync scheduled to be closed ASAP for overcoming of output buffer limits” and the client-output-buffer-limit
- Linux: PHP-FPM, Docker, STDOUT and STDERR – no an application’s error logs
- Redis: “psync scheduled to be closed ASAP for overcoming of output buffer limits” и client-output-buffer-limit
- PHP: PHP-FPM ignores environment variables – solutions
- Linux: PHP-FPM, Docker, STDOUT и STDERR – нет логов приложения
- Kubernetes: running metrics-server in AWS EKS for a Kubernetes Pod AutoScaler
- Kubernetes: запуск metrics-server в AWS EKS для Kubernetes Pod AutoScaler
- Kubernetes: ConfigMaps and Secrets on a Gorush server example
- Kubernetes: ConfigMaps и Secrets на примере Gorush сервера
- PHP: PHP-FPM игнорирует переменные – решения
- Kubernetes: ConfigMap and Secrets – data auto-reload in pods
- Kubernetes: ConfigMap и Secrets – auto-reload данных в подах
- Kubernetes: запуск push-сервера Gorush в EKS за AWS LoadBalancer
- Kubernetes: running a push-server with Gorush behind an AWS LoadBalancer
January 2020
- AWS: IAM AssumeRole – описание, примеры
- Debian: php7.3-curl : Depends: libcurl3 (>= 7.44.0) but it is not installable
- Debian: php7.3-curl : Depends: libcurl3 (>= 7.44.0) but it is not installable
- Calibre Web: home in-browser online-library with Nextcloud storage and Moon+ Reader on Android
- Bitwarden: shared MFA TOTP codes for Gmail accounts
2019 261
December 2019
- PHP: кеширование PHP-скриптов – настройка и тюнинг OpCache
- Calibre: домашняя онлайн-библиотека в браузере и Moon+ Reader
- Linux: настройка KDE Connect и подключение к Android-телефону
- KeePass: SSH keys passwords storage and decryption on Linux
- KeePass: an MFA TOTP codes, a browser’s passwords, SSH keys passwords storage configuration and Secret Service integration
- KeePass: настройка MFA, хранение паролей браузера, паролей SSH ключей и интеграция Secret Service
- Chromium: Linux, keyrings && Secret Service, passwords encryption and store
- Chromium: Linux, keyrings && Secret Service, шифрование и хранение паролей
- What is: Linux keyring, gnome-keyring, Secret Service, and D-Bus
- What is: Linux keyring, gnome-keyring, Secret Service, и D-Bus
- Bitwarden: расшаренный MFA для общих аккаунтов Google
- Linux: KeePass, SSH и хранение паролей RSA-ключей
- SSH: RSA keys, and ssh-agent for SSH keys and their passwords management
- SSH: RSA-ключи и ssh-agent – управление SSH-ключами и их паролями
- Linux: the Nextcloud client, qtkeychain and the “The name org.freedesktop.secrets was not provided by any .service files” error
November 2019
- Nextcloud: running in Docker Compose on Debian with Let’s Encrypt SSL
- Linux: Nextcloud клиент, qtkeychain и ошибка “The name org.freedesktop.secrets was not provided by any .service files”
- Nextcloud: запуск в Docker Compose на Debian с SSL от Let’s Encrypt
- Arch Linux: key could not be imported – required key missing from keyring
- Arch Linux: key could not be imported – required key missing from keyring
- HTTP: redirects, POST and GET requests, and the “lost” data
- HTTP: редиректы, POST и GET запросы, и “потерянные” данные
- AWS: RDS Certificate Authority SSL certificate upgrade
- AWS: RDS – обновление Certificate Authority SSL сертификата
- Linux: Kazam – record a screencast
- Linux: Kazam – запись видео с экрана
- Grafana: Loki – the LogQL’s Prometheus-like counters, aggregation functions and dnsmasq’s requests graphs
- What is: SAML – an overview, its structure and requests tracing between a Jenkins and Okta SSO
- Grafana: Loki – Prometheus-like счётчики и функции агрегации в LogQL и графики DNS запросов к dnsmasq
- Bitcoin: установка кошелька Electrum на Arch Linux
- What is: SAML – обзор, структура и трассировка запросов на примере Jenkins и Okta SAML SSO
October 2019
- dnsmasq: AWS – “Temporary failure in name resolution”, logs, debug and dnsmasq cache size
- Arch Linux: package-query: error while loading shared libraries: libalpm.so.11
- Arch Linux: package-query: error while loading shared libraries: libalpm.so.11
- dnsmasq: ошибки в AWS – “Temporary failure in name resolution”, логи, дебаг и размер кеша
- Okta: G-Suite integration – provisioning and users import and export
- Okta: интеграция с G-Suite – provisioning, импорт и экспорт пользователей
- Github: SAML, Okta, and Github Enterprise Cloud – Organization SSO configuration
- Github: SAML Okta – настройка SSO в Github Enterprise Cloud – Organization
- AWS: Redshift – quick start and SQL-workbench connection config
- AWS: Redshift – быстрый запуск кластера и подключение из SQL-workbench
- Jenkins: SAML, Okta, user groups and Role-Based Security plugin
- Jenkins: SAML, Okta, группы пользователей и Role-Based Security
- OpenVPN: the No route to host and ERR_ADDRESS_UNREACHABLE errors – the cause and a solution
- OpenVPN: ошибки No route to host и ERR_ADDRESS_UNREACHABLE – причина и решение
- Jenkins: SAML Authentication with Okta SSO and users groups
- Jenkins: SAML Authentication через Okta SSO и группы пользователей
- Vertica: a simple cluster set up and configuration on AWS EC2
- Vertica: установка и запуск кластера на AWS EC2
- Debian: logrotate won’t rotate logs with an “unknown group ‘syslog'” error
- Debian: не срабатывает logrotate – unknown group ‘syslog’
- Okta: the Custom domain and TLS configuration
- Okta: настройка своего домена
September 2019
- Okta: SSO authentication for Gmail and Slack
- Okta: настройка SWA SSO для Gmail и Slack
- AWS: clean up CloudFront cache
- AWS: очистить кеш CloudFront
- Jenkins: Docker Compose deployment from Ansible with ECR authentication
- Jenkins: деплой Docker Compose из Ansible и ECR авторизация
- Linux: persistent logs in systemd-journald
- Linux: постоянное хранение логов в systemd-journald
- OpsGenie: Uptrends integration
- Opsgenie: интеграция с Uptrends
- AWS: create an Elastic Container Registry and Jenkins deploy job
- AWS: создание Elastic Container Registry и деплой из Jenkins
- CloudFlare: CDN configuration for AWS S3 website hosting
- CloudFlare: настройка CDN для AWS S3
- Поездка на Bali, Indonesia – фото
- PostgreSQL: FATAL: Peer authentication failed for user “name”
- PostgreSQL: FATAL: Peer authentication failed for user “name”
- Redis: main configuration parameters and performance tuning overview
- Prometheus: получить общее количество процессов на сервере и process-exporter
- Redis: основные параметры конфигурации и тюнинг производительности
- Kubernetes: part 4 – AWS EKS authentification, aws-iam-authenticator and AWS IAM
August 2019
- Kubernetes: знакомство, часть 4 – аутентификация в AWS EKS, aws-iam-authenticator и AWS IAM
- SonarQube: solving “Unrecoverable indexation failures” and Elasticsearch “Disk watermark exceeded” errors
- SonarQube: Unrecoverable indexation failures и Elasticsearch “Disk watermark exceeded”
- Redis: fork – Cannot allocate memory, Linux, virtual memory and vm.overcommit_memory
- Redis: fork – Cannot allocate memory, Linux, виртуальная память и vm.overcommit_memory
- AWS: CloudCraft – an existing infrastructure’s map generator
- AWS: CloudCraft – генерация карты существующей инфрастуктуры
- Docker: Compose shared networks
- Docker: Compose и общие сети
- Kubernetes: part 3 – AWS EKS overview and manual EKS cluster set up
- Kubernetes: знакомство, часть 3 – обзор AWS EKS и ручное создание кластера
- RTFM: День Рождения – 8 годиков и 3 миллиона посетителей. Обзор обновлений.
- Kubernetes: part 2 – a cluster set up on AWS with AWS cloud-provider and AWS LoadBalancer
- Kubernetes: знакомство, часть 2 – создание кластера с AWS cloud-provider и AWS LoadBalancer
- NGINX: limit_req – limiting requests per IP
- NGINX: limit_req – ограничение количества запросов
- AWS RDS: “SQLSTATE[22001] – Data too long for column” using MariaDB 10.2
- AWS RDS: SQLSTATE[22001] – Data too long for column в MariaDB 10.2
July 2019
- Kubernetes: part 1 – architecture and main components overview
- Kubernetes: знакомство, часть 1 – архитектура и основные компоненты, обзор
- AWS: S3 Cross-Region Replication with DeleteMarkers set up
- AWS: настройка S3 Cross-Region Replication и удаление файлов при репликации
June 2019
- NGINX: multi-branch deployment with Ansible, NGINX map and HTTP Headers
- NGINX: мульти-бранч деплой приложения с использованием NGINX map и HTTP Headers
- SonarQube: the “SCM provider autodetection failed” error
- SonarQube: ошибка “SCM provider autodetection failed”
- SonarQube: running tests from Jenkins Pipeline in Docker
- SonarQube: запуск в Docker и вызов из Jenkins Pipeline
- Jenkins: running PHPUnit from Codeception by a Pull Request in Github and Allure-reports
- Jenkins: запуск PHPUnit из Codeception по Pull Reguest в Github и Allure-репорты
May 2019
- AWS: IAM users keys rotation, EC2 IAM Roles and Jenkins
- AWS: ротация ключей IAM пользователей, EC2 IAM Roles и Jenkins
- OpenVPN: Let’s Encrypt DNS verification on AWS Route53 and OpenVPN Access Server SSL certificate auto update
- OpenVPN: Let’s Encrypt DNS verification с certbot и AWS Route53 и обновление сертификата в OpenVPN Access Server
- Debian: unattended-upgrades – automatic upgrades installation with email notifications via AWS SES
- Debian: автоматические обновления с помощью unattended-upgrades и отправка почты через AWS SES
- Sentry: running self-hosted errors tracking system on an AWS EC2
- Sentry: запуск self-hosted версии системы мониторинга ошибок на AWS EC2
- AWS: VPC peering DNS resolution and DNS settings for OpenVPN Access Server
- AWS: VPC peering DNS resolution и настройки DNS для OpenVPN AS
- Linux: A stop job is running for Session c1 of user setevoy (1min 30s)
- Linux: A stop job is running for Session c1 of user setevoy (1min 30s)
- AWS: MariaDB RDS – kill: You are not owner of thread
- AWS: MariaDB RDS – kill: You are not owner of thread
- TestRail: reset admin password
- TestRail: сброс пароля admin
- Bitwarden: an organization’s password manager self-hosted version installation on an AWS EC2
- Bitwarden: менеджер паролей организации – установка self-hosted версии на AWS EC2
April 2019
- Linux: GPG-keys, Pass – passwords manager, and passwords import from the KeePass database
- Linux: GPG-ключи, менеджер паролей pass и импорт из KeePass
- Golang: pointers – detailed overview
- Golang: указатели – подробный разбор
- Authy: step by step Multi-Factor Authentication configuration for Github and AWS
- Authy: настройка Multi-Factor Authentication для Github и AWS
- Jenkins: a job to check a Github organization’s public repositories list
- Jenkins: проверка публичных репозиториев Github-организации
- Redis: replication, part 4 – writing an Ansible role fore the Master-Slave replication with Redis Sentinel provisioning
- Redis: репликация, часть 4 – написание Ansible роли
- Arch Linux: Albion Online – Unable to preload the following plugins: libSDL2-2.0.so.0
- Arch Linux: Albion Online – Unable to preload the following plugins: libSDL2-2.0.so.0
- Go: checking public repositories list in Github. Go slices comparison. The first Golang experience.
- Go: проверка списка публичных репозиториев в Github и уведомления в Slack. Сравнение списков в Go. Первый опыт с Golang.
- Redis: Sentinel – bind 0.0.0.0, the localhost issue and the announce-ip option
- Redis: Sentinel – bind 0.0.0.0, проблема с localhost и announce-ip
- Ansible: get a target host’s IP
- Ansible: получить IP таргет-хоста
- Atom: useful plugins
- Atom: полезные плагины
- MySQL/MariaDB: like Petya ransomware for MySQL and ‘root’@’%’ access
- Redis: Can’t open the log file: Read-only file system
- Redis: Can’t open the log file: Read-only file system
- JetBrains Upsource: installation, configuration on Linux with NGINX and SSL and PyCharm integration
- JetBrains Upsource: установка и запуск на Linux с NGINX и SSL
- Redis: replication, part 3 – redis-py and work with Redis Sentinel from Python
- Redis: репликация, часть 3 — redis-py и работа с Redis Sentinel из Python
March 2019
- Redis: replication, part 2 – Master-Slave replication, and Redis Sentinel
- Redis: replication, part 1 – an overview. Replication vs Sharding. Sentinel vs Cluster. Redis topology.
- Redis: репликация, часть 2 – Master-Slave репликация, и Redis Sentinel
- Redis: репликация, часть 1 – обзор. Replication vs Sharding. Sentinel vs Cluster. Топология Redis.
- Jenkins: your Jenkins data directory is almost full and automated disk cleanup
- Jenkins: your Jenkins data directory is almost full и автоматическая очистка диска
- Kubernetes: running Minikube on Arch Linux
- Prometheus: Alertmanager’s alerts receivers and routing based on severity level and tags
- Prometheus: Alertmanager – send alerts to a “/dev/null”
- Prometheus” Alertmanager – отправка алертов в “/dev/null”
- Arch Linux: NVIDIA driver installation for GeForce GTX 1050 Ti
- Arch Linux: установка драйверов NVIDIA для GeForce GTX 1050 Ti
- Разное: подарок на День Рождения
- English: глаголы и времена в английском языке
- What is: chroot – system call and utility in Linux
- What is: chroot – системный вызов и утилита в Linux
- TestRail: QA Test Case Management installation on Linux
- TestRail: QA Test Case Management система – установка на Linux
- NGINX: access log – log all except 200 responses
- NGINX: access лог – логгирование всех запросов, кроме 200
- AWS: CLI named profiles
- Jenkins: Scripted Pipeline – Production environment job confirmation step
- Monit: email alerting on an SSH logins
- Monit: алерты при SSH логинах на сервер
- Terraform: creating a project with an AWS EC2, VPC, and AWS cross-region VPC peering connection
- Terraform: main commands, state-files, backend storages, and modules in examples on AWS
- NextCloud: installing server on Debian behind NGINX with PHP-FPM and client on Arch Linux
- NextCloud: установка сервера на Debian с NGINX и PHP-FPM, и клиента на Arch Linux
- Jenkins: jenkins.model.RunIdMigrator doMigrate WARNING: found unexpected dir lastSuccessfulBuil
- Jenkins: HTTP full-duplex channel timeout
- Jenkins: HTTP full-duplex channel timeout
- What is: YAML – its overview, basic data types, YAML vs JSON, and PyYAML
- What is: YAML – общий обзор, типы данных, YAML vs JSON и PyYAML
- Jenkins: import a job to another server
- Jenkins: копирование проекта на другой сервер
- Linux: telegram-desktop – no systray icon
- Linux: telegram-desktop – нет иконки в системном трее
- Fornex: вокруг да около: пошаговое постижение современного хостинга
- VirtualBox: Nonexistent host networking interface, name ‘wlp13s0’
- VirtualBox: Nonexistent host networking interface, name ‘wlp13s0’
- Ansible: check if a package is installed on a remote system
- Ansible: проверка наличия пакета в системе
- Prometheus: RTFM blog monitoring set up with Ansible – Grafana, Loki, and promtail
- Prometheus: мониторинг для RTFM – Grafana, Loki и promtail
- Linux: LVM – pvcreate Device /dev/sdb4 excluded by a filter.
- Linux: LVM – pvcreate Device /dev/sdb4 excluded by a filter.
- OpenVPN – auto-start on Linux
- OpenVPN – автозапуск подключения на Linux
- AWS: RDS logs, export to the CloudWatch Logs and CloudFormation template
- AWS: RDS логи, сбор в CloudWatch Logs и CloudFormation
- Prometheus: blackbox-exporter probe_http_status_code == 0 and its debug
- Prometheus: blackbox-exporter probe_http_status_code == 0 и его debug
- Arch Linux: Steam installation
- Arch Linux: установка Steam
- Linux: The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv
- Linux: The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv
- Arch Linux: installation, troubleshooting and playing EVE Online
- Arch Linux: установка, попытки фиксов и таки игра в EVE Online
- Android Studio: adb – INSTALL_FAILED_INSUFFICIENT_STORAGE
- Android Studio: adb – INSTALL_FAILED_INSUFFICIENT_STORAGE
- Linux: woeusb – creating Windows USB boot flash drive
- Linux: woeusb – создание загрузочной флешки с Windows
- What is: hard link, symlink, and inode in Linux?
- Python: what is the if __name__ == “__main__” ?
- MySQL/MariaDB: most used commands with examples
- Arch Linux: OpenVPN – resolv.conf is not updated
- Arch Linux: OpenVPN – не обновляется resolv.conf
- Linux: systemd-unit files edit, restart on failure and email notifications
- Linux: редактирование systemd юнит-файлов, рестарт сервиса при падении и уведомление на почту
February 2019
- Linux: ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
- Linux: ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
- Viber: no connection – qt.network.ssl: Incompatible version of OpenSSL
- Viber: нет подключения – qt.network.ssl: Incompatible version of OpenSSL
- OpenVPN: SSL and hostname configuration
- OpenVPN: настройка SSL и hostname
- World of Tanks: installing and running on Arch Linux
- World of Tanks: установка и запуск на Arch Linux
- Arch Linux: installing with EFI and Windows dual-boot
- Arch Linux: установка с EFI и dual-boot с Windows
- Arch Linux: grub-mkconfig hangs on the /boot/grub/grub.cfg config generation
- Arch Linux: grub-mkconfig зависает на создании /boot/grub/grub.cfg
- OpenVPN: DNS and dnsmasq configuration
- OpenVPN: настройки DNS и dnsmasq
- OpenVPN: OpenVPN Access Server set up and AWS VPC peering configuration
- OpenVPN: настройка OpenVPN Access Server и AWS VPC peering
- Viber: Linux – Qt WebEngine resources not found
- Viber: Linux – Qt WebEngine resources not found
- RTFM: обновления – английская версия, новый поиск
- Chromium: Youtube error 400
- Chromium: 400 ошибка на Youtube
- Docker: RabbitMQ: exec(): Unable to fork, Prometheus node_exporter и Docker limits
- Golang: Go in Practice – заметки на полях, часть 2 – CLI приложение на Go
- Grafana Labs: Loki – подключение S3 для данных и DynamoDB для индексов
- Grafana Labs: Loki – using AWS S3 as a data storage and AWS DynamoDB for indexes
- Golang: unrecognized import path “math/bits” (import path does not begin with hostname)
- Grafana Labs: Loki – распределённая система, теги и фильтры
- Grafana Labs: Loki – distributed system, labels and filters
- Linux: rsyslog и “ротация” логов.
- Grafana Labs: Loki – logs collecting and monitoring system
- Grafana Labs: Loki – сбор и просмотр логов
- Ansible: шифрование и копирование PEM-ключа
- Golang: Go in Practice – заметки на полях, часть 1 – введение
January 2019
- Telegram: канал и группа @rtfm, бот, API и кросспост из WordPress
- C: отладка с gdb – примеры
- C: libmysqlclient – примеры работы с MySQL API
- Arch: yaourt – No space left on device
- AWS: CloudFront и S3 – No ‘Access-Control-Allow-Origin’ header is present on the requested resource
- Jenkins: JNLP-slave из Docker-образа
- Linux: ncdu и pydf – отображение информации о занятом/свободном месте на дисках
- Jenkins: Remote call on JNLP4-connect connection failed
- Linux: проверка диска на bad blocks
- Linux: сделать скриншот на удалённой машине по SSH
2018 162
December 2018
- AWS RDS: PDOException: SQLSTATE[08004] [1040] Too many connections
- Linux: добавить swap-file
- memcached: Too many open files
- Arch Linux: File /usr/lib/libQt5Positioning.so.5.12.0 is empty, not checked
- Android Studio: emulator – qt_setup.cpp:28:Qt library not found
- DNS: dnsmasq и порядок разрешения домён из resolv.conf
- Linux: “unprivileged users with UID > INT_MAX can successfully execute any systemctl command”
- Appium: Android Virtual Device, Original error: Condition unmet after 60159 ms и костыль
- RabbitMQ: примеры rabbitmqctl, rabbitmqadmin и хранение сообщений при рестарте сервера
November 2018
- Golang: struct – структуры в примерах
- AWS: CloudFormation – S3 корзина для логов Application Load Balancer
- Vim: плагины supertab и vim-devicons
- OpenVAS: установка, запуск
- AWS: s3fs – Permission denied
- Android Studio: установка на Linux и работа с Android Virtual Devices
- Jenkins: запуск Prinder – Github Pull Request reminder
- AWS: s3fs-fuse – монтирование S3 локальным диском на Linux && macOS
- vim: превращаем редактор в “IDE” – плагины и вот это вот всё
- AWS: CloudFormation Drift – обнаружение изменений
- Jenkins: Github Pull-Request Builder плагин
- DigitalOcean: знакомство – Droplet, Floating IP, Firewall
October 2018
- Arch Linux: pacman – signature from USERNAME is unknown trust
- Prometheus: роутинг алертов в Alertmanager
- Linux: logrotate не срабатывает из cron
- Prometheus: node_exporter – мониторинг supervisord
- RabbitMQ: использование диска и перенос базы данных
- Linux: увеличение размера раздела без LVM с сохранением данных на ext4
- AWS: EC2 – ошибка “cannot open access to console”, инстансы T2 vs R5 и Ansible
- Jenkins: задать часовой пояс
- BASH: скрипт бекапа /home с уведомлениями
- Linux: Cannot set LC_CTYPE to default locale: No such file or directory
- Linux: polybar – примеры polybar-scripts
- Arch Linux: ssmtp – отправка локальной почты
- Linux: polybar – статус-бар, пример настройки и использования в Openbox вместе с tint2
- Arch Linux: Package requirements (enchant >= 1.0) were not met
- Linux: монтирование внешнего HDD
September 2018
- Nexus: установка, запуск, деплой в репозиторий + NGINX и SSL
- Jenkins: Allure reports plugin в Scripted pipeline
- Python: скрипт добавления комментария в Jira из Jenkins
- Jenkins: добавление комментария в Jira-тикет после билда
- NGINX: gzip и ETag weak validation
- Linux: не срабатывает crontab
- Linux: The file or folder udi=/org/kde/solid/udev/sys/devices/***/usb1/1-2 does not exist.
- Chrome: вернуть нормальный вид – отключить Material design
- MySQL: Exception message: (1049, \”Unknown database ‘mysql’\”)
- Ansible: with_fileglob – копирование нескольких шаблонов из директории
- AWS: CloudFormation – ‘templateBody’ failed to satisfy constraint: Member must have length less than or equal to 51200
- AWS: CloudFormation – создание S3 Website hosting и CloudFront distribution
August 2018
- AWS: Application Load Balancer – HTTP => HTTPS и host-header редиректы
- Linux: weechat – консольный IRC клиент
- Linux: Spectacle – module “QtQuick.Controls” is not installed
- AWS: миграция RTFM 3.0 (final) – CloudFormation и Ansible роли
- Jenkins: wrapper script does not seem to be touching the log file
- Linux: kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0,0)
- Jenkins: Scripted Pipeline – подтверждение выполнения для Production окружения
- Prometheus: проверка отсутствия метрик – avg_over_time()
- Linux: systemd сервис для Docker Compose
- AWS: 502 ошибка на Application Load balancer
- Prometheus: OpsGenie и Alertmanager – уведомления в почту/SMS/телефон
- RabbitMQ: Ansible и Hostname mismatch: node believes its host is different.
- Prometehus: MySQL exporter
- AWS: CloudFormation – создание EFS + Ansible роль
July 2018
- Prometheus: Alertmanager и blackbox-exporter – проверка срока действия SSL и нотификация в Slack
- Jenkins: уведомление в Slack из Jenkins Scripted Pipeline
- AWS: бекап EBS по расписанию через CloudWatch rules или Data Lifecycle Manager
- Grafana: создание dashboard
- Prometheus: nginx_exporter и сбор метрик с NGINX
- Grafana: добавление CloudWatch data-sorce
- MySQL/MariaDB: ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
- Docker: настройка tzdata и timezone во время билда
- Ansible: проверить конфигурацию NGINX перед рестартом
- Ansible: использование ansible_date_time для получения даты/времени
- Ansible: использование with_dict на примере модуля rabbitmq_user
- MariaDB: AWS RDS read-replica и Seconds_Behind_Master
- NGINX: реальный IP в логах при работе за AWS Load Balancer
- Jenkins: It appears that your reverse proxy set up is broken / Есть подозрение, что настройки вашего обратного прокси некорректны.
- Jenkins: Simple Theme Plugin – настройка внешнего вида UI
- AWS: RDS – сбросить пароль администратора
- Jenkins: Credentials Binding Plugin и использование нескольких Secret file в Jenkins pipeline
June 2018
- Ansible: jenkins_plugin Connection refused и Cannot get CSRF
- Terraform: создание проекта с EC2, VPC и AWS cross-region VPC peering
- AWS: CloudFormation – UPDATE_ROLLBACK_FAILED
- Terraform: пример работы – основные команды, state-файлы, бекенды, модули
- AWS: CloudFormation – route table rtb-6ea6bd06 and network gateway pcx-48eaed21 belong to different networks
- Prometheus: CloudWatch exporter – сбор метрик из AWS и графики в Grafana
- macOS: launchctl – запуск/остановка сервисов на примере Jenkins slave агента
- Grafana: добавление datasource из Ansible
- AWS: CloudFormation – VPC peering и Fn::ImportValue
- AWS: настройка VPC peering
- Prometheus: AWS EC2 service discovery
- Linux: /usr/bin/ps: empty и ldconfig: File /usr/lib/libprocps.so.7 is empty, not checked.
- Prometheus: мониторинг PHP-FPM + Ansible роль
- Linux: /lib/modules/4.16.13-1-ARCH/modules.devname not found и error: file ‘/grub/i386-pc/normal.mod’ not found
- AWS: CloudWatch unified agent – сбор метрик и логов с EC2 и Ansible роль для него
- RabbitMQ: запуск, описание, примеры
- PHP-FPM: Process Manager – dynamic vs ondemand vs static
- Linux: настройка WiFi с помощью netctl и wifi-menu на Arch Linux
May 2018
- AWS: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution и dnsmasq
- CircleCI: обзор Continuous Integration сервиса
- Memcached: установка, примеры
- MariaDB: AWS RDS – Lost connection to MySQL Server During Query
- Redis: установка, запуск, примеры
- Ansible: модуль cloudformation
- Arch: послеустановочные настройки
- Arch Linux: установка с UEFI, GPT, LVM и LUKS шифрованием
- Ansible: теги, include_vars и приоритеты переменных
- Git: пример merge develop в master
- AWS: CloudWatch logs – сбор и мониторинг логов
- AWS: SES – Simple Email Service и WorkMail: настройка аккаунта и отправка почты
- AWS: GDPR и RDS – миграция на encrypted RDS
- AWS: тестируем производительность NGINX, PHP-FMP и MariaDB локально и на разных хостах
- Jenkins: macOS slave агент через Java Web Start
- Ansible: Prometheus provisioning – роли common, exim, nginx, logrotate и unattended-upgrades
- Ansible: использование Vault – зашифрованного хранилища
- Arch Linux: установка с LVM и LUKS шифрованием диска
- AWS: создание стека в AWS – bash-скрипт и CloudFormation шаблон
- Jenkins: запуск Jenkins в Docker и подключение SSH Slave
- Linux: supervisor – управление процессами и сервисами
April 2018
- Linux: затереть диск
- Linux: игнорировать закрытие крышки ноутбука
- Jenkins: получить пароль из Credentials Binding Plugin
- Prometehus: обзор – federation, мониторинг Docker Swarm и настройки Alertmanager
- Linux: подключение флешки – mtp-probe bus: 2, device: 110 was not an MTP device и версия ядра
- Docker: PHP Composer и multi-stage билды Docker образов
March 2018
- DNS: dnsdiag – пинг и трассировка DNS-запросов
- Git: работа с тегами (метками)
- Tableau: установка на Linux
- Git: merge – зачем нужна опция –no-ff (no-fast-forward)
- Ansible: миграция RTFM 2.11 – хост Services – установка PHP, PHP-FPM
- MySQL: database error Disk full и purge binary logs
- Wireshark: установка на Arch Linux
- DNS: установка BIND, DNS Load Balancing и network-based routing через view
- What is: SSL/TLS в деталях
- MySQL/MariaDB: команды shell из консоли MySQL-клиента
- Prometheus: мониторинг Azure VMSS с node_exporter и Docker контейнеров в Docker Swarm с cAdvisor
- Python: pip – AttributeError: ‘module’ object has no attribute ‘SSL_ST_INIT’
- MySQL/MariaDB: настройка SSL
- What is: Linux namespaces, примеры PID и Network namespaces
- AWS: CloudFormation – пример создания S3 корзины, IAM пользователя, Glacier Lifecycle и SNS Notification
- AWS: пример CloudFormation EC2 UserData – установка пакета, добавление задачи в cron и обновление UserData
- Python: Duplicate Encoder – решение задачки с Codewars
- AWS: RDS – Connection refused и StorageFull
February 2018
- What is: Load Balancing – алгоритмы
- SSH: пример туннеля для радио
- Ansible: миграция RTFM 2.10 – Let’s Encrypt, NGINX SSL, hostname и exim
- Exim: Mailing to remote domains not supported
- Ansible: миграция RTFM 2.9 – монтирование EBS и настройка NGINX на Bastion
- PowerShell: проверка сервисов – аналоги curl и telnet
- BASH: скрипт создания AWS CloudFormation стека
January 2018
- Ansible: подключение в приватную сеть через Bastion хост
- Ansible: миграция RTFM 2.8 – logrotate, unattended-upgrades и Let’s Encrypt для Bastion хоста
- bash: проверка статуса Spamassassin
- AWS: миграция RTFM 2.7 – CloudFormation и Ansible – наcтройка NAT
- Powershell: найти самые большие файлы
- AWS: Amazon Athena – serverless сервис аналитики, примеры
- NGINX: Amplify – SaaS мониторинг от NGINX
- Let’s Encypt: удалить сертификат
- Tableau: очистка места с tabadmin cleanup и обновление версии 10.2 до 10.5
- Linux: sayonara-player
- Arch Linux: pacman – key “CEB167EFB5722BD6” could not be looked up remotely:
- Python: скрипт бекапа файлов и баз MySQL в AWS S3
- Python: boto3 – примеры аутентификации и авторизации
2017 157
December 2017
- Python: boto3 и скрипт обновления AWS Security Group
- Firefly III: домашняя бухгалтерия
- MariaDB: Table ‘mysql.user’ doesn’t exist
- Docker: Swarm – REPLICAS 0/1
- Arch Linux: VLC – no suitable dialogs provider found (hint: compile the qt4 plugin, and make sure it is loaded properly)
- Linux: mutt – консольный почтовый клиент
- Linux: ccat – cat с подсветкой синтаксиса
- Tableau: обновление лицензии
- Windows: The disk is offline because of policy set by an administrator
- AWS: SSL Certificate Manager, CloudFront, S3 static website хостинг и несколько доменов
- Tableau: установка на AWS EC2, запуск, бекап и восстановление
- Prometheus: exporter_proxy – мониторинг сервисов в приватной сети
- Arch Linux: cups и hplip – подключение принтера
- Prometheus: запуск сервера с Alertmanager, cAdvisor и Grafana
November 2017
- Debian: обновление 8 Jessie на 9 Stretch
- Docker: запуск Jenkins в Docker и Docker private registry
- RTFM: 6 лет и два миллиона посетителей
- Docker: save и load – скопировать образ между хостами
- I2P: установка и настройка на Arch Linux
- Docker: использование configs и secrets в Swarm
October 2017
- Linux: notify-send, DBus и crontab
- AWS: CloudFormation – шаблон для RDS PostgreSQL
- Pentaho DI: миграция базы MySQL в PostgreSQL
- Pentaho DI: aka Kettle – установка на Linux
- Prometheus: Ansible, NGINX и Grafana dashboard
- SSH: подключение в приватную сеть через Bastion и немного про Multiplexing
- PostgreSQL: установка на Linux
- Jenkins: миграция RTFM 2.6 – Jenkins Pipeline для Ansible
- Arch Linux: чистим /var
- AWS: миграция RTFM 2.5 – настройка NAT на Bastion EC2 как замена NAT Gateway
- Jenkins: миграция RTFM 2.4 – Jenkins Pipeline для CloudFormation RTFM стека
- AWS: IAM и bash скрипт бекапа MySQL/MariaDB баз в AWS S3
- Azure: подключение volume – ARM, Ansible и данные Prometheus
- Linux: yokadi – консольный менеджер задач
- MySQL/MariaDB: mysqlbinlog – примеры
- Linux: GnuPG – управление GPG ключами
- Ansible: миграция RTFM 2.2 – RTFM Jenkins provision
- Ansible: Ansible Galaxy – создание аккаунта и добавление роли
- AWS: миграция RTFM 2.3 – инфраструктура для RTFM и создание CloudFormation шаблона – VPC, subnets, EC2
- MySQL/MariaDB: like Petya ransomware для баз данных и ‘root’@’%’
- Arch Linux: error: failed to commit transaction (conflicting files)
- What is: модель OSI
- Ansible: роли для Docker Compose, Prometheus и node_exporter
- Linux: mps-youtube – консольный Youtube плеер
September 2017
- AWS: миграция RTFM 2.1 – CloudFormation для EC2 c Jenkins
- Let’s Encrypt: firewall и верификация домена
- Ansible: ansible-galaxy – репозиторий ролей и Jenkins VM provision
- Jenkins: Pipeline, Groovy, Ansible и VM provisioning
- Ansible: пример установки NGINX
- Azure: provisioning с Resource Manager, Jenkins и Groovy
- Prometheus: мониторинг – введение, установка, запуск, примеры
- Linux: C – адресное пространство процесса
- Arch Linux: Skype – /usr/lib32/libcrypto.so.1.0.0: version `OPENSSL_1.0.2d’ not found
- AWS: CloudFront – обновить SSL сертификат
- Arch Linux: микрофон, PulseAudio и Skype
- Linux: NTP и systemd-timesyncd
- Python: Let’s Encrypt, pip и AWS China – pypi.python.org: Read timed out
August 2017
- Git: восстановить удалённый файл после git rm
- C: связанные списки
- Arch Linux: error: key “4A1AFC345EBE18F8” could not be looked up remotely
- Arch Linux: уведомления в Openbox с libnotify
- C: структуры
- Email: Exim и Dovecot – настройка SSL/TLS от Let’s Encrypt
- Docker: retag образа
- Exim: Warning: message […] delayed 48 hours
- Linux: Debian – сборка, установка и запуск ядра 4.12
- Debian: apticron – уведомление о доступных обновлениях
- Monit: мониторинг и перезапуск NGINX
- Virtualbox: создание и запуск VM из консоли
- C: “мониторинг” NGINX с помощью AF_INET
- Travis: деплой конфигов NGINX в Azure File share
- NGINX: установка на Ubuntu на EC2 с EBS
July 2017
- C: создание и применение shared library в Linux
- Linux: rsync – sudo и RSA ключ для авторизации
- Linux: systemd, NGINX, разделы и порядок загрузки
- Debian: unattended-upgrades – автообновление системы и пакетов
- Azure: VMSS за Load Balancer, renew SSL от Let’s Encrypt, SMB file share и NGINX-proxy
- Azure: CLI – пример создания SMB file share, Load Balancer и Linux VM с NGINX
- Pidgin: интеграция Slack
- Linux: iperf – тест скорости
- AWS: The AWS Access Key Id you provided does not exist in our records
- Viber: получить history в текстовом виде и скрипт бекапа
- Docker: registry && Jenkins migrate
June 2017
- Python: структуры данных
- Linux: установка redshift
- Docker: AWS [China] – Jenkins в Docker
- AWS: CLI – S3 seek() takes 2 positional arguments but 3 were given
- Docker: private registry в AWS [China] с S3 storage
- Docker: запуск registry server
- Linux: конвертировать PPK в PEM
- Arch: датчики тепературы
- Kubernetes: запуск Gravl в Minikube
- Kubernetes: запуск Minikube на Arch Linux
- Azure: запуск NodeJS в WebApp
May 2017
- C: libssh – пример SSH-“клиента”
- OpenVPN: установка сервера на Debian
- AWS [China]: часть вторая
- Azure: Blob Storage – static website hosting
- C: сокеты и пример модели client-server
- Linux: journalctl – примеры
- Arch Linux: keyserver receive failed: No keyserver available и ручной импорт ключа
- PowerShell: под Arch Linux – Hello, World
- Arch Linux: запускаем Diablo 2
- Arch: skype error while loading shared libraries: libssl.so.1.0.0 – три решения
- AWS [China]: начало
April 2017
- AWS: ECS пример с авторизацией в private registry
- Azure: CDN, NodeJS, Docker Swarm и Blue-Green деплой
- Bash – скрипт удаления образов с Docker Swarm нод
- Arch: VNC-клиент
- NGINX: динамический upstream
- Arch: примонтировать NTFS
- Azure: Application Gateway, CDN и SSL
March 2017
- Linux: cheese – запись видео
- Arch: Skype – звук и микрофон
- Arch: Git – github.com errno=Connection refused
- NGINX: бан User Agent
- Azure: ARM – incorrect segment lengths
- Linux: LVM – уменьшить home, увеличить root
- Azure: ARM – подключение вложенного шаблона
- Arch: nm-applet serviceUnknown: The name org.freedesktop.secrets was not provided by any .service files
- Arch: апплет батареи для ноутбука
- Docker: изменить рабочую директорию
- Arch: yaourt – ERROR: One or more PGP signatures could not be verified
- Linux: LVM – разделить /root и добавить /home
- Docker: Swarm mode, Compose и scaling
- Ubuntu: /usr/bin/X not found
- Arch: установка поверх Ubuntu с сохранением home в LVM
- What is: Infrastructure as Code
- Azure: SendGrid – отправка почты из Azure
- [UPD 25] Azure: почему никогда
February 2017
- Azure: Azure Resource Manager provisioning и Jenkins в Docker
- Docker: Compose down – network jmadmin_default has active endpoints
- Jenkins: pipeline плагин и триггер билда через Github webhook
- Azure: CDN для WebApp
- AWS: смонтировать EBS к EC2
- AWS: билд Java + Maven + Docker + Packer + Terraform
- Linux: [[: not found
- Arch: Virtualbox – No kernel 4.8.10-1-ARCH headers
- Pidgin: плагин purple-skypeweb для Skype-чатов
- Azure: подключение дополнительного диска к VM и миграция Jenkins
- Jenkins: sandbox.RejectedAccessException: Scripts not permitted to use
- Exim: Mailing to remote domains not supported
- AWS: EFS – Elastic File System
January 2017
- Linux: процесс загрузки, часть #1 – BIOS и MBR
- Debian: apt – GPG error: The following signatures were invalid: KEYEXPIRED
- SSH: ssh_exchange_identification: Connection closed by remote host
- Linux: neofetch – системная информация
- Linux: проверить содержимое ISO
- Arch: cronie – планировщик задач
- Arch: makepkg – ручная установка из PKGBUILD на примере Dropbox
- AWS: запуск WordPress в ECS
- Arch: rdesktop – RDP на Windows
- AWS: ECS – EC2 Container Service: Docker в Amazon
- AWS: AWS CLI и bash – blue/green деплой AutoScale группы за ELB
- Ubuntu: add-apt-repository: command not found
- NGINX: PHP-FPM – “Primary script unknown”
- Arch: screensaver и блокировка экрана
2016 200
December 2016
- Arch: GTK-темы в Qt-приложениях
- Linux: загрузочная флешка из ISO через dd
- Arch: установка VirtualBox, Vagrant и Docker
- Arch: установка GTK тем и иконок
- Arch: настройка сети – networkmanager и wpa_supplicant
- Arch: установка Oracle Java и PyCharm
- Arch: установка с LVM + Openbox + Tint2
- OpenBSD: установка NGINX и настройки безопасности
- AWS: RDS Aurora db.t2.medium vs t2.nano и MariaDB
- CentOS: yum Error Dependency Resolution – исключить пакет из репозитория
- bash: скрипт генерации файлов конфигурации для NGINX
- Arch: Yaourt – работа с AUR
November 2016
- Arch: установка с LVM
- Linux: менеджер терминалов tmux – установка, настройка, управление
- Azure: AzCopy для Linux – скопировать весь контейнер
- Ubuntu: обновить Docker
- Exim: temporarily rejected after DATA и temporary local problem
- Azure: добавить пользователя к Azure Subscription
- BASH: массивы, пример – скрипт получения логов из Docker-контейнеров
- Viber: This application failed to start because it could not find or load the Qt platform plugin “xcb”.
- Ubuntu: PHP-FPM – Unknown instance
- Jenkins: остановить зависший билд
- Azure: Verify that the certificate is valid and is associated with this subscription.
- Terraform: InvalidGroupId.Malformed: Invalid id
- Jenkins: изменить следующий BUILD_NUMBER
- Linux: bash – добавить отображение бранча
- AWS: именованные профили доступа
October 2016
- Linux: GRUB – добавить загрузку Windows
- AWS: AutoScaling – описание, примеры и Elastic Load Balancer
- AWS: Application Load Balancer – настройка
- Docker: docker-maven-plugin – билд Doсker образов в Maven
- Maven: docker-maven-plugin – Exception caught: Request error: POST HTTP 500 Internal Server Error
- Packer: введение, примеры
- AWS: S3 Website + CloudFront CDN == AccessDined
- AWS: Grunt – деплой JS приложения в S3
- AWS: The bucket you are attempting to access must be addressed using the specified endpoint.
- Azure: GoCD и MSDeploy – деплой UmbracoCMS в Azure WebServices
- Git: merge разных бранчей из разных репозиториев
- Jenkins: запуск на AWS EC2 + Pipeline Plugin + Docker Pipeline Plugin
- Chromium: крупные элементы после обновления
September 2016
- RTFM: 5 лет и тысячный пост
- AWS: S3 – хостинг статического сайта
- SSH: ssh-copy-id – Permission denied
- AWS: миграция RTFM, часть #3: CloudFormation – инфрастуктура
- WordPress: blue-green деплой и слияние баз MySQL с помощью dbForge Studio
- Azure: WebApp и бекапы
- Chrome: убрать HTTPS редирект
- CentOS: bash: netstat: command not found
- Azure: настройка MySQL in-app (Preview) для Web Apps и сравнение с ClearDB
- Docker: курс katacoda, часть #1 – запуск контейнеров
- Chef: This resource is written with Chef 12.5 and requires at least Chef 12.0[…] it will not work with Chef 11.x clients
- wttr.in – прогноз погоды из консоли
- Chef: knife-solo – ERROR: Net::SSH::HostKeyMismatch
- Azure: ARM-шаблон – добавить checkbox для Connection strings Slot Setting
- NGINX: server name has suspicious symbols
- Azure: Git-деплой в Azure WebApp
- MSSQL: T-SQL – копирование базы
- MSSQL: T-SQL – комментарии
- AWS: миграция RTFM, часть #2: ручное создание инфраструктуры – AIM, S3, RDS и EBS
- RTFM: обновление раздела “Ссылки”
- Azure: ARM – ручное создание шаблона
August 2016
- TLS/SSL: NGINX – подключение wildcard-сертификата от Comodo
- AWS: s3cmd – GET из S3 с авторизацией
- Azure: Blob Storage и SQL – восстановление базы данных из bacpac-файла
- OpenBSD: установка NGINX
- Git: diff двух репозиториев
- Linux: 25 лет
- AWS: миграция RTFM, часть #1: ручное создание инфраструктуры – VPC, подсети, IGW, NAT GW, маршруты и EC2
- AWS: Elastic IP – The maximum number of addresses has been reached.
- AWS: A client error (InsufficientCapabilitiesException) – Requires capabilities : [CAPABILITY_IAM]
- AWS: S3 – A client error (AccessDenied) occurred when calling the ListObjects operation
- AWS: CloudFormation – создание шаблона для VPC, EC2, NAT и Internet Gateway
- Linux: sudo: unable to resolve host […]
- Docker: Docker Swarm кластер в AWS step-by-step
- AWS: VPC – EC2 в public и private подсетях, NAT и Internet Gateway
- TLS/SSL: openssl – извлечь KEY и CRT из PFX
- Azure: The subscription is not registered to use namespace […]
- Azure: запуск Docker Swarm на Azure Container Service
- OS X: flush DNS после обновления hosts
- Linux: утилита sar – описание, примеры
July 2016
- Chef: получить checksum
- Apache: SetEnv – установить переменную окружения
- Apache: debug лог и LogLevel
- LVM: уменьшить и увеличить размер Logical Volume
- Azure: Resource manager, Azure CLI и деплой resource group
- Travis: запуск и сборка Docker-образов
- Docker: добавить свой образ в репозиторий на Docker Hub
- MSBuild: MSB4036: The “TransformXml” task was not found
- MSSQL: подключение из консоли Linux
- Arch Linux: установка KDE
- Azure: CORS – No ‘Access-Control-Allow-Origin’ header is present
- Arch Linux: установка
- MSDeploy: обновить параметры в web.config во время деплоя
- lnav: Log File Navigator – консольная утилита просмотра логов
June 2016
- Linux: восстановить grub после установки Windows
- Ubuntu: Muon updater – This operation cannot continue since proper authorization was not provided
- Travis: Permission denied – Could not read from remote repository
- Git: merge файла из бранча в бранч
- Travis: уведомления в Slack и работа с бранчами – примеры
- Python: скрипт бекапа WordPress
- WordPress: сбросить пароль администратора
- Ubuntu: Java-плагин для Firefox
May 2016
- Github: авторизация по SSH ключам
- Travis: Maven билд Java приложения и деплой на Azure
- Vagrant: добавить второй диск
- Vagrant: временные файлы в каталоге с кодом
- Ubuntu: LVM – добавление диска к виртуальной машине ESXi
- C: указатели – подробный разбор
- Ruby: скрипт git-деплоя в Azure
- Linux: Netdata – мониторинг с веб-интерфейсом
- Linux: SSH туннель для браузера
- Ruby: cannot load such file — mkmf
- Chef: chef-solo пример
- SSH: авторизация по ключам – пример
- AWS: VPC – введение, примеры
- Azure: управление зонами в Azure DNS – Git, GoCD, bash и Azure CLI
- AWS: Blue-green deployment
- Ubuntu: найти модель ноутбука
- AWS: CloudFront – описание, примеры
- Гражданская оборона: Избранное
- AWS: S3, Simple Storage Service – описание, примеры
- Linux: SysV, Upstart и Systemd – runlevels и общие сведения
- JIRA: интеграция в Slack через WebHook
- Linux: определить init систему – Systemd vs Upstart
- NGINX: управление конфигурацией прокси
- Linux: apropos – поиск по man-страницам
April 2016
- Azure: VM с NGINX в роли reverse-прокси к WebApp
- MySQL/MariaDB: сменить пароль пользователя
- Azure: CDN и Blob Storage
- curl: отобразить время выполнения запроса
- JIRA: ручная установка на Debian
- Linux: systemctl – управление службами
- Ubuntu: есть ping но ошибка ERR_TIMED_OUT
- Azure: SQL – Client with IP address is not allowed to access the server
- TLS/SSL: NGINX – настройка SSL от Let’s Encrypt на Debian 8
- RTFM: обновленный поиск
- Unix: что такое traceroute
- Linux: утилита htop
- AWS: IAM – Identity and Access Management
- Azure: Blob storage и Python SDK
- Azure: Blob storage
March 2016
- Linux: unknown filesystem type ‘exfat’
- Azure: работа с DNS из Azure CLI
- Nagios: настройка уведомлений в Slack-чат
- NGINX: HTTP-прокси, Load Balancing, буферы и кеширование
- Vagrant: The box ‘ubuntu/trusty64’ could not be found
- Nagios: установка на Ubuntu 14 + NGINX + PHP-FPM + FastCGI
- Linux: Performance Observability Tools
- Python: пример AWS boto3 SQS и SES
- AWS: CloudFormation – custom template
- VIM: сместить несколько строк
- Ubuntu: первые шаги после установки
- Slackware: установка 14.1
- Git: утилита GitStats – стастика репозитория
- AWS: CloudFormation
- Ubuntu: мелкие шрифты GTK в KDE
- OS X: dd – создание загрузочного USB
- Debian: ручная разбивка диска с fdisk, создание разделов LVM и установка системы
- What is: ядро Linux
- MySQL/MariaDB: репликация – fatal error 1236
February 2016
- Linux: cpio – управление архивами .cpio
- Git: Cheat-Sheet
- WordPress: добавляем отображение даты поста
- AWS: Route 53 DNS – добавление домена и управление записями
- Linux: CVE-2015-7547 – патчим CentOS 6 и Debian 8
- MySQL/MariaDB: REPLACE – рекурсивное обновление записей в таблице
- Linux: strace – отслеживаем выполнение процесса
- Test Kitchen: введение и примеры
- Debian: установка LEMP – NGINX + PHP-FPM + MariaDB
- RTFM: переезд и смена оформления
- SSH: Could not load host key: /etc/ssh/ssh_host_ed25519_key
- Jenkins: строим пайплайны с плагином Build Pipeline Plugin
- Linux: добавить пользователя в группу
- Azure: просмотр логов в Azure Websites Log Browser
- C: Declare vs Define в C и C++
- Python: добавить метод к существующему инстансу класса
- Linux: Xorg – изменяем скорость перемещения курсора мышки
- Git: rm –cached – fatal: pathspec ‘filename’ did not match any files
- Vault: Consul в роли бекенда
- Consul: установка и базовые операции
- Vault: установка и базовые операции
January 2016
- Docker: подключиться к запущенному контейнеру
- SSH: обрыв сессии при бездействии
- TLS/SSL: Chrome – You cannot visit [site] right now because…
- BASH: многострочные команды по SSH
- Python: requests, JFrog Artifactory и деплой
- Jenkins: установка и настройка Maven билда
- Vagrant: остановить все запущенные боксы
- Jenkins: плагин Multiple SCMs – несколько репозиториев для проекта
- JBoss: JBAS018038: Root contexts can not be deployed when the virtual host configuration has the welcome root enabled
- Jenkins: установка Gradle разных версий
- Linux: Как пропатчить OpenSSH под CVE-2016-0777 и CVE-2016-0778?
- WordPress: XML-RPC bruteforce и Fail2Ban
- Azure: использование Deployment slots
- Azure: App Service – деплой WordPress
- Azure: подключение SSL сертификата
- What is: IaaS, PaaS, SaaS
- Shell: перенаправление stdout и stderr
- Golang: установка и Hello, World
- Azure: деплой VM из образа с помощью Azure CLI