Updates rtfm.co.ua 🇺🇦 – Telegram
Updates rtfm.co.ua 🇺🇦
726 subscribers
35 photos
457 links
Канал @rtfm - новые посты на https://rtfm.co.ua.
Обсуждения - группа @rtfmco https://t.me./rtfmco
Download Telegram
Channel photo updated
This is a test from curl
This is a test message
Updates rtfm.co.ua 🇺🇦
Photo
Telegram: канал @rtfm, бот, API и кросспост из WordPress

Давно хотел и просили добавить канал в Телеграме, и сделать кросспост постов из блога туда. Всё не доходили руки сесть, и закончить – но теперь всё работает. Сам канал в телеге – тут>>>, а в этом посте – описание настройки. Используется телеграм-бот, и плагин WP Telegram. Telegram Создание бота и получение API-токена Начинаем с создания бота.…

https://rtfm.co.ua/telegram-kanal-rtfm-bot-api-i-krosspost-iz-wordpress/
Golang: Go in Practice – заметки на полях, часть 1 – введение

Ещё весной начал учить Go, но потом перешёл на новую работу, забот и без того хватало, и Go забросил. Тем не менее – встречается он сейчас много где (Docker, Prometheus, Terraform etc), а потому знать его желательно. Да и вообще – иногда надо поучить что-то новое, ибо становится скучно. Попробую вести “конспекты” книги Go in Practice …

https://rtfm.co.ua/golang-go-in-practice-zametki-na-polyax-chast-1-vvedenie/
Ansible: шифрование и копирование PEM-ключа

Задача – во время выполнения роли скопировать на удалённый хост PEM-ключ. Для этого используем ansible-vault. Идея состоит в том, что мы зашифруем содержимое ключа в переменную, а затем используем модуль copy – и создадим на удалённой системе новый файл. Создание сертификата Сначала создадим сам сертификат и приватный ключ с помощью openssl: $ openssl req…

https://rtfm.co.ua/ansible-shifrovanie-i-kopirovanie-pem-klyucha/
Grafana Labs: Loki – сбор и просмотр логов

В Grafana версии 6.0 была предоставлена новая плюшка – просмотрщик логов Loki, аналог известного всем стека ELK/EFK. Является встроенной возможностью самой Grafana, и заточен под работу с Prometehus и Kubernetes, с возможностью использования их метрик. Проект совсем новый, и главный его недостаток, который выявился за время попытки поднять хотя бы Proof of Concept, который и…

https://rtfm.co.ua/grafana-labs-loki-sbor-i-prosmotr-logov/
Linux: rsyslog и “ротация” логов.

Имеется система с Debian 9, запущенная на AWS EC2 с дефолтным 8-гиговым рутовым разделом. Проблема в том, что временами /var/log/syslog и /var/log/daemon.log отжираются за сутки на пару гигов, и logrotate, который запускается раз в сутки, не успевает их сжать и выполнить ротацию. syslog и daemon.log используются (уже некоторыми подзабытым) демоном rsyslog: root@bttrm-dev-console:/home/admin# cat /etc/rsyslog.conf…

https://rtfm.co.ua/linux-rsyslog-i-rotaciya-logov/
Forwarded from DevOps Help Bot
Starter Kit:
0. DevOps manifest
1. SRE implments DevOps \ 30 минутное интервью, дополняет 1 сезон
Tip: В данном плейлисте сотрудники Google расскажут базовые различия между SRE и DevOps, а также основные концепции и принципы построения рабочего процесса
2. CI\CD\CDP \ Patterns and anti-patterns of CI/CD
Tip: Расшифровка абревиатур, а также паттерны/антипаттерны построения и работы с этими методиками
3. How To Become a DevOps Engineer In Six Months or Less (part 1 \ part 2 \ part 3 \ part 4 \ part 5 \ part 6 \ part 7)
Tip: В своем роде roadmap для становления SRE специалиста с примерами. Достаточно абстрактный для того, чтобы замена инструментов не привела к потери большого куска смысла
4. DevOps Toolkit 2.0 (и далее всю серию) Стоит понимать, что 2.0/1 морально устарели и читать их нужно только для изучения концепций
Tip: Детально рассказывает про инструменты, а также учит когда, как и для каких целей использовать те или иные инструменты
5. SRE books
Tip: книги от Google, думаю комментарии излишне) Просто нужно прочесть)
6. Kubernetes best practice (актуально для любой разработки в контейнерах)
Tip: небольшой плейлист по мировым практикам работы с контейнерами на примере Kuberenetes и GCP
7. Designing Distributed Systems
Tip: Данная книга расскажет про паттерны построения расрпделенной системы. Достаточно абстрактно, чтобы можно было применить к большому количеству кейсов с определенными купюрами
8. Building Evolutionary Architectures
Tip: In progress
9. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
Tip: In progress
10. The Twelve-Factor App
Tip: Данная книга позволяет понять как лучше писать приложения, для того, чтобы потом их можно было легко использовать

Additional information:
- Service mesh
- Chaos Engineering (White paper)
- Google SRE: взгляд изнутри
- An 8-minute introduction to K8S (Core concepts, features and building blocks)
Microservices:
- What Is Microservices Architecture?
- A Microservices implementation journey (part 1 \ part 2 \ part 3)

К этому лучше переходить когда понимаете все или большую часть из того, что есть в нумерованном списке. Данный список не будет иметь рекомендаци или аннотаций.

#обучение #DevOps #SK
Grafana Labs: Loki – распределённая система, теги и фильтры

Задача на сейчас – попробовать собрать распределённую систему: Grafana будет работать на одном хосте Loki – на втором Promtail – на третьем Суть идеи такова: имеется рабочее окружение, скажем Dev, включает в себя 2 хоста имеется окружение мониторинга – хост с Grafana/Prometheus/etc На хостах Dev-окружения – запустим promtail, которые будут пушить собранные логи в Loki, а…

