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

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


Админ - @maksimshap
Download Telegram
AI-промпт: "Напиши за меня production-ready Terraform-модуль"

Админ просит AI: "напиши tf-файл для создания VM". Архитектор просит AI: "напиши переиспользуемый модуль".

Правильно написанный модуль main.tf, variables.tf, outputs.tf — это основа Infrastructure as Code (IaC). Давайте заставим AI следовать лучшим практикам.

Промпт (для ChatGPT/Gemini/Copilot):

Выступи в роли Senior DevOps Engineer, сертифицированного HashiCorp.

Создай структуру Terraform-модуля для развертывания "Azure Virtual Machine" (Linux). Модуль должен быть переиспользуемым, безопасным и следовать best practices.

Требования:
1. Файлы: Раздели код на `main.tf`, `variables.tf` и `outputs.tf`.
2. `main.tf`: Должен создавать группу ресурсов, VNet, Subnet, сетевой интерфейс (NIC) и саму VM (SKU `Standard_B2s`).
3. `variables.tf`: Создай переменные для `location`, `vm_name`, `admin_username` и `admin_ssh_key` (публичный ключ).
4. Безопасность: Не создавай публичный IP-адрес для VM. Доступ должен быть только по приватному IP.
5. `outputs.tf`: Выведи наружу `private_ip_address` созданной VM.
6. Комментарии: Добавь комментарии, объясняющие ключевые блоки.

Предоставь код для каждого из трех файлов.

Взгляд архитектора: AI здесь — не просто генератор кода. Это ускоритель для создания стандартных блоков (building blocks). Архитектор не тратит время на написание типовых модулей. Он использует AI, чтобы быстро получить 80% готового, качественного кода, а затем тратит 20% своего времени на его доработку, аудит и интеграцию в общую систему.

#ai4admin #terraform #iac #devops #azure #промпты #architect
Windows: "Агент не нужен". Централизуем логи Windows с помощью WEF

У вас 50 серверов. На одном из них происходит инцидент. Вы подключаетесь по RDP и видите... пустой журнал событий. Злоумышленник всё почистил. Вы проиграли.

WEF (Windows Event Forwarding) — это "спящий гигант" безопасности в Windows. Это встроенный, агент-лесcный механизм, который позволяет собирать критические логи со всех машин в домене в одну точку (WEC - Windows Event Collector) в реальном времени.

Почему это уровень архитектора:

Безопасность: Атакующий не может почистить логи на сервере-коллекторе.

Надежность: Работает на уровне ОС. Никаких сторонних агентов, которые могут "упасть" или съесть ресурсы.

Гибкость: Вы можете подписаться только на то, что вам нужно (например, ID 4625 - неудачный вход, ID 4688 - создание процесса).

План внедрения "на пальцах":

На сервере-коллекторе (WEC): Запустите wecutil qc (Quick-Config).

На клиентах (GPO):

Включите службу WinRM (Windows Remote Management).

Настройте "Subscription Manager": [GPO] -> Policies -> Admin Templates -> Windows Components -> Event Forwarding.

Укажите адрес вашего сервера-коллектора.

На коллекторе: Создайте "Подписку" (Subscription), указав, с каких компьютеров и какие именно события вы хотите собирать.

Взгляд архитектора: WEF — это не просто сбор логов. Это фундамент для SIEM (Security Information and Event Management). Вы превращаете "слепые" серверы в прозрачную, наблюдаемую систему. Это первый и самый важный шаг к построению настоящего Security Operations Center (SOC).

#windows #security #wef #logging #activedirectory #architect #гайд
👍2
Ansible: Хватит хранить пароли в Git! Используем ansible-vault

Вы написали гениальный плейбук, но в group_vars/all.yml у вас лежит db_password: "MySuperSecretPassword123". Теперь этот плейбук нельзя безопасно положить в Git.

Ansible Vault — это не отдельный инструмент, это встроенный в Ansible механизм шифрования. Он позволяет шифровать не целые плейбуки, а только файлы с чувствительными данными (например, vars/secrets.yml).

Как это работает (магия в 3 команды):

Создаём зашифрованный файл: Вместо nano vars/secrets.yml вы пишете:

Bash
ansible-vault create vars/secrets.yml

Ansible попросит вас придумать пароль (vault password) и откроет редактор. Вы вводите свои секреты, сохраняете, и файл на диске оказывается полностью зашифрован.

Редактируем файл:

