SaltStack 的远程执行特点:
SaltStack 在设计之初的定位就是远程执行工具,远程执行对于 Salt 而言是十分频繁的操作,其具有如下特点。
(1).Salt 命令是跨操作系统、跨平台的。例如:salt '*' pkg.install git 将在不同的操作系统及平台上调用 yum、apt、pacman 甚至 Salt windows 包仓库等工具。
(2).所有 Salt 命令的返回结果都是以 统一的数据结构保存,这使得检查结果正确性以及存入结果至数据库十分方便。
(3).Salt minion 在执行作业上几乎是同时开始的。
(4). Salt 可以调用成本上千种的 Python 模块,以执行远程管理。同时,Salt 也 可以轻易地加入其它的自定义模块
 
SaltStack 的远程执行机制:
例如:执行命令 salt '*' test.rand_sleep 120 时,其执行过程如下:
(1).命令通过发布者(publisher)端口,分发至所有已连接的 Salt minion;
(2).每个 Salt minion 都需要检查命令,评估是否应该在节点上运行命令;
(3).目标系统将会运行命令,并将结果返回至请求服务器。
当 Salt minion 接收到命令时,其执行过程如下:
(1).每条命令都将被分拆为一个独立的工作进程,从而 Salt minion 才能在同一时刻处理多项作业。
(2).针对 Salt 命令(结构如下图),找到正确的 module,随后以提供的 arguments 作为参数,调用 function。 注意:Salt 实际上可以看做是 Python 函数的 抽象层

 
 
 
 

转载于:https://www.cnblogs.com/autopenguin/p/7093129.html

Logo

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

更多推荐