01 salt平台,软件架构图

1、前期调研

1、别人家的

https://www.cnblogs.com/ssyfj/p/9060367.html#top

https://www.cnblogs.com/evilliu/articles/6137336.html

2、我的salt平台调研

 

2、技术难点

1、同步执行

1、saltapi传送command过去,此时处于等待中,一般设置TIMEOUT,来控制执行时间

2、对于时间执行长的command,比如:top -b -n 10 或python test.py 之类的,根本不能用超时时间

3、还有一类,只是返回执行结果,并不能返回执行是否成功,没有 retcode (或许哪里可以设置添加该字段,目前我还没学到)

2、异步执行

1、利用local_sync,来进行异步执行。

2、发送command过去,saltapi会立刻返回jobid。

3、根据jobid去查询命令结果

痛点:

1、得到jobid,什么时候查询结果呢?

有些命令或者脚本比较耗时,比如:top -b -n 10 或python test.py 

方法1:

做过的操作,设置count=10,不断循环读取jobid中的ret,这样会被打死吗

另外,如果还是没有执行完成,返回的是 {},但是过一会命令就执行完了,并不能说执行失败

方法2:

前端不断发送ajax请求,去查询,这样也会被打死

2、jobid得到的结果,会在cache中缓存24小时(默认)

如果,得到jobid的话,用户并没有 lookup_jobid

前端又是何时去lookup呢?过了24小时,data就会消失,如果再第三天,看到该命令的执行结果呢?

3、解决方法:

目前看到的是,利用--return mysql 组件

临时表:

    在master的配置文件中配置,设置mysql相关配置

    执行完成会自动,在mysql插入data,把该表当做临时表

    然后存入,项目对应的数据库表中,

 

目前还在探索中...............

 

posted @ 2019-11-27 19:07  venicid  阅读(341)  评论(0编辑  收藏  举报