Puppet Bolt — безагентный инструмент оркестрации с открытым исходным кодом для автоматизации разовых задач, скриптов и многоузловых сценариев по стандартным протоколам SSH или WinRM.
Установка
# macOS (Homebrew)
brew install puppetlabs/puppet/puppet-bolt
# Windows (Chocolatey)
choco install puppet-bolt
# Linux (Debian / Ubuntu)
wget https://apt.puppet.com/puppet-tools-release-$(lsb_release -cs).deb
sudo dpkg -i puppet-tools-release-*.deb
sudo apt-get update && sudo apt-get install puppet-bolt
Создание модуля задач (Task Module)
Задачи можно писать на любом языке, поддерживаемом на целевых хостах (Bash, Python, PowerShell, Ruby):
# Создайте каталог tasks внутри модуля
mkdir -p ~/.puppetlabs/bolt/modules/mymodule/tasks
# Поместите скрипт в папку задач и выдайте права на запуск
cp myscript.sh ~/.puppetlabs/bolt/modules/mymodule/tasks/
chmod +x ~/.puppetlabs/bolt/modules/mymodule/tasks/myscript.sh
Выполнение задач
Запускайте задачи сразу на нескольких удалённых узлах с аутентификацией по приватному ключу SSH:
bolt task run mymodule::myscript \
--targets node1.example.com,node2.example.com \
--user root \
--private-key ~/.ssh/id_rsa
Запуск произвольных команд и скриптов
# Выполнить однострочную команду на всех узлах инвентаря
bolt command run 'uptime' --targets all
# Удалённо выполнить локальный скрипт
bolt script run ./deploy.sh --targets webservers