Как стать автором
Обновить

Комментарии 5

А тот самый плагин для Proxmox, который изначально планировался в качестве примера, случайно, не дописали до конца? И если дописали - можете выложить? Я правильно понимаю, что там API, которое дёргает guest agent, используется? Полезная штука в некоторых сценариях была бы.

Нет, хотя написать его не проблема. Могу выложить в gist, когда руки дойдут, и приложить к статье.

А в чём проблема теперь самостоятельно написать и выложить?) Самое сложно там учесть вызовы для windows машин (проблемы с кодировкой). А так, поднимаете http пул в _connect, закрываете в close, отправляете запросы в api. Файлы лучше кодировать сразу в base64.

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

А так и сам напишу, конечно. Просто я на питоне последний раз что-то длиннее 10 строк писал несколько лет назад (ну не люблю я его...), и придётся в процессе в мануал лезть вспоминать синтаксис и стандартную библиотеку на каждой строке (хотя в эпоху CoPilot и ChatGPT уже, наверное, и нет...)

Можете плагин на rust+maturin написать :)

У меня нужды прям не было, потому что для своих нужд пока ssh достаточно. Для одного заказчика писал для их особенной самописной системы виртуализации на вебсокете - было весело. Самое классное, что для написания плагина каких-то особенных знаний прям не нужно.

А так и сам напишу, конечно.

Поделитесь потом с сообществом. Но сразу предупреждаю, что адекватно решить проблему become не получится, потому что нет необходимых инструментов в pve api.

Ну мне тоже не срочно, поставил в планы на светлое будущее :) Там ещё столько всего более актуального надо в Ansible перетащить, это у меня такой долгострой...


P.S. А ChatGPT, кстати, развеселила. Из первого варианта написанного ей плагина:

def exec_command(self, *args, **kwargs):
    raise NotImplementedError("exec_command is not implemented for Proxmox connection plugin")

def put_file(self, *args, **kwargs):
    raise NotImplementedError("put_file is not implemented for Proxmox connection plugin")

def fetch_file(self, *args, **kwargs):
    raise NotImplementedError("fetch_file is not implemented for Proxmox connection plugin")

Будучи осуждена за такую халтуру, со второй попытки выдала что-то выглядящее отдалённо работоспособным. По крайней мере, структуру плагина всю без доп. подсказок написала корректно. Заодно от неё узнал, что есть обёртка вокруг проксмоксовского API для питона - proxmoxer. Вот для таких задач оно и полезно, чтобы быстро во что-то совсем для тебя новое погрузиться... Но, конечно, надо перепроверять и доделывать.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории