本教程描述了远程执行系统的工作原理:

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函数的一个(疯狂强大)抽象层。

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