Bash
ansible-vault edit vars/secrets.yml

Снова вводите пароль, редактируете, сохраняете. Файл остается зашифрованным.

Запускаем плейбук: Ansible сам поймет, что файл зашифрован, и спросит пароль при запуске.

Bash
# Ansible спросит пароль в консоли
ansible-playbook site.yml

# ...или используем файл с паролем (для CI/CD)
ansible-playbook site.yml --vault-password-file ~/.vault_pass

Взгляд архитектора: Это и есть GitOps в действии. Ваши секреты хранятся вместе с кодом, они версионируются, но остаются в безопасности. Архитектор строит единый источник правды (Single Source of Truth). С ansible-vault ваш Git-репозиторий становится этим источником для всей инфраструктуры, включая пароли и ключи.

#linux #ansible #devops #security #iac #gitops #гайд
Fleet Security: Хватит гадать. Используем osquery

У вас 200 машин (Windows, Linux, macOS). Как быстро ответить на эти вопросы:
"На каких серверах запущен sshd не из стандартного /usr/sbin/sshd?"
"На каких машинах macOS не включен FileVault?"
"У каких пользователей Windows в AppData лежат .exe файлы?"
Бегать по машинам или писать 100500 скриптов — это путь админа. osquery — это путь архитектора.

osquery (от Facebook/Meta) — это open-source инструмент, который представляет вашу операционную систему как базу данных, к которой можно делать SQL-запросы.

Примеры запросов:
Найти всех пользователей с bash на Linux-машинах:

SQL
SELECT * FROM users WHERE shell = '/bin/bash';

Найти подозрительные открытые порты (кто слушает не 0.0.0.0 или 127.0.0.1):

SQL
SELECT pid, port, address FROM listening_ports WHERE address NOT IN ('0.0.0.0', '127.0.0.1', '::');

Проверить, включен ли FileVault на macOS:

SQL
SELECT * FROM disk_encryption WHERE encrypted = 0;

Взгляд архитектора: osquery — это основа для непрерывного аудита (Continuous Auditing) и Threat Hunting. Вы больше не "сканируете" хосты, вы "опрашиваете" их в реальном времени. Подключив osquery-агенты к централизованному серверу (fleet-менеджеру), вы получаете полный, актуальный срез безопасности всей вашей инфраструктуры, независимо от ОС.

#linux #macos #windows #security #osquery #sre #architect #гайд
Windows: Не жди 90 минут! Применяем GPO немедленно на 100+ машинах

Вы внесли критическое изменение в GPO (например, правило AppLocker или LAPS) и вам нужно, чтобы оно применилось сейчас, а не "в течение 90-120 минут". Подключаться к каждой машине по RDP и писать gpupdate /force — это не вариант.

Архитектор решает эту задачу параллельно и мгновенно.

Командлет Invoke-GPUpdate — ваш пульт управления GPO:

Принудительное обновление на одном ПК:

PowerShell
Invoke-GPUpdate -Computer "WKS-001" -Force

Обновление на всех компьютерах в OU: Это настоящая магия. Находим все ПК в OU "Workstations" и обновляем их.

PowerShell
Get-ADComputer -Filter * -SearchBase "OU=Workstations,DC=corp,DC=local" | ForEach-Object {
Invoke-GPUpdate -Computer $_.Name -Force -RandomDelayInMinutes 0 -ErrorAction SilentlyContinue
}

-RandomDelayInMinutes 0 — применить немедленно, не создавая "шторм" на контроллерах домена (для 100 машин это безопасно).

Взгляд архитектора: Это не просто "удобство". Это контроль над изменениями (Change Management). Когда вы внедряете критический патч безопасности через GPO, вы должны быть уверены, что он применился. Invoke-GPUpdate дает вам этот контроль, превращая "надежду" в инженерную точность.

#windows #powershell #gpo #automation #activedirectory #скрипты #musthave
AI-промпт: "Наследие". AI документирует чужой docker-compose.yml

Вы получили в наследство проект. Документации нет. Есть только один файл — docker-compose.yml на 150 строк, 10 сервисов, 5 сетей и 8 "volumes". Как в этом разобраться?

Заставим AI сделать за нас реверс-инжиниринг и создать документацию.

Промпт (для ChatGPT/Gemini/Copilot):
Выступи в роли Senior DevOps Engineer и эксперта по Docker.
Я передаю тебе `docker-compose.yml` из унаследованного проекта.

