SaltStack源码解析 — salt ‘*’ test.ping执行过程

前言

 

本文我们来学习salt ‘*’ test.ping命令实现的整个过程,涉及的组件比较多,将有助于更进一步了解SaltStack的运行机制。

 

总体概述

 

salt ‘*’ test.ping涉及的组件比较多,包括Master Req Server,Master Publisher,Minion,Master EventPubliser等,现在概要地介绍下整个实现流程:

  • 1、在salt-master机器执行salt ‘*’ test.ping命令;
  • 2、salt向Master Req Server发送带publish命令的消息;
  • 3、Master Req Server收到消息后向publish_pull.ipc push消息;
  • 4、Master Publisher向Minion Publish消息;
  • 5、Minion收到消息后启动一个新进程来执行消息中fun指定的函数;
  • 6、函数执行完成后,返回结果给Master Req Server;
  • 7、Master Req Server把结果push给Master EventPublisher;
  • 8、这时因为salt客户端订阅了Master EventPublisher,将收到返回结果,之后直接输出到终端。整个流程结束。

 

活动图

 

为了更清楚了解整个流程,下面是活动图:

 

salt ‘*’ test.ping函数调用图

 

 

Master Req Server处理salt test.ping消息函数调用图

 

 

Minion处理Master Pub消息函数调用图

 

 

Master Req Server处理Minion数据返回函数调用图

 

标签:SaltStack 发布于:2019-11-21 23:00:30