ServerAdmin.ru
31.6K subscribers
851 photos
57 videos
23 files
3K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
​​Хочу посоветовать всем системным администраторам, кто это еще не сделал, обратить пристальное внимание на git. Сам я давно пользуюсь этой системой контроля версий, но только недавно дошел до того, что стал там хранить практически все текстовые данные.

Чистил свою тестовую лабу и удалил несколько виртуалок. И только потом вспомнил, что на одной из них были нужные скрипты, на написание которых ушло прилично времени. Все репозитории проверил, нигде не нашел копий. Их просто не было. Пришлось потратить несколько часов на восстановление.

Теперь всегда, прежде чем начать писать какой-то скрипт или более ли менее большой конфиг, создаю репозиторий под это дело и все пушу туда. Я обычно использую облачный gitlab и свой локальный для приватных данных. Gitlab - мое личное предпочтение. Вы можете использовать любой бесплатный сервис. Их сейчас полно развелось.

Мало того, что это удобный контроль изменений, так еще и мгновенный бэкап всей информации по одной команде. Плюс, можно быстро что-то отредактировать через веб интерфейс. В общем, удобно, рекомендую. Еще и к разработчикам приблизитесь, будете лучше разбираться в их кухне.

#git
Если вы по какой-то причине до сих пор не изучили Git 😱, то можете попробовать изучить его с помощью бесплатного курса - https://ru.hexlet.io/courses/intro_to_git. Я там зарегистрировался и посмотрел уроки. Понравилось, как всё устроено. Никакие персональные данные платформа не вытягивает. Регистрация по почте. Немного на Stepik похоже.

Есть несколько бесплатных курсов для системных администраторов. Помимо Git может быть полезно пройти Основы командной строки Linux и Основы языка Python.

Отмечаю, что это не реклама данной платформы. У меня никто ее не заказывал. Я просто немного на нее посмотрел и мне показалась интересной. Очень много всевозможных курсов, в основном для программистов, но есть кое-что по devops и системному администрированию. При этом месячная подписка стоит 3900. Сравните это с другими курсами, которые у меня рекламируются.

Можете просто купить доступ на месяц и забрать себе все интересующие вас курсы, чтобы спокойно изучить потом. Очень доступно. Если есть реальное желание чему-то научиться, то можно это без особых проблем и финансовых затрат сделать.

#обучение #git
​​Gitea - легковесная Open Source-система для управления Git-репозиториями, которую можно развернуть на своем сервере. Обычно, когда вспоминают про self-hosted git репозиторий, на ум приходят Gitlab, Bitbucket. Я почти везде вижу либо Gitlab, либо аккаунт в Github. Хотя зачастую, весь функционал, что предлагают эти продукты, не нужен.

В то же время Gitea более проста в установке, настройке, бэкапе. Может работать даже на Raspberry Pi. При этом закрывает все основные потребности в хранении кода. Очень многим командам разработчиков или девопсов будет её достаточно. Особенно если уже есть какой-то инструмент для CI/CD.

В самом простом случае Gitea может использовать базу данных SQLite. Поставить и потыкать, как обычно, проще всего в Docker. Не буду сюда копировать простыню docker-compose файла. Посмотрите его в документации. При этом присутствует дистрибутив под Windows. Gitea можно поставить даже на Windows 10.

По идее, это идеальный вариант для собственного репозитория. Хотя у меня всё лежит в бесплатном облачном gitlab. Локальный только для тестов использую.

Сайт - https://gitea.io
Документация - https://docs.gitea.io
Исходники - https://github.com/go-gitea/gitea
Установка на Windows - https://www.youtube.com/watch?v=_Wu1MjrsGUc

#git #selfhosted
👍2
​​Необычный софт посмотрел, аналогов которого раньше не видел. Git репозиторий с просмотром содержимого через консоль - Soft Serve (странное название 🤔). Есть пакеты под все системы. Также можно в докере запустить. Я пробовал и так, и так.

https://github.com/charmbracelet/soft-serve

Ставим на rpm-based:
# rpm -ivh https://github.com/charmbracelet/soft-serve/releases/download/v0.1.2/soft-serve_0.1.2_linux_amd64.rpm
Запускаем:
# soft
У вас должен стоять git, чтобы всё заработало. Вот готовая команда для запуска в докере.

По умолчанию Soft Serve слушает все интерфейсы, работает на порту 23231. Для подключения нужно использовать приватный ключ, который он положит в директорию ~/.ssh, название - soft_serve_server_ed25519.
# ssh localhost -p 23231 -i ~/.ssh/soft_serve_server_ed25519

Окажетесь в TUI. У вас там будет пусто, так как репозитории не настроены. Их через конфиг надо добавлять. Пример есть на github. Причём для настройки надо склонировать дефолтную репу config и запушить изменения настроек.

Посмотреть, как всё это будет работать в настроенном виде, можно в публичном репозитории по адресу git.charm.sh. Подключение по ssh, пароль пустой (без пароля).
# ssh git.charm.sh

Я не знаю, где подобное может на практике пригодиться. Чисто по приколу для своих личных локальных репозиториев. Необычно просматривать всё через консоль. Работает как обычный git сервер. Создаёте, клонируете, пушите код. Через TUI только просмотр.

#git
​​Вы когда-нибудь публиковали в паблик свои пароли по ошибке? Я сам ни разу не замечал за собой такое, но от разработчиков видел подобное много раз. Один знакомый умудрился в публичные репы github выложить Dockerfiles нод криптовалют со своими кредами.

Есть достаточно известный продукт gitguardian (https://gitguardian.com) для автоматического сканирования репозиториев и обнаружения там приватных данных: токенов, паролей, сертификатов. Настраивается он просто, так как доступна готовая интеграция с популярными сервисами. А сам он работает по модели SaaS или self-hosted (только за деньги).

Есть бесплатная версия для небольших команд. У неё одно простое ограничение - не более 25 разработчиков на проект. Разработчиком в данном контексте является активный контрибьютор, который сделал хотя бы один коммит в течении последних 90 дней. Ограничение достаточно лояльное, так что бесплатная версия подойдёт для широкого круга небольших команд.

#git #devops #security #бесплатно
👍27👎2
​​Познакомился с отечественным сервисом git, условным аналогом github - https://gitflic.ru. Зарегистрировался там и на всякий случай перенёс несколько своих основных личных репозиториев. Я их всегда хранил на gitlab, но последнее время стал регулярно копировать локально, опасаясь блокировки или ещё каких-нибудь диверсий.

Gitflic имеет бесплатный тарифный план, у которого одно ограничение - в приватном репозитории не может быть более 5-ти человек. Для одиночного использования считай что ограничений нет совсем.

Сразу видно, что проект очень молодой и ещё не факт, что взлетит, но пользоваться можно уже сейчас. Функционал небольшой, но лично мне кроме непосредственно git больше ничего не надо. Дизайн простой и лаконичный. Бонусом идёт хороший отклик и быстродействие в браузере. Думаю, это потому что нагрузки нет. Когда работаешь в браузере разница с gitlab огромная. Последний очень тормозной.

Надеюсь проект взлетит и наберёт популярность. Мне осталось придумать какой-нибудь наименее костыльный вариант для синхронизации трёх источников с кучей репозиториев - gitlab, gitflic, локальный ноут. У кого какие идеи, как это лучше организовать? Понятно, что можно просто скриптом забабахать, но может как-то по-другому можно?

#git #бесплатно #отечественное
👍51👎11
​​Всем хорошо известен продукт Gitlab, который закрывает несколько базовых потребностей современной разработки: хранение кода, сборка и деплой, хранение образов. И всё это реализовано в единой платформе.

Обратной стороной этого удобства является высокие требования по железу, избыточный во многих случаях функционал, перегруженный, не слишком отзывчивый веб интерфейс.

Я хочу предложить на рассмотрение альтернативную сборку из отдельных компонентов, которые в сумме предоставляют такой же базовый функционал. Не хочу сказать, что это прямой аналог, но в некоторых простых ситуациях это может быть полноценная, но более лёгкая замена Gitlab.

Gitea - легковесная Open Source-система для управления Git-репозиториями, которую можно развернуть на своем сервере. Отличает её простота установки и настройки, низкие требования к производительности. В самом простом случае Gitea может использовать базу данных SQLite.

Drone CI - популярная система непрерывной интеграции, написанная на Go. Также отличается легковесностью (docker образ ~24Мб), простым синтаксисом yaml файлов для сборки. Легко интегрируется с любым git репозиторием и хранилищем docker образов. Отлично подходит для знакомства с ci/cd на основе docker контейнеров.

Docker Registry 2.0 - вариант локального registry от самой компании Docker. Тоже очень простой продукт с минимальными требованиями к железу. Размер docker контейнера, в котором он запускается 8Мб. При желании к нему можно установить веб интерфейс - docker-registry-ui.

Указанный набор программ связывается между собой в единую систему, обеспечивая базовый функционал по разработке и доставке софта на базе docker контейнеров. Drone CI расширяет функционал с помощью плагинов. Например, плагин для отправки уведомлений в telegram, запуска удалённых команд по ssh, выполнения webhook и т.д.

Если есть идеи, чем можно заменить одну из предложенных программ, предлагайте в комментариях. Я сделал акцент на легковесности и простоте установки, настройки.

Gitea - https://github.com/go-gitea/gitea
Drone - https://github.com/harness/drone
Registry 2.0 - https://hub.docker.com/_/registry

#docker #devops #git
👍47👎7
​​Ранее я уже рассказывал про Gitea. Это легковесная Open Source-система для управления Git-репозиториями, которую можно развернуть на своем сервере. Её отличает простота установки и настройки, а так же возможность использования базы sqlite. Для небольших проектов этого достаточно, зато никаких хлопот с обслуживанием и бэкапами.

Попробовать Gitea можно, запустив в Docker. Я решил ещё раз написать про неё, потому что попробовал тему - Gitea Modern. С ней совсем другой вид и впечатление от веб интерфейса. Внешний вид приятнее и функциональнее.

Вот готовый docker-compose.yml для запуска с этой темой по умолчанию:

version: "3"

networks:
 gitea:
  external: false

services:
 server:
  image: gitea/gitea:1.16.8
  container_name: gitea
  environment:
   - USER_UID=1000
   - USER_GID=1000
   - GITEA_CUSTOM=/data/gitea
  restart: always
  networks:
   - gitea
  volumes:
   - ./gitea:/data
   - /etc/timezone:/etc/timezone:ro
   - /etc/localtime:/etc/localtime:ro
  ports:
   - "3000:3000"
   - "222:22"

Я добавил переменную GITEA_CUSTOM, а её содержимое попадает в volume, подключенный к ./gitea. Теперь надо сделать папку /data/gitea/public/css и положить туда файл темы theme-gitea-modern.css. Новую тему также надо добавить в конфиг /data/gitea/conf/app.ini. Добавляем в самый конец:
[ui]
THEMES = gitea,gitea-modern
DEFAULT_THEME = gitea-modern

Больше от дефолтной установки ничего не менял. Теперь можно запустить и оценить новый вид веб интерфейса.

#git #devops
👍38👎2