本文概述
- 先决条件
- 更新系统
- 安装Puppet Bolt
- 运行脚本
- 任务自动化
- 创建库存文件
Puppet Bolt是一种开源工具, 广泛用于自动执行手动工作。
Bolt基于Ruby及其命令行工具, 这些工具通过SSH和WinRM获取执行脚本, 本地和远程服务器上的命令。它可以帮助Sysadmin以多种方式管理多个服务器。
- 管理更新
- 软件安装
- 日志阅读
- 停止或启动服务
- 命令执行
先决条件以下示例在Ubuntu上, 因此你需要具有对root的sudo访问权限的Ubuntu VM。
更新系统强烈建议你在系统上安装任何新软件包之前先升级所有可用的存储库和软件包。执行以下命令, 它将为你完成这项工作。
sudo apt-get update
安装Puppet Bolt由于无代理, 因此你无需在每台服务器上安装。而是仅在一台服务器上充当主服务器, 该服务器可用于连接到远程服务器。 Bolt是一个多平台工具, 因此你可以在自己喜欢的OS上安装。
- 视窗
- 操作系统
- RHEL
- CentOS的
- 软呢帽
- Debian
- 的Ubuntu
运行以下命令以获取软件包。
sudo wget https://apt.puppet.com/puppet6-release-bionic.deb
接下来, 使用Debian软件包管理器命令安装以上下载的软件包。
sudo dpkg -i puppet6-release-bionic.deb
再次, 使用以下命令更新系统。
sudo apt-get update
最后, 执行以下命令安装螺栓。
sudo apt-get install puppet-bolt
你已在服务器上成功安装了人偶螺栓。
这需要在要通过Bolt管理的所有服务器上完成。如前所述, Bolt通过SSH密钥连接到另一台服务器, 因此我假设你已经在服务器之间交换了密钥。如果没有, 你可以参考本指南来设置SSH密钥交换。
让我们连接到远程服务器并运行bolt命令。
要在单个节点上运行命令, 请使用以下命令。
bolt command run <
COMMAND>
--nodes <
NODE>
请用你要执行的命令替换COMMAND, 并用远程服务器的主机名或IP替换NODE。同样, 你也可以在多个节点上运行命令。
bolt command run <
COMMAND>
-n <
NODE1, NODE2, NODE3, NODE4>
如果需要在命令中添加密码认证, 则可以使用标志将其添加。
bolt command run <
COMMAND>
-n <
NODE1, NODE2>
-u <
USER>
-p <
PASSWORD>
假设你想查看系统已经运行了多长时间, 那么你将需要使用” uptime” 命令, 如下所示:
bolt command run uptime --nodes 35.185.68.71, 35.231.9.135
你应该看到以下输出。
[email
protected]:~$ bolt command run uptime --nodes 35.185.68.71, 35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.231.9.135:
STDOUT:
04:57:48 up 7 min, 0 users, load average: 0.00, 0.03, 0.02
Finished on 35.185.68.71:
STDOUT:
04:57:48 up 9 min, 0 users, load average: 0.00, 0.00, 0.00
Successful on 2 nodes: 35.185.68.71, 35.231.9.135
Ran on 2 nodes in 5.96 seconds
你可能需要运行一些包含空格的命令, 因此需要将命令用单引号引起来:
[email
protected]:~$ bolt command run 'echo $HOME' --nodes 35.185.68.71, 35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.231.9.135:
STDOUT:
/home/sajid
Finished on 35.185.68.71:
STDOUT:
/home/sajid
Successful on 2 nodes: 35.185.68.71, 35.231.9.135
Ran on 2 nodes in 6.11 seconds
运行脚本我们都有定期使用的一组脚本。
Bolt使你无需修改??即可轻松重用这些脚本, 并同时在更多节点上运行它们。你需要做的就是指定要运行的脚本的名称和路径。
bolt script run <
PATH/TO/SCRIPT>
--nodes <
NODE1, NODE2, NODE3, NODE4>
bolt script run /home/sajid/Desktop/samplescript.sh --nodes 35.185.68.71, 35.231.9.135
你应该看到类似于以下内容的输出:
[email
protected]:/$ bolt script run /home/sajid/Desktop/samplescript.sh --nodes 35.185.68.71, 35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.231.9.135:
STDOUT:
Hello World
Finished on 35.185.68.71:
STDOUT:
Hello World
Successful on 2 nodes: 35.185.68.71, 35.231.9.135
Ran on 2 nodes in 15.18 seconds
只要在远程系统上安装了适当的解释器, 就可以用任何语言运行脚本。
任务自动化该任务是要在远程计算机上运行的一组操作。
可以用在远程节点上运行的任何语言编写任务。任务使重用和共享脚本变得容易, 并帮助你实现自动化。你可以从Puppet forge下载一些现有任务, 然后根据需要将任务上传到那里。
例如, 如果要检查vim软件包的状态, 则可以使用以下命令。
bolt task run package action=status name=vim --nodes 35.185.68.71, 35.231.9.135
你将看到类似于以下的输出:
[email
protected]:~$ bolt task run package action=status name=vim --nodes 35.185.68.71, 35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.185.68.71:
{
"status": "install ok installed", "version": "2:7.4.1689-3ubuntu1.3"
}
Finished on 35.231.9.135:
{
"status": "install ok installed", "version": "2:7.4.1689-3ubuntu1.3"
}
Successful on 2 nodes: 35.185.68.71, 35.231.9.135
Ran on 2 nodes in 19.15 seconds
如果找不到安装的vim软件包, 则可以使用以下命令进行安装。
bolt task run package action=install name=vim --nodes 35.185.68.71, 35.231.9.135
你可以运行计划来设置nodejs并将其连接到负载均衡器, 可以通过将Puppet Bolt与已安装Bolt的目标节点结合使用来实现。
bolt plan run nodejs::myplan load_balancer=lb.myorg.com
你可以使用p螺栓在远程节点上复制文件。你可以简单地使用” bolt file upload” 命令将文件或目录上传到远程节点。你所要做的就是在本地计算机上指定文件的路径, 并在远程节点上指定目标。
bolt file upload <
SOURCE>
<
DESTINATION>
--nodes <
NODE1>
你可以同时在多个远程节点上上传文件, 如下所示:
bolt file upload sample_file.txt /tmp/remotesample_file.txt --nodes 35.185.68.71, 35.231.9.135
如你所见, 有很多可能性。
创建库存文件Bolt允许你创建清单文件, 该清单文件将存储有关节点, 任务和配置的信息。你可以指定组中的不同节点, 并且默认情况下可以将清单文件指定存储在项目目录中的清单.yaml中。这是创建清单文件的示例。
---
# Example Inventory file
groups:
- name: Group of nodes
nodes:
- node1
- node2
- node3
config:
ssh:
host-key-check: false
ssl: false
你可以将这些node1, node2, node3替换为实际的节点域名或节点的IP地址。现在, 你可以将此清单文件添加到bolt命令中, 以在指定的节点上执行任务。
bolt command run <
COMMAND>
--inventoryfile ./inventory.yaml
总结
【如何安装Puppet Bolt自动执行Sysadmin任务()】我希望到目前为止, 你对Bolt是什么以及如何帮助你实现自动化有了一个想法。你可能也会对Puppet有兴趣。
推荐阅读
- 26个带有示例的Docker命令
- 使用这些顶级工具自动化应用程序测试
- 什么是Dockerfile以及如何创建Docker镜像()
- Android开发—错误记录1(W/System.err: java.net.ConnectException: Connection refused)
- 刷题42. Trapping Rain Water
- Azure App Service-多语言/高可用/自动缩放的Web托管服务
- mybatis框架(入门方法,dao层原始开发方法,mapper代理开发)(sqlserver数据库)
- .NET(c#) 移动APP开发平台之Smobiler开发
- Azure App Service-添加自定义域名和SSL保护