本教程描述了远程执行系统的工作原理:
Salt 从一开始就被设计为远程执行工具,并且Salt中的其他子系统大量使用远程执行。
- Salt 命令旨在跨OS和跨平台工作。一个 salt "*" pkg.install git 命令使用yum, apt, pacman或者基于目标平台上软件仓库进行软件安装,一个命令支持多个系统。
- 所有的Salt命令都以一致的数据结构返回结果。这样可以轻松检查结果或将其存储在数据库中。
- 所有目标系统都可以同时运行作业,因为他们都同时接受命令。
- Salt使用数百个Python模块库来执行远程管理,你可以添加自己的,可以使用python,shell命令或者几乎任何其他接口访问的任何应用程序或服务都可以作为Salt中的执行模块公开。
远程执行
使用Salt 命令界面访问远程执行系统。让我们从Salt接口发送一个简单的命令,并通过Salt系统跟踪它:
salt '*' test.rand_sleep 120
根据我们对Salt通信系统的了解,一下是发生的情况:
1. 此命令通过发布者端口发送到所有连接的minions
2. 每个minion检查命令,根据目标评估自己,并决定是否应该运行命令。
3. 目标系统运行该命令,然后将结果返回给请求服务器。
当Salt minion收到命令是,它只是找到正确的模块(test),然后调用相应的函数(rand_sleep)提供所提供的参数(120)。从这个意义上讲,你可以将Salt视为Python函数的一个(疯狂强大)抽象层。