Bash Days | Linux | DevOps
22.9K subscribers
114 photos
21 videos
555 links
Авторский канал от действующего девопса

Самобытно про разработку, devops, linux, скрипты, тестирование, сисадминство, техдирство, пиэмство и за айтишную жизу.

Автор: Роман Шубин
Реклама: @maxgrue

Курс: @tormozilla_bot

РКН: https://two.su/bashdays
Download Telegram
😀😃😄😁😆

🔧 Утилиты: #utils
💳 Таблицы: #sheets
Скрипты: #bash
🎙 Мониторинг: #monitoring
🤔 Отладка: #debug
🎃 Линукс: #linux
✉️ Nginx: #nginx
📦 GIT: #git
📊 Mysql: #mysql
📱 Сервисы: #services
🔄 Девопс: #devops
🛡 Безопасность: #security
👻 Игры: #games
🌐 Сети: #networks
💬 Будни: #рабочиебудни
Please open Telegram to view this post
VIEW IN TELEGRAM
Приходила идея спарсить весь github?

Мне нет! А вот некому чуваку такая идея пришла и он замутил интерактивную карту по открытым git репозиториям. По итогу коллекция составила более чем 400к репозиториев. Масштабно, ничего не скажешь. Ну собрал и собрал, нам то какое дело? Читай дальше!

А самое главное тут, что под все эти данные, он сделал интерактивную онлайн карту. Каждая «страна» на карте это репозитории, написанные на одном языке или фреймворке. Например, Pythonia = Python, а Swiftoria - на Swift.

Имена стран генерились с помощью chatgpt таким запросом:

Please analyze these repository and detect a common theme (e.g. programming language, technology, domain). Pay attention to language too (english, chinese, korean, etc.). If there is no common theme found, please say so. Otherwise, If you can find a strong signal for a common theme please come up with a specific name for imaginary country that contains all these repositories. Give a few options. When you give an option prefer more specific over generic option (for example if repositories are about recommender systems, use that, instead of generic DeepLearning)

Хм, буду теперь названия переменных придумывать таким способом, пусть проклятые роботы за меня пашут.

И даже поиск работает, чудо 🍴 Можно натолкнуться на достаточно интересные штуки, которые известны лишь узкому числу лиц и особо нигде не пиарятся.

Потыкать карту можешь: 🐱 тут.
Страница проекта с подробностями: 🐱 тут.

ps: Идея для стартапа: Сделать интерактивную карту с данными pornhub. Чтобы тыкнул и видосики-видосики.

tags:
#services #git

💩 @bashdays
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Как правильно хранить тяжелые файлы гит репах? Например, бинарники или что-то подобное.

Ответ очевидный и правильный — никак! В гитлабах/гитхаба/битбакетах установлены лимиты на размер отдельных файлов. Там что-то вроде 50 метров на файл дается.

В принципе можно уложиться. Но нахуй надо. Прикинь у тебя пайплайн вытягивает репу размером с 10 гигабайт. И так каждую сборку. Гит репа должна быть тощей и дрищёвой.

А всё тяжелое будь бобр-добр храни в s3 либо на других решениях.

НО если очень хочется прям в гите держать. Для этого существует GIT LFS. Дословно — Large File Storage (дохуя большое файловой хранилище).

У LFS уже свои лимиты в отличие от нативного git репозитория. И это LFS включен из коробки в гитлабах/гитхаба/битбакетах. Там уже размер файла может быть 1 гигабайт или что-то вроде того.

В gitea тоже можно LFS через конфиг включить:

[server]  
LFS_START_SERVER = true
LFS_ALLOW_PURE_SSH = true

[lfs]
PATH = /home/gitea/data/lfs


Как этим пользоваться?

Ставим к себе на машину:

apt-get install git-lfs
brew install git-lfs


Переходим в свой гит репозиторий и инициализируем:

cd /home/user/linuxfactory/infra
git lfs install


В папке /infra/roles/node_exporter/files у меня лежит бинарник node_exporter который весит 100 мегабайт

На самом деле я хуй знает сколько он весит, это для примера.

Помечаем его:

cd /infra/roles/node_exporter/files
git lfs track "node_exporter"


После этого в папке files появится файл .gitattributes. Это правила для этого файла, которые указывают чтобы node_exporter улетал в LFS.

Внутри этот файл выглядит так:


node_exporter filter=lfs diff=lfs merge=lfs -text


И по итогу бинарник в репе станет ссылкой на настоящий бинарник в LFS.

А еще можно вайлдкардами трекать:

git lfs track "*.jpg"


Ну а дальше, как обычно:

git add .
git commit -m "add lfs for node_exporter"
git push


Всё! Теперь твой большой файл аккуратно лежит в LFS, а в самом гит репозитории осталась лишь ссылка которая на этот файл ссылается.

Мне тут пришлось партнерских постов на эту неделю понабрать, реинвестируем в развитие @gitgate, так что рекомендую включить баннерную слепоту и сильно не триггериться. Спасибо за понимание!

Чтиво: про LFS можешь глянуть еще тут и тут.

tags: #git #devops

🔔 @bashdays➡️ @gitgate
Please open Telegram to view this post
VIEW IN TELEGRAM