Puppet Bolt는 표준 SSH 또는 WinRM을 통해 임시 작업, 스크립트 및 다중 노드 워크플로를 자동화하는 오픈소스 에이전트리스(agentless) 오케스트레이션 도구입니다.
설치
# 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
태스크 모듈 만들기
태스크는 대상 호스트에서 지원하는 모든 언어(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