Админим с Буквой
5.52K subscribers
303 photos
8 videos
59 files
1.16K links
Канал о системном администрировании, DevOps и немного Инфобеза.

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
И смех и грех

minio в своём клиенте mc напортачили и у меня перестала работать команда mc pipe. проблема кроется в атрибутах которые я не указываю (они мне не нужны) но которые почему-то стали вызывать ошибку, мол "укажи мне атрибуты правильно". ну как правильно, если я вообще их не использую? в итоге сделал быстрофикс
--attr "bug=fixed"
и проблема ушла.

#minio
Делаем резервные копии postgres на s3 (minio)

В гисте приложен кусочек плейбука ansible который настраивает резервное копирование через mc клиент. скрипт умеет выгружать в bucket по-отдельности каждую базу из списка, оценивать размер и время совершения последнего копирования каждой базы и отдавать эту информацию в формате prometheus, а также подчищать из s3 устаревшие копии.

https://gist.github.com/bykvaadm/434a4eef5392528c9c0e4788937301bc

#postgres
#docker
#patroni
#ansible
#minio
#prometheus
грязнофикс для content-type в nginx

Суть проблемы: через nginx выполняется прокси-пасс на minio, откуда отдаются pdf,jpg. Если вы при этом во время записи забыли проставить файлу корретный content-type, то на выходе вы можете получить картину того, что, например, pdf будет интерпретироваться как jpeg. При этом даже выставление types (параметр который отвечает за соответствие расширений типу, такая большая таблица в конфиге по-умолчанию), даже зануление тайпа для конкретного локейшена и принудительная простановка дефолтного типа не сработала, т.к. хедер прилетает уже от минио и его не переопределяет тип. Что же делать? переопределить самостоятельно!

Решение:
1. сделать временный фикс для каждого нужного расширения
2. пройтись по всем файлам в минио и сделать корректный контент-тайп.

      location ~* \.pdf$ {
proxy_hide_header Content-Type;
proxy_pass http://backend;
add_header Content-Type "application/pdf";
}
location ~* \.(jpg|jpeg)$ {
proxy_hide_header Content-Type;
proxy_pass http://backend;
add_header Content-Type "image/jpeg";
}


#nginx #minio