Admin Future
241 subscribers
51 photos
1 video
4 files
120 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
🚀 DevOps: Скрипт "CI/CD-раннер за 60 секунд" (Docker)

Боль: Ваш docker build в общем CI/CD GitLab/GitHub "висит" в очереди 20 минут. Вы не можете работать, потому что все "раннеры" заняты.

Реакция админа: "Пойду попью кофе, подожду".
Реакция архитектора: "Я запущу свой runner на своей Home Lab (или VDS) за 60 секунд".

Эти "однострочники" — это не просто docker run, это мгновенное масштабирование вашего CI/CD.

Скрипт для GitLab Runner:


# 1. Получите ваш Registration Token из GitLab (Settings -> CI/CD -> Runners)
GITLAB_TOKEN="ВАШ_ТОКЕН"

# 2. Запускаем "вечный" раннер в Docker
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest

# 3. Регистрируем раннер
docker exec -it gitlab-runner \
gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--registration-token "$GITLAB_TOKEN" \
--executor "docker" \
--docker-image "docker:20.10" \
--description "My-Docker-Runner"

Скрипт для GitHub Actions Runner: (Процесс похож, но требует docker-compose для авто-регистрации)

Взгляд архитектора: Это "Infrastructure on-demand" (Инфраструктура по требованию). Вы не ждете ресурсы, вы создаете их. Вы строите распределенную CI/CD-систему, используя Docker как "строительный блок".

#devops #docker #cicd #gitlab #github #automation #скрипты #гайд
⚙️ DevOps (Automation): "Grep по YAML". Встречаем yq

Боль: Вам нужно в CI/CD-скрипте "вытащить" версию image: из docker-compose.yml или kubernetes-deployment.yml.

Реакция админа: cat docker-compose.yml | grep "image:" | awk -F': ' '{print $2}' (Это "хрупкий" скрипт. Он сломается от одного лишнего пробела или комментария).

Реакция архитектора: yq '.services.my-app.image' docker-compose.yml

yq — это jq (для JSON), но для YAML. Это "швейцарский нож" для парсинга *.yml файлов в bash.

Почему это киллер-фича:

* Надежность: Он понимает структуру YAML. Ему плевать на пробелы и комментарии.

* Чтение: yq '.spec.replicas' deployment.yml

* Запись: yq -i '.spec.replicas = 3' deployment.yml (Изменить файл "на лету"!)

* Merge: yq eval-all '. as $item ireduce ({}; . * $item)' file1.yml file2.yml (Склеить два YAML-файла).

Взгляд архитектора: Это надежная автоматизация (Reliable Automation). Ваши bash-скрипты в CI/CD (GitLab, Jenkins) становятся предсказуемыми. Вы можете безопасно читать и модифицировать ваши IaC-конфиги "на лету".

#devops #linux #yaml #yq #automation #cicd #скрипты #гайд
❤2🔥2
🛡 ЧЕКЛИСТ ПО ЗАЩИТЕ CI/CD И КЛАСТЕРА
Защита веток (Branch Protection): жесткий запрет прямых пушей в main / master / release. Слияние — строго через Pull Request / Merge Request минимум с одним аппрувом.

Контроль CI-манифестов: любые правки в .gitlab-ci.yml, azure-pipelines.yml, Jenkinsfile требуют обязательного согласования (Code Owners) со стороны DevSecOps / инфраструктурной команды.

Отказ от статичных токенов: миграция на динамическую федерацию удостоверений через OpenID Connect (OIDC) с выдачей короткоживущих токенов. Никаких постоянных kubeconfig на файловой системе!

Принцип наименьших привилегий в K8s: гранулярные роли RBAC на каждый отдельный namespace. Запретить CI/CD-пайплайнам использовать глобальный cluster-admin.

Харденинг сборочных хостов: категорический запрет на запуск контейнеров с флагом --privileged и проброс /var/run/docker.sock. Ограничение исходящего трафика (Egress Firewall) только доверенными реестрами и репозиториями.

Алертинг на аномалии IAM: настройка триггеров на сброс паролей привилегированных пользователей, добавление новых устройств MFA и нетипичные изменения геопозиции входа.

#devops #cicd #kubernetes #gitlab #security #sysadmin #admin_future