53просмотров
6 марта 2026 г.
Score: 58
Привет! 👋🏻 Сегодня продолжение рассказов про пет-проект. Вернусь к базовым кирпичикам, из которых склеился плагин. 🧩 Любой вменяемый инженер сначала смотрит, что уже сделали до него, и только потом изобретает велосипеды.
Здесь пазл у меня довольно красиво сложился из Python‑утилиты и IntelliJ‑плагина. Прежде чем писать что‑то своё, важно было понять, что уже существует и что можно переиспользовать.
Цель была простой, не сесть писать свою криптографию на коленке и не городить самодельный формат vault‑файлов. В идеале я нашёл
🔵 существующий CLI, совместимый с ansible-vault
🔵 существующий IntelliJ‑плагин с нормальным UX
🔵 и лицензией, которая позволяет это всё честно скрестить. Ну, вроде позволяет 😅 ✅ Первый кирпичик 〰️ Python‑пакет ansible-vault-win. Это CLI‑утилита, которая полностью повторяет поведение оригинального ansible-vault, но работает на Windows. Она
🔵 понимает те же команды 〰️ encrypt, decrypt, view, encrypt_string
🔵 поддерживает --vault-password-file, --vault-id и привычный формат $ANSIBLE_VAULT;1.1;AES256
🔵 распространяется под MIT‑лицензией Фактически это значит, что можно сделать так
pip install ansible-vault-win
ansible-vault encrypt_string --stdin-name secret # шифрует строку, полученную через stdin, и создаёт YAML-переменную secret с зашифрованным значением
и получить тот же формат секрета, который поймут плейбуки на любом окружении. Для плагина это идеальный сценарий, он просто вызывает ansible-vault, а внутри уже неважно, это оригинальный бинарь или его порт под Windows. ✅ Второй кирпичик 〰️ IntelliJ‑плагин Ansible Vault Integration. Он
🔵 написан на Kotlin под IntelliJ Platform
🔵 отлично интегрирован в IDE, intention actions Alt+Enter, контекстные меню в Project View, уведомления
🔵 умеет работать с YAML и vault identities
🔵 тоже под MIT, то есть его можно форкать и перерабатывать без танцев с юристами Данный плагин уже решает 80% задачи. В нём есть весь нужный UX 〰️ от контекстных действий до работы с editor API. Проблема только в том, что он зашит под POSIX‑окружение и WSL, а я как ранее писал, хочу нативный Windows‑опыт. Идея стала простой и мощной 💪
🔵 не изобретать свою криптографию
🔵 не городить свой формат секретов
🔵 а взять уже готовый CLI ansible-vault-win и готовый UX idea-ansible-vault-integration и соединить их На бумаге это звучит как ну что там, один адаптер написать, но в реальности это означает, что нужно очень аккуратно пройти по границам ответственности. Где заканчивается IntelliJ, где начинается CLI, какие данные бегают между ними, и где лучше всего вставить свой слой. Собственно, дальше и началось самое интересное — вскрытие исходников. Но об этом в следующем посте 😉
Хороших выходных! 👋 #ansible_vault #ansible_vault_win #intellij #pet_project #devops