DevOps Tools
github.com/Tensionix/devops-tools ↗
Берётся за то, что чинится тяжелее всего: поломки Windows, драйверов и Wi-Fi. Плюс экспорт и импорт самых ценных настроек — при переезде на новую машину доступы, ключи и ассоциации собираются разом. Здесь не чистят Windows пачкой галочек и не спорят с телеметрией. Здесь делают то, для чего обычно открывают десяток консолей: WSL, виртуализация, сетевые адаптеры и Wi-Fi, hosts, ассоциации файлов, политика драйверов и NVIDIA, ключи SSH и сертификаты. Каждое действие идёт через документированный механизм Windows — DISM, bcdedit, netsh, wsl.exe, — а не через правку защищённых веток реестра. Перед опасным делается резерв, у кнопки указан риск, и всё видно в живом журнале.
3 загрузки с GitHubAudion DevOps Tools
Содержание
- Зачем это сделано
- Принципы
- Что внутри
- Дальше
- Техническая часть
- Запуск
- Обслуживание
- Проверка
- Устройство
- Названия в рабочей области
- Основания в документации Microsoft
Портативная оболочка для точных операций над Windows: подсистема Linux, виртуализация, драйверы и железо, диски, сеть, ассоциации файлов, ключи и сертификаты.
Зачем это сделано
Есть класс задач, для которых нет хорошего инструмента. Не «ускорить Windows» и не «вырезать лишнее» — а сделать одну точную вещь и знать, что именно ты сделал: поставить дистрибутив Linux из файла, переключить машину между Hyper-V и сторонним гипервизором, запретить обновлению подменять драйвер видеокарты, снять слепок ассоциаций до и после установки программы, выгрузить сертификат вместе с закрытым ключом.
Каждая такая операция делается разными средствами: где-то wsl.exe, где-то bcdedit, где-то политика в реестре, где-то команды PowerShell. Все они документированы, но разбросаны, и половина требует помнить, что откатить, если пойдёт не так.
Программа собирает их в одном месте — с явными параметрами, метками риска, копией перед изменением и живым журналом.
Это не чистильщик системы и не сборник твиков. Ассоциации не подделываются обходом защиты Windows, ключи реестра не правятся напрямую там, где есть документированный механизм. Программа оборачивает штатные средства администрирования, а не воюет с системой.
Принципы
Оборачиваем документированное. Подсистема Linux — через wsl.exe. Профили Wi-Fi — через netsh wlan. Ассоциации — через механизм развёртывания и политику для всей машины. Сертификаты — через средства PowerShell поверх системных хранилищ. Хэши пользовательского выбора и защита от их подмены не обходятся вручную.
Копия до изменения. Загрузчик, ассоциации, файл hosts, состояние сети, хранилище драйверов — всё, что меняется, сначала снимается в backup\.
Метка риска у каждой команды. Мягкие тона кнопок различают щадящее, обычное и сильное действие; опасное требует подтверждения. Парные сценарии — резерв и восстановление, выгрузка и загрузка, запрет и снятие запрета — показаны рамками, чтобы обратный ход был на виду.
Интерфейс намеренно технический. Кнопки короткие, подписи компактные, а полный контекст — что именно произойдёт, чем рискуете, как откатить — раскрыт в подсказке. Место экономится на подписи, а не на объяснении.
Неподдерживаемая редакция — не цель. Домашние выпуски Windows не гарантируют работу групповых политик; программа показывает редакцию и по умолчанию запрещает применение там, где оно не сработает.
Ничего не тянется из соседних папок. Все средства лежат внутри проекта. Исторические папки читаются только для сравнения или восстановления — и только по прямой просьбе.
Что внутри
| раздел | о чём |
|---|---|
| Подсистема Linux | возможности и обновление, установка из сети и из файла, состояние, резерв, клонирование, перенос, удаление, регистрация дисков |
| Виртуализация | состояние и диагностика без изменений, режим Hyper-V или сторонних машин, совместимость, переключатели с копией загрузчика и предупреждением о перезагрузке |
| Сеть | диагностика, резерв и восстановление состояния, прокси, адаптеры, вход в общие папки, профили Wi-Fi, быстрые режимы |
| Узлы и Bitrix | подмена адреса на локальный, определение точки, состояние службы имён и портов, побитовое возвращение файла hosts из копии |
| Ассоциации | слепок и сверка умолчаний, защита политикой, встроенные приложения Microsoft — убрать, вернуть, держать удалёнными, запрет переустановки, отслеживание смены |
| Железо и драйверы | запрет драйверов из обновлений, ограничения для видеокарты, резерв хранилища драйверов, звук по HDMI и DisplayPort, опись дисков, среда восстановления, мастер SSD |
| Ключи | выгрузка и загрузка ключей SSH и сертификатов, сборка всех доступов в одну папку с описью, переезд на новую машину |
| Обслуживание | резерв памяти командных помощников, выгрузка документации, ярлыки, встроенный поиск по файлам |
Дальше
- Руководство — работа по разделам, порядок действий для
опасных подсистем.
Техническая часть
Запуск
launcher_gui.cmd
Обычный запуск поднимает всё окно от имени администратора — это нужно для развёртывания, файла hosts, сетевых адаптеров, работы с дисками и настройки подсистемы Linux.
Отдельные входы для одного раздела:
cli\launcher_wsl.cmd
cli\launcher_bitrix.cmd
cli\launcher_default_apps.cmd
cli\launcher_association_defense.cmd
cli\launcher_hardware.cmd
cli\launcher_docs_pdf.cmd
Они идут через тот же слой описаний и служб, что и окно, — поведение совпадает.
Только чтение, без запроса прав:
set AUDION_GUI_NO_ELEVATE=1
launcher_gui.cmd
Обслуживание
init_folders.cmd создать недостающие рабочие папки
cleanup_project.cmd деликатная очистка
cleanup_project.cmd /DRYRUN /Y показать план, ничего не удаляя
Очистка оставляет скрипты, настройки, документацию, лицензии и сами папки. Удаляет порождённое и скачанное: рантайм, склад пакетов, сборки, загрузки, журналы, отчёты, содержимое рабочих папок и кэши.
Проверка
runtime\python.exe -m py_compile system_core\ui_nicegui\app.py system_core\services\devops_tools.py system_core\core\jobs.py
runtime\python.exe system_core\ui_nicegui\app.py --smoke
runtime\python.exe system_core\doctor.py
Устройство
config\tool_manifest.yaml дерево команд, поля, метки риска
config\gui_settings.yaml настройки окна при запуске
config\ui_colors.yaml темы оформления
system_core\ui_nicegui\ окно
system_core\core\jobs.py запуск операций, разбор вывода
system_core\services\ системные действия
system_core\cli_operation.py запуск операции из командной строки
tools\ средства проекта
backup\ слепки и данные для отката
logs\ журналы операций
Граница ответственности. Окно не содержит системной логики: оно собирает параметры, показывает риск и подтверждение, вызывает операцию через слой описаний и служб. Системные действия живут в службах, модулях и скриптах проекта, а описания операций — в tool_manifest.yaml.
Названия в рабочей области
Единый словарь для всех проектов Audion. Кнопки везде называются одинаково: Источник, Добавить файл…, Назначение, Сбросить, Удалить, Список. По-английски: Source, Add file…, Target, Reset, Delete, List.
Сбросить возвращает проектные папки и файлов не трогает. Удалить очищает текущие источник и назначение только после подтверждения. Слова «Цель», «Очистить», Destination и Clear для этих кнопок не используются.
Основания в документации Microsoft
Выгрузки ключей SSH, сертификатов с закрытой частью и паролей Wi-Fi — сведения чувствительные: полученные архивы хранятся как секреты.
Программа портативная: распакованная папка и есть установленная программа. Реестр не трогается, удаление — удалить папку.
$name = "Audion_DevOps_Tools_v1.8.2_Full.zip"
Invoke-WebRequest "https://audion.dev/get/devops-tools/1.8.2/Audion_DevOps_Tools_v1.8.2_Full.zip" -OutFile $name
Invoke-WebRequest "https://audion.dev/get/devops-tools/1.8.2/Audion_DevOps_Tools_v1.8.2_Full.zip.sha256" -OutFile "$name.sha256"
$want = (Get-Content "$name.sha256").Split(" ")[0]
$have = (Get-FileHash $name -Algorithm SHA256).Hash.ToLower()
if ($want -ne $have) { throw "сумма не сошлась: загрузка повреждена" }
Expand-Archive $name -DestinationPath ".\devops-tools"