Для централизованного управления серверами и автоматизации задач существует старый и известный open source проект Foreman. Думаю, многие о нём слышали или знают. Он существует более 10-ти лет. В сети много информации по нему. Есть как текстовые руководства, так и курсы на Udemy за весьма небольшие деньги. То есть освоить этот продукт, если есть необходимость, не трудно.
Я развернул его у себя на Debian 11 и потестировал. Установка простая, так как есть готовый репозиторий и автоматический установщик. Единственное, нужно убедиться, что у вас hostname имеет формат FQDN, так как в процессе установки будет выпущен самоподписанный tls сертификат, который хочет полное доменное имя, типа debian11.local, если запускаете в тестовой среде.
wget https://apt.puppet.com/puppet6-release-buster.deb
dpkg -i /tmp/puppet6-release-buster.deb
echo "deb http://deb.theforeman.org/ buster 3.1" | tee /etc/apt/sources.list.d/foreman.list
echo "deb http://deb.theforeman.org/ plugins 3.1" | tee -a /etc/apt/sources.list.d/foreman.list
apt-get -y install ca-certificates gpg
wget -q https://deb.theforeman.org/pubkey.gpg -O- | apt-key add -
apt update && apt install foreman-installer
foreman-installer
Это всё. Несмотря на то, что в репе указан buster, на bullseye нормально установился. Можно идти в веб интерфейс и настраивать. Адрес сервера и учётка будут отображены в консоли.
Foreman по дефолту работает на основе puppet, но может использовать и ansible. Далее вам нужно либо puppet-agent, либо ansible поставить на клиентские хосты, чтобы добавить их в Foreman и управлять. В сети инструкций много, проблем с настройкой возникнуть не должно. Есть подробное и свежее руководство даже под AstraLinux (https://wiki.astralinux.ru/pages/viewpage.action?pageId=57444668).
После этого пишите манифесты на выполнение тех или иных действий и применяете их к хостам или группам хостов. С помощью Foreman можно как конфигурировать существующие хосты, так и разворачивать новые, в том числе в автоматическом режиме. Посмотреть, как это выглядит в реальности можно в большой подборке скринкастов (https://theforeman.org/media.html#screencasts).
Чтобы быстро развернуть и попробовать функционал по управлению, посмотрите эту статью (http://ittraveler.org/ustanovka-i-nastrojka-foreman-puppet/). Тут прям конкретные примеры с манифестами и модулями puppet для выполнения различных действий на хостах. Я попробовал два примера. Один с обновлением серверов времени. Второй с созданием файлов. В целом понял, как всё это примерно работает.
Раньше puppet вообще ни разу не видел. Сейчас посмотрел, как у него манифесты и модули выглядят. Показалось проще и нагляднее, чем в ansible. Прям даже попробовать захотелось. Хотя очевидно, что смысла большого нет. Ansible более распространён, а изучать и использовать обе системы незачем.
Сайт - https://theforeman.org/
Исходники - https://github.com/theforeman/foreman
