Данная утилита помогает работать с большим количеством серверов.
Можно передавать список серверов файлом txt или csv вместе с командой, которую нужно выполнить на всех серверах. Обязательно указать {server} как переменную
python3 controller.py --command server.txt 'ssh root@{server} "ls" &'Вот так может выглядеть работа утилиты

Утилита решает проблемы автоматизации серверов для рассылки, совместимых с рассыльщиком https://github.com/Rickert155/Mailing.
Так как рассыльщик Rickert155/Mailing является свободной модификацией закрытой версии, для корректной работы(со свободной версией) необходимо поправить значение переменной в modules/mailer/config.py
mail_dir = "Mailing" # Или на имя директории, которая у вас является корневой для рассылкиПроверка количества имейлов в базе/количество отправленных писем
python3 controller.py --check-count server.txtDivide Base
Утилита позволяет разбить базу CSV на несколько равных частей, что бы в дальнейшем раскидать по серверам. В таблице должны быть поля: Email, Name, Company
| Name | Company | |
|---|---|---|
| [email protected] | Rickert | Rockstar |
Первым параметром передаем --divide-base, вторым - имя базы, последним - количество баз, которых должны быть по итогу. Пример применения:
python3 controller.py --divide-base Clutch.csv 10Копирования баз на сервера Для быстрого копирования баз на сервера можно использовать флаг --cp-base [servers.txt]. Из директории Base будут прочитаны базы(их надо добавить), домены/IP серверов будут взяты из текстового файла(вторым параметром нужно передать) Пример:
python3 controller.py --cp-base server.txtОтправленные базы по серверам будет перемещены в Done
Отправка ssh ключей
Для отправки ключей ssh можно использовать параметр --add-key. Вторым параметром передаем файл с серверами, последним параметром сам ключ.
python3 controller.py --add-key servers.txt 'ssh-ed25519 key'В основном в моей практике используется для отправки ключей для докера, что бы из под него подключаться к серверам