[...ВСТАВЬТЕ СЮДА ВЕСЬ КОД docker-compose.yml...]

Твоя задача — создать для меня Markdown-документацию:
1. Общая архитектура: Опиши одним абзацем, что это за приложение (например, "Это стек WordPress, состоящий из веб-сервера Nginx, самого WordPress (PHP-FPM) и базы данных MariaDB").
2. Разбор по сервисам: Для каждого сервиса (`nginx`, `wordpress`, `db`...):
Назначение: Что он делает?
Образ: Какой образ Docker используется?
Порты: Какие порты и куда пробрасываются?
Volumes: Какие директории монтируются и за что они отвечают?
Зависимости: От каких других сервисов он зависит.
3. Сетевое взаимодействие: Опиши, какие сети используются и кто с кем может общаться.
4. Хранение данных: Перечисли все именованные `volumes` и объясни, что в них хранится.

Взгляд архитектора: Архитектор не тратит 3 часа на рутинный реверс-инжиниринг. Он использует AI как когнитивный разгрузчик (cognitive unloader). AI создает 90% базовой документации за 30 секунд. Инженер тратит 10 минут на проверку и дополнение этой базы, экономя часы драгоценного времени, которое он может потратить на проектирование, а не на раскопки.

#ai4admin #docker #devops #documentation #automation #промпты #sre
Linux: grep — это не анализ. Считаем ошибки в логах как SRE с помощью awk

Ваш лог-файл access.log весит 5 ГБ. grep "ERROR" выдает 50 000 строк. Как понять, какая ошибка самая частая? Прокручивать less — это не работа.

awk — это не просто "еще один grep". Это полноценный язык обработки текста.

Задача: Найти ТОП-10 самых частых ошибок в error.log.
Решение в одну строку:
Bash
# Ищем строки со словом "error", вытаскиваем текст ошибки (предполагаем, что он после 5-го поля),
# считаем уникальные строки и сортируем по количеству.
grep -i "error" /var/log/nginx/error.log | \
awk -F' ' '{ $1=""; $2=""; $3=""; $4=""; $5=""; print $0 }' | \
sort | \
uniq -c | \
sort -nr | \
head -n 10

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

Взгляд архитектора: Админ ищет одну ошибку. Архитектор ищет паттерны. awk в связке с sort и uniq — это базовый инструмент SRE-инженера для агрегации данных. Он позволяет превратить гигабайты хаотичных логов в осмысленную статистику для принятия решений.

#linux #awk #logging #sre #bash #команды #cli
Linux: "Я случайно дал chmod 777". Восстанавливаем права одной командой

Каждый делал это. На эмоциях chmod -R 777 /var/www — и теперь ваш веб-сервер зияет дырами, а файлы исполняются из ниоткуда. Ручное исправление — ад.
Архитектор не исправляет вручную. Он автоматизирует восстановление.

Как быстро восстановить стандартные права для всей системы:
Bash
# Для Debian/Ubuntu-подобных систем
sudo apt-get install debsums
sudo debsums -c | xargs -r sudo apt-get --reinstall install

# Для RHEL/CentOS-подобных систем
sudo rpm -Va | grep '^..5' | awk '{print $NF}' | xargs -r sudo yum reinstall

Что делают эти команды:

debsums -c (для Debian/Ubuntu) или rpm -Va (для RHEL/CentOS) проверяют все установленные пакеты на соответствие контрольным суммам и правам файлов из базы пакетов.

grep '^..5' (для RPM) и awk фильтруют только те файлы, у которых изменены права.

xargs -r sudo apt-get --reinstall install (или sudo yum reinstall) переустанавливает только те пакеты, чьи файлы были изменены. Важно: переустанавливаются только изменённые пакеты, а не вся ОС.

Взгляд архитектора: Эта команда — не просто "фикс". Это часть стратегии восстановления после инцидентов (IR) и управления конфигурацией (CM). Вы не "чините", вы возвращаете систему в известное, безопасное состояние. Это фундаментальный принцип отказоустойчивых систем.

#linux #security #commands #sysadmin #recovery #гайд
Автоматизация: Хватит копипастить! Укрощаем git alias для быстрой работы

Вы пишете git status, git commit -m "...", git push origin develop по 100 раз в день. Это рутина, которая отнимает время и силы.

git alias
— это ваша личная "горячая клавиша" для Git-команд. С его помощью можно сократить самые длинные и сложные команды до пары символов.

Как настроить (файл ~/.gitconfig):
Ini, TOML
[alias]
st = status -sb # git st покажет статус кратко
co = checkout # git co branch_name
br = branch # git br
ci = commit # git ci -m "msg"
ps = push # git ps
pl = pull # git pl
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit # git lg - красивый лог
undo = reset HEAD~ # git undo - отменить последний коммит (локально)
amend = commit --amend --no-edit # git amend - обновить последний коммит без изменения сообщения

Как использовать: Просто вводите git st, git lg, git undo вместо длинных команд.

Взгляд архитектора: Эффективность — это краеугольный камень работы архитектора. git alias — это микрооптимизация, которая влияет на производительность команды. Меньше опечаток, быстрее работа, больше времени на проектирование, а не на рутину.

#git #automation #productivity #cli #devops #скрипты
Хватит использовать cp! rsync — швейцарский нож админа для бэкапов

Команда cp -r /source /dest — это первое, чему учат. Но для реальных задач админа (бэкапы, синхронизация) она не годится: она медленная, неэффективная и не работает по сети.

rsync — это не просто "remote copy". Это инструмент дельта-синхронизации. Он копирует только изменения, а не все файлы целиком.

Почему rsync — это уровень архитектора:
Флаг -a (Archive): Это магия. Он заменяет кучу флагов (-rlptgoD) и означает "сделать точную копию", сохраняя:

recursive (рекурсию)
links (симлинки)
perms (права доступа)
times (время модификации)
group (группу)
owner (владельца)

Флаг -z (Compress): Сжимает трафик "на лету" при передаче по сети.

Флаг --delete: Удаляет из цели те файлы, которых больше нет в источнике. Так создается точное зеркало.

Работа через SSH: Встроен по умолчанию.

Три команды, которые закроют 90% ваших задач по бэкапу:
Локальный бэкап (зеркалирование папки):
Bash
# Копируем www, сжимая, сохраняя права, и удаляя лишнее в бэкапе
rsync -avz --delete /var/www/ /mnt/backup/www_mirror/

Внимание! /www/ (слэш) и /www (без слэша) — это разные вещи для rsync!

PUSH-бэкап на удаленный сервер:
Bash
# Отправляем наши данные на бэкап-сервер
rsync -avz -e ssh /path/to/local/data user@backup.server:/path/to/remote/storage

DRY-RUN (Сухой прогон): Самый важный флаг для новичков. Ничего не делает, но показывает, что бы он сделал.
Bash
rsync -avzn --delete /source/ /dest/

Взгляд архитектора: rsync — это идемпотентный инструмент. Его можно запускать в cron каждую минуту — и он не создаст нагрузки, если файлы не менялись. Это основа для построения эффективных, быстрых и надежных стратегий бэкапа и репликации данных.

#linux #rsync #backup #automation #команды #sysadmin #гайд
👍3
Мы рады видеть здесь каждого.
Наша цель — не просто собрать аудиторию, а построить сильное сообщество инженеров, которые готовы расти от админов до архитекторов.

Канал "Admin Future" — это системная библиотека, а не поток случайных советов. Мы ценим ваш вклад и хотим делать контент, который будет максимально полезен именно вам.

Чтобы лучше узнать друг друга, пройдите, пожалуйста, короткий опрос: какова ваша основная специализация?

Это поможет нам держать правильный баланс между #windows, #linux, #security и #devops.
👍5🤝2
Linux: "Какой процесс держит этот файл?" Магия lsof
Классическая ситуация: вы пытаетесь отмонтировать диск, а система говорит: "Resource busy". Или порт занят, а netstat/ss не показывают, кем. Вместо перезагрузки архитектор использует скальпель.

lsof (List Open Files) — это фундаментальная утилита, которая показывает, какой процесс какой файл (или сокет, или библиотеку) держит открытым. В мире *nix "всё есть файл", поэтому lsof видит всё.

Три команды, которые решают 90% проблем:
Узнать, кто "держит" файл или папку:
Bash
# Кто мешает отмонтировать /mnt/data?
lsof /mnt/data

Узнать, какой процесс слушает порт (альтернатива ss -tlpn):
Bash
# Кто занял 80-й порт?
sudo lsof -i :80

Посмотреть, что делает конкретный пользователь или процесс:
Bash
# Что открыл пользователь 'www-data'?
sudo lsof -u www-data
# Какие файлы и сокеты открыты у процесса с PID 1234?
sudo lsof -p 1234

