生产用于管理系统和交付软件的自动化软件的公司Puppet推出了Puppet Bolt,这是一种开源的无代理多平台工具,用于在远程Linux和Windows系统上运行命令,脚本,任务和精心设计的工作流。
该工具可作为Linux软件包,Ruby gem和macOS或Windows安装程序免费提供,非常适合系统管理员以及其他需要在远程裸机服务器,VM或云实例上执行大量自动化任务的人员任何先决条件。Puppet Bolt不需要任何先前的Puppet专门知识。它也不需要Puppet代理或Puppet主服务器。它仅使用SSH和WinRM(或可以搭载Puppet传输)在远程节点上通信和执行任务。
Despite its simplicity, Puppet Bolt can execute all your existing scripts written in Bash, PowerShell, Python or any other language, stop and start Linux or Windows services, gather information about packages and system facts, or deploy procedural orchestrated workflows, otherwise known as plans 。您可以在工作站或笔记本电脑上完成所有这些操作。
您还可以安装木偶博尔特apt
或者yum
一旦你添加木偶库:
$ sudo apt install puppet-bolt
您可以使用现有的.msi在Windows上安装木偶博尔特,或者如果你在Windows 10运行bash,通过使用安装了风味的Linux指令。单击参考资料部分中的链接,以查看您喜欢的平台的详细安装说明。
如果你正在运行的Ruby(和有gcc
和make
你的工作站上),你可以得到木偶博尔特并以简单的命令时刻运行:
$ gem install bolt
通过运行以下命令查看内置的Puppet Bolt命令:
$ bolt help
图1.内置木偶螺栓命令
一个典型的木偶博尔特命令如下:
$ bolt <SUBCOMMAND> <ACTION> [options] --nodes <NODE>
在哪里<SUBCOMMAND>
可以是一个命令,文件,脚本,任务或计划。目标节点可以在之后被列出--nodes
(或-n
)标志或在一个纯文本文件中列出。例如,像这样一次检查所有节点上的正常运行时间:
$ bolt command run uptime -n server01,server02,server03...
要么:
$ bolt command run uptime -n @mynodes.txt
当WinRM的节点执行时,指示所述节点的字符串将WinRM协议:
$ bolt command run <COMMAND> --nodes winrm://<WINDOWS.NODE> ↪--user <USERNAME> --password <PASSWORD>
在远程节点上运行现有的可靠脚本(用任何语言编写)都非常简单:
$ bolt script run mypythonfile.py -n @mynodes.txt
当谈到依赖更正式的协调能力的任务和计划木偶博尔特真正的亮点。您可以通过执行来查看内置的Bolt任务$ bolt task show
(图2)。
图2.内置博尔特任务
例如,如果你想停止,在Linux或Windows节点上启动或重新启动服务,您可以执行以下任务:
$ bolt task run service::linux name=cron action=restart -n ↪linuxnode01
要么:
$ bolt task run service::windows name=Netman action=restart ↪-n @windowsnodes.txt
您还可以使用该task
命令查看一个或数千个节点上特定程序包或应用程序的状态和版本:
$ bolt task run package name=cron action=status -n linuxnode01Started on linuxnode01...Finished on linuxnode01: { "status": "up to date", "version": "3.0pl1-128ubuntu2" }Successful on 1 node: linuxnode01Ran on 1 node in 2.10 seconds
同样,您可以查看与内置的计划$ bolt plan show
说明(图3)。
图3.内置螺栓计划
您可以在没有任何Puppet代理(或主服务器)的情况下运行这些计划,但是如果您想利用从Forge编写或下载的Puppet模块,例如用于设置nodejs并将其连接到负载均衡器的模块,可能是由木偶博尔特与已经安装了木偶代理目标节点相结合做到这一点:
$ bolt plan run nodejs::myplan load_balancer=lb.myorg.com
不是所有的模块需要的木偶剂。例如,木偶博尔特可以运行 puppetlabs/aws
没有它模块。
Puppet Bolt轻巧易学,Puppet开发团队定期添加了新功能,使其成为Ansible,Rundeck,Bladelogic甚至Bash和PowerShell脚本的理想替代品。与范围有限的工具不同,Puppet Bolt将每个目标节点都视为头等公民,并允许您执行从快速修复到完整应用程序部署的所有操作。
同时,与Puppet Bolt一起工作是向您介绍基于模型的自动化的好方法,Puppet率先提出了这种方法,它已成为确定要从普适自动化中受益的组织的事实上的标准。您可以在Puppet世界中的其他任何地方使用Puppet Bolt所学到的一切,这意味着您和您的DevOps队友最终可以共享通用工具和专业知识,而无需任何先决条件。
评论专区