Puppet Bolt è uno strumento di orchestrazione open-source senza agent che automatizza task ad-hoc, script e workflow multi-nodo su SSH o WinRM standard.
Installazione
# 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
Creazione di un Modulo Task
I task possono essere scritti in qualsiasi linguaggio supportato dagli host di destinazione (Bash, Python, PowerShell, Ruby):
# Creare la directory tasks nel modulo
mkdir -p ~/.puppetlabs/bolt/modules/mymodule/tasks
# Inserire lo script nella cartella del task
cp myscript.sh ~/.puppetlabs/bolt/modules/mymodule/tasks/
chmod +x ~/.puppetlabs/bolt/modules/mymodule/tasks/myscript.sh
Esecuzione dei Task
Esegui task su più nodi remoti utilizzando l’autenticazione con chiave privata SSH:
bolt task run mymodule::myscript \
--targets node1.example.com,node2.example.com \
--user root \
--private-key ~/.ssh/id_rsa
Esecuzione di Comandi Ad-Hoc e Script
# Eseguire un comando su una riga su tutti i target dell’inventario
bolt command run 'uptime' --targets all
# Eseguire uno script locale da remoto
bolt script run ./deploy.sh --targets webservers