Взгляд архитектора: lsof — это инструмент диагностики и отладки. Он позволяет понять внутренние связи в системе. Умение им пользоваться — это не просто "починить", а понять коренную причину (root cause) проблемы, будь то утечка файловых дескрипторов или конфликт портов.

#linux #lsof #diagnostics #sre #команды
Windows: perfmon — это не просто график. Находим узкие места
Когда сервер тормозит, админ открывает Диспетчер задач и видит 100% CPU.
Архитектор открывает Performance Monitor (perfmon), чтобы понять, почему.

Диспетчер задач показывает, что происходит сейчас.
perfmon позволяет собирать данные часами и находить паттерны и узкие места.

Как найти реальную причину (План):
Не смотрите на графики. Создайте "Группу сборщиков данных" (Data Collector Set).
perfmon -> "Группы сборщиков данных" -> "Создать... вручную".

Добавьте нужные счетчики.
Какие счетчики добавить? (Стартовый набор SRE):
Processor\% Processor Time (Общая загрузка)
System\Processor Queue Length (Очередь к процессору. Если стабильно > 2 на ядро — беда).
Memory\Available MBytes (Свободная память)
Paging File\% Usage (Если используется активно — нехватка RAM).
LogicalDisk\Avg. Disk sec/Read (и /Write) (Время отклика диска. Если > 20ms — диски не справляются).
LogicalDisk\Current Disk Queue Length (Очередь к диску. Если стабильно > 2 — дисковый bottleneck).

Запустите сбор на 1-2 часа во время пиковой нагрузки.
Проанализируйте лог: Откройте .blg-файл. Теперь вы можете в ретроспективе увидеть, что сначала выросла очередь к диску, а потом процессор ушел в 100%, ожидая I/O.

Взгляд архитектора: perfmon — это рентгеновский аппарат. Вы перестаете гадать и начинаете видеть факты. Это позволяет вам принять правильное решение: нужно не "добавить CPU", а "оптимизировать запросы к БД" или "вынести логи на отдельный, более быстрый диск".

#windows #perfmon #performance #sre #гайд
👏1
Ansible для Windows: Хватит "кликать". Управляем Windows-серверами из Linux

Для многих "Ansible" — это что-то про Linux. Но что, если я скажу, что вы можете управлять всем вашим парком Windows-серверов так же, как и Linux-машинами? Без RDP, без ручных кликов.

Это — Ansible for Windows. Он работает не через SSH, а через WinRM (Windows Remote Management), который уже встроен в вашу систему. Это мост между мирами.

План для "Full-stack админа":

На Windows-машинах (целях): Нужно один раз настроить WinRM. Проще всего — запустить официальный скрипт от Ansible.
https://github.com/ansible/ansible-documentation/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
PowerShell
# Запускаем PowerShell от имени администратора
.\ConfigureRemotingForAnsible.ps1

На Linux-машине (контроллере):
Устанавливаем pywinrm: pip install pywinrm
Настраиваем inventory (список хостов), указывая, что это Windows:
Ini, TOML
[windows]
web-srv01.corp.local

[windows:vars]
ansible_user = "CORP\Administrator"
ansible_password = "YourSecretPassword" # Временно! (Лучше использовать Vault)
ansible_connection = winrm
ansible_winrm_server_cert_validation = ignore # Для тестовой среды

Ваш первый плейбук (установить IIS):
YAML
---
- name: Configure Windows Web Server
hosts: windows
tasks:
- name: Install IIS (Web-Server)
ansible.windows.win_feature:
name: Web-Server
state: present

- name: Start IIS Service
ansible.windows.win_service:
name: W3Svc
state: startedhttps://chatgpt.com/backend-api/estuary/content?id=file_000000005a986246808fbe7208d0cb2f&ts=489227&p=fs&cid=1&sig=e9b5ebaf47d24352dc6bba33f22b0781df239f5f55614f6cd89fd856db308bb6&v=0
start_mode: auto

Запуск: ansible-playbook -i inventory setup_iis.yml

Взгляд архитектора: Это Infrastructure as Code (IaC) в чистом виде. Вы получаете идемпотентность (можно запускать 100 раз) и масштабируемость (на 1 или 1000 серверов). Вы начинаете управлять Windows-парком как DevOps-инженер, а не как "эникейщик".

#windows #linux #ansible #automation #devops #powershell #гайд
🔥2
Wireshark: "Это не сеть, это приложение!" Как доказать это за 60 секунд