https://rtfm.co.ua/grafana-labs-loki-raspredelyonnaya-sistema-tegi-i-filtry/
Golang: unrecognized import path “math/bits” (import path does not begin with hostname)

При импорте пакета – возникает ошибка вида “unrecognized import path “math/bits” (import path does not begin with hostname)“. Гуглим, находим обсуждение тут>>>, радуемся, что в репозиториях Debian 9 последняя доступная версия 1.7. Проверяем версию Go: Выполняем установку вручную. Удаляем установленный пакет: root@ip-172-31-38-97:/home/admin# apt purge golang…

https://rtfm.co.ua/golang-unrecognized-import-path-math-bits-import-path-does-not-begin-with-hostname/
Grafana Labs: Loki – подключение S3 для данных и DynamoDB для индексов

И продолжаем баловаться с Loki. Первая часть – тут>>>, вторая – тут>>>. Очень пригодилась помощь разработчиков в Slack-комьюнити Grafana – там есть отдельный канал #loki. Задача сейчас – настроить Loki для использования AWS S3 корзины как persistent storage для данных самих логов, и AWS DynamoDB – для хранения индексов. При запуске Loki с конфигурацией по…

https://rtfm.co.ua/grafana-labs-loki-podklyuchenie-s3-dlya-dannyx-i-dynamodb-dlya-indeksov/
Golang: Go in Practice – заметки на полях, часть 2 – CLI приложение на Go

Предыдущая часть – Golang: Go in Practice – заметки на полях, часть 1 – введение. Стандартная библиотека Go включает в себя пакеты для создания приложения с поддержкой опций командной строки. В отличии от стандартных, принятых в Linux/BSD, стилей – в пакете из стандартной библиотеке Go используются одинарные или двойные дефисы как взаимозаменяемые. Т.е. тут не…

https://rtfm.co.ua/golang-go-in-practice-zametki-na-polyax-chast-2-cli-prilozhenie-na-go/
Docker: RabbitMQ: exec(): Unable to fork, Prometheus node_exporter и Docker limits

RabbitMQ перестал принимать новые сообщения, и при выполнении запроса – возвращает ошибки вида: exec(): Unable to fork write(): send of 12 bytes failed with errno=104 Connection reset by peer fwrite(): send of 19 bytes failed with errno=32 Broken pipe Собственно, по сообщениям видно, что проблема с памятью – exec() не может выполнить fork() и выделить…

https://rtfm.co.ua/docker-rabbitmq-exec-unable-to-fork-prometheus-node_exporter-i-docker-limits/
Chromium: 400 ошибка на Youtube

В Chromium (не только, скорее всего) иногда возникает ошибка 400 при обращении к Youtube. Вариант первый – просто очистить все данные в браузере через Settings => Clear browsing data. Нагуглилось обсуждение тут>>>, пишут, что ошибка возникает из-за плагина The Great Suspender (шикарный и полезный плагин, кстати). Сама ошибка выглядит так: Жмём F12, открываем Developer tools, перезагружаем…

https://rtfm.co.ua/chromium-400-oshibka-na-youtube/
RTFM: обновления – английская версия, обновлённый поиск

За последние пару дней появилась два достаточно интересных обновления в блоге. Английская версия Очень давно планировалась, но всё “не доходили руки” (на самом деле было лень выкатить Dev-версию блога, что бы потестировать разные плагины). Наконец-то таки добавил плагин Polylang, перевёл категории и теги, начал переводить посты. Английская версия доступна по адресу https://rtfm.co.ua/en или с помощью переключателя в…

https://rtfm.co.ua/__trashed-2/
Viber: Linux – Qt WebEngine resources not found

После последнего обновления на Arch Linux “поломался” Viber. Решений нашлось несколько, но сработало только одно. Ошибки при запуске выглядят так: $ viber Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory...…

https://rtfm.co.ua/viber-linux-qt-webengine-resources-not-found/
OpenVPN: настройка OpenVPN Access Server и AWS VPC peering

OpenVPN Access Server предоставляет полностью настроенный и готовый к использованию OpenVPN сервер, который требует минимальной настройки для запуска. Бесплатная версия разрешает использовать 2 одновременных подключения, если требуется больше пользователей – за денежку. Сейчас для доступа к нашим ресурсам, таким как Jenkins, Nexus и т.д. используются правила в Security Group-ах, в которых для каждого пользователя приходится…

https://rtfm.co.ua/openvpn-nastrojka-openvpn-access-server-i-aws-vpc-peering/
OpenVPN: настройки DNS и dnsmasq

В продолжение OpenVPN: настройка OpenVPN Access Server и AWS VPC peering – пример настройки DNS. Дано: домен ci.example.com, который должен резолвиться на публичный IP сервера с Jenkins при подключении напрямую, через Интернет, и на приватный IP – при подключении через VPN-соединение. Для этого на сервере с OpenVPN устанавливаем dnsmasq: # apt -y install dnsmasq…

https://rtfm.co.ua/openvpn-nastrojki-dns-i-dnsmasq/
Arch Linux: grub-mkconfig зависает на создании /boot/grub/grub.cfg

Во время установки новой системы на новый компьютер – grub-mkconfig зависает при создании файла конфигурации GRUB. Нет ни ошибок, ни предупреждений. Решение нагуглилось тут>>>, запишу его и себе. Сама ошибка выглядит так: Прерываем по Ctrl+C. Проверяем скрипт /usr/bin/grub-mkconfig – находим все редиректы 2> (stderror) в /dev/null: …

https://rtfm.co.ua/arch-linux-grub-mkconfig-zavisaet-na-sozdanii-boot-grub-grub-cfg/