Классическая война админа и разработчика. "Ваш сервер тормозит!" — "Нет, это ваша сеть лагает!". Вместо споров, архитектор открывает Wireshark.
Wireshark — это не "страшный" инструмент для сетевиков. Это микроскоп, который видит всё. Он нужен каждому "фулл-стек" админу и ИБ-специалисту.

Три фильтра, которые решат 90% ваших споров:
"Я не вижу сервер" (Проблемы DNS):
Фильтр: dns
Что ищем: Видите ли вы AAAA (IPv6) или A (IPv4) запросы? Приходит ли ответ? Если видите NXDOMAIN — проблема в DNS, а не в сервере.
"Connection Refused / Timeout" (Проблемы с портом):
Фильтр: tcp.port == 80 (или 443, 3389...)
Что ищем:
[SYN] -> [SYN, ACK] -> [ACK] = OK, соединение установлено.
[SYN] -> [RST, ACK] = Connection Refused. Порт закрыт (приложение не запущено, или файрвол его режет).
[SYN] -> ... (тишина) ... -> [SYN] (повтор) = Timeout. Пакет теряется (проблема с маршрутизацией или файрвол его тихо дропает).

"Приложение тормозит" (Медленный ответ):
Фильтр: ip.addr == 192.168.1.50 (IP вашего сервера)
Что ищем: Кликните правой кнопкой по пакету -> Follow -> TCP Stream. Вы увидите весь диалог. Если ваш запрос ушел, а сервер "думал" 5 секунд, прежде чем ответить, — проблема 100% в приложении. Вы только что сэкономили день споров.

Взгляд архитектора: Вы перестаете гадать и начинаете видеть. Wireshark — это инструмент "земной правды" (ground truth). Он дает неоспоримые, основанные на данных доказательства, позволяя находить коренную причину (root cause) проблемы, а не её симптомы.

#networking #security #wireshark #windows #linux #diagnostics #гайд
Windows: Ваш "швейцарский нож". Вышло обновление PowerToys

Microsoft обновила PowerToys — бесплатный набор утилит, который прокачивает Windows до уровня PRO. Это must-have для каждого админа.

Что внутри (самое важное для нас):

FancyZones: Создайте сложные сетки окон. Идеально, чтобы разместить RDP, PowerShell и perfmon на одном экране.

PowerRename: Массовое переименование файлов (логов, скриптов) с поддержкой RegEx прямо в "Проводнике".

Always on Top: Win+Ctrl+T, чтобы окно с мониторингом или логами всегда было поверх всех.

Crop and Lock: Новинка! "Вырежьте" график из Диспетчера задач и закрепите его на рабочем столе как виджет.

Взгляд архитектора: Ваша рабочая станция — это инструмент. Эти утилиты "затачивают" его, экономя вам часы на рутинных операциях и переключении окон.

Забираем бесплатно с официального GitHub: https://github.com/microsoft/PowerToys

#windows #powertoys #productivity #гайд #musthave
🔥5
Проект на выходные: Запускаем свой GitHub! Ставим Gitea в Docker

Хватит хранить скрипты и Ansible-плейбуки в папке C:\Scripts_Final_v2. Путь архитектора начинается с контроля версий.

Gitea — это сверхлегкий, быстрый и простой self-hosted Git-сервер. Он написан на Go, потребляет минимум ресурсов и запускается за 30 секунд. Идеально для Home Lab или небольшой команды.

Зачем он вам?

* IaC: Хранить код Terraform, Ansible, PowerShell DSC.
* Документация: Вести свою Wiki по инфраструктуре в Markdown.
* Скрипты: Создать центральный репозиторий для всех ваших PowerShell/Bash скриптов.

Готовый docker-compose.yml для старта:
YAML
version: '3.8'

services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
volumes:
- ./gitea-data:/data
ports:
# Веб-интерфейс (HTTP)
- "3000:3000"
# SSH для Git
- "2222:22"
environment:
- USER_UID=1000
- USER_GID=1000

1. Сохраните как docker-compose.yml.
2. Запустите docker-compose up -d.
3. Откройте http://<ваш_ip>:3000 и пройдите простую веб-установку (можно использовать SQLite, чтобы не поднимать отдельную БД).
4. Важно: В настройках укажите, что SSH-сервер работает на порту 2222.

Взгляд архитектора: Это не просто "удобно". Это фундамент для GitOps и CI/CD. Когда ваш код инфраструктуры лежит в Git, вы можете автоматизировать его тестирование и развертывание. Вы получаете историю изменений, ревью кода и возможность отката.

#linux #docker #selfhosted #git #devops #weekendproject #гайд
Windows: "DNS-кладбище". Чистим Active Directory от "мёртвых" записей

Одна из самых частых и тихих проблем в AD — устаревшие (stale) DNS-записи. Старый сервер вывели из эксплуатации, а его A-запись осталась. В итоге сервисы пытаются подключиться к "призраку", и всё ломается.

Ручной поиск — ад. Этот PowerShell-скрипт — ваш аудитор.

Что делает скрипт:
1. Берёт все A-записи из вашей DNS-зоны.
2. Пытается "пингануть" каждую (быстрая проверка Test-Connection).
3. Выводит список тех IP, которые не ответили — это ваши главные кандидаты на удаление.

Код скрипта:
PowerShell
# Укажите имя вашего DNS-сервера и зоны
$DnsServer = "DC01.corp.local"
$DnsZone = "corp.local"

Write-Host "--- Начинаю поиск 'мёртвых' A-записей в зоне $DnsZone ---" -ForegroundColor Cyan

# Получаем все A-записи
$AllARecords = Get-DnsServerResourceRecord -ComputerName $DnsServer -ZoneName $DnsZone -RRType "A"

$StaleRecords = foreach ($Record in $AllARecords) {
$IpAddress = $Record.RecordData.IPv4Address.IPAddressToString
Write-Host "Проверяю: $($Record.HostName) -> $IpAddress" -ForegroundColor Gray

# Пытаемся быстро пингануть хост. Count 1, Timeout 1 секунда.
if (-not (Test-Connection -ComputerName $IpAddress -Count 1 -Quiet -ErrorAction SilentlyContinue)) {
# Если пинг не прошел, выводим как потенциально "мёртвую" запись
[PSCustomObject]@{
HostName = $Record.HostName
IPAddress = $IpAddress
Timestamp = $Record.Timestamp
Status = "NO_RESPONSE"
}
}
}

Write-Host "`n--- ОБНАРУЖЕНЫ ПОТЕНЦИАЛЬНО УСТАРЕВШИЕ ЗАПИСИ ---" -ForegroundColor Red
$StaleRecords | Format-Table

Write-Host "`nРекомендация: Проверьте эти хосты и включите Scavenging (очистку) на DNS-сервере."

Взгляд архитектора: Гигиена DNS — это фундамент стабильной сети. Этот скрипт — ваш инструмент для аудита. Правильное архитектурное решение — настроить Scavenging (очистку) на DNS-сервере, чтобы этот процесс был полностью автоматическим.

#windows #powershell #dns #activedirectory #automation #скрипты #security
👍2
Чек-лист: 5 PM Friday. С чем админ уходит на выходные?

Спокойные выходные — это не удача, а результат подготовки.
Прежде чем закрыть ноутбук, каждый админ (а особенно Full-stack) должен потратить 10 минут на этот чек-лист.

1. □ Проверить Бэкапы.
Win: Get-WBJob -Previous 1 -> JobState должен быть Completed.
Lin: Проверить лог вашего скрипта rsync или cron.

2. □ Проверить Место на Диске.
Win: Get-PSDrive C, D -> Free (GB).
Lin: df -hT -> Use%.
Ни один критический раздел не должен быть заполнен > 90%.

3. □ Проверить Журналы на Критические Ошибки.
Win: Get-WinEvent -LogName System -Level 2 -MaxEvents 20 --Since (Get-Date).AddHours(-1)
Lin: journalctl -p err -b --since "1 hour ago"
Нет ли "красных" записей, которых не было утром?

4. □ Проверить Подозрительные Входы.
Win: Get-WinEvent -Filter @{LogName='Security'; ID=4625} -MaxEvents 50
Lin: sudo lastb
Нет ли аномального брутфорса с одного IP?

5. □ Проверить Uptime Kuma (или вашу систему мониторинга).
Все сервисы "зеленые"? Все сертификаты SSL действительны?

Взгляд архитектора: Это называется проактивный аудит. Вы не ждете звонка в субботу. Вы тратите 10 минут в пятницу, чтобы предотвратить проблему. Это основа SRE-подхода к стабильности.

#чеклисты #security #windows #linux #audit #sre #sysadmin
👍2