saltstack的rest接口salt-api开发使用指南

简介:

前言:

   saltsatck本身就提供了一套算完整的api,专业说法 sdk。 saltstack 的webui hahite就是用cherrypy框架和salt接口组成的。


salt-api 简单配置下

安装:

1
yum -y install salt-api


配置:

1
2
3
4
5
6
7
8
9
10
11
[root@ 65  ~]# tail -n  10  /etc/salt/master
#         -  '*'
rest_cherrypy:
   port:  8000
   debug: True
   ssl_crt: /etc/pki/tls/certs/ca.crt
   ssl_key: /etc/pki/tls/certs/ca.key
external_auth:
   pam:
     admin:
       - .*


下面的测试用的是curl做的,线上环境调用的话,肯定不能这么搓,可以用python的urllib2 。

登录,然后获取token


1
curl  - k https: / / 10.10 . 10.65 : 8000 / login  - "Accept: application/x-yaml"   - d username = 'admin'   - d password = '123123'   - d eauth = 'pam'


wKiom1MLaOng1mAXAAHICb2x_Gs256.jpg


原文:http://rfyiamcool.blog.51cto.com/1030776/1362979

这里是使用获取的token,查询硬盘的使用情况


1
2
3
4
5
6
curl -k https: //10.10.10.65:8000 \
         -H  "Accept: application/x-yaml"  \
         -H  "X-Auth-Token: f43a327ec50615ee0e3dc988cc7e290276ac959e"  \
         -d client=local \
         -d tgt= '*'  \
         -d fun= 'status.diskusage'


wKioL1MLaYzx7XBdAANGMPpGMcE458.jpg


调用它的模块

1
2
3
4
5
6
7
curl -k https: //10.10.10.65:8000 \
         -H  "Accept: application/x-yaml"  \
         -H  "X-Auth-Token: f43a327ec50615ee0e3dc988cc7e290276ac959e"  \
         -d client=local \
         -d tgt= '*'  \
         -d fun= 'cmd.run'  \
         -d arg= "free -m"


wKiom1MLaoTCTgFPAAK0f1MY1rY368.jpg



   我这里测试了下他的性能,不是对他性能的测试,因为就算是bottle这样的web框架也能抗住500+的压力,这里测试他的是他的堵塞,我开了两个终端,都是sleep 5 ,第二个链接花费了9s,很明显是堵塞的接口。 当然,我的测试方法也很是片面,salt-api 也是有jobs的jid支持的。也可以cherrypy nginx的uwsgi配合,多开几个线程。


wKiom1MLbm3wDYDZAAKkFhFLB6k627.jpg



虽然salt-api的接口相对来说,不管是文档还是使用易度算方便,但是这东西是cherrypy写的,绝对不主流的东西,我先前搞hahite的时候,研究一段时间的cherrypy,基本的mvc和session也都过了一遍,感觉用起来还是不爽。 所以 个人觉得完全可以自己写一套自己的api,不用非要rest,在接口上把安全做好就行了。


这里讲解下,saltsatck的api,我发现群里有人迷茫了,saltstack api 是一个直接调用函数的集合罢了,salt-api是一个基于cherrypy的rest接口 !!!


1
2
3
4
In [ 8 ]:  import  salt.client
In [ 9 ]: local = salt.client.LocalClient()
In [ 10 ]: local.cmd( '*' 'cmd.run' , [ 'ip a' ])
Out[ 10 ]: { '66.ruifengyun.com' '1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN \n    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1/8 scope host lo\n    inet6 ::1/128 scope host \n       valid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\n    link/ether 00:0c:29:06:f2:dc brd ff:ff:ff:ff:ff:ff\n    inet 10.10.10.66/24 brd 10.10.10.255 scope global eth0\n    inet6 fe80::20c:29ff:fe06:f2dc/64 scope link \n       valid_lft forever preferred_lft forever' }


可以一次套用多个模块 !

1
2
3
4
5
6
7
8
9
10
>>> local.cmd( '*' , [
         'grains.items' ,
         'sys.doc' ,
         'cmd.run' ,
     ],
     [
         [],
         [],
         [ 'uptime' ],
     ])

通过saltstack的run_job可以实现任务的后台执行,扔到后面之前,会扔出一个job id !

wKiom1MLdonTPf96AAJWHoZa7H0147.jpg


得到jid后,salt-run jobs.lookup_jid <job id number> 直接获取数据 !

在api里面可以用runner.low 方法:

1
runner.low({ 'fun' 'jobs.lookup_jid' 'jid' '20131219215921857715' })



就说到这里啦,大家自己玩玩吧,有问题,拿出来咱们讨论下 ~ 有更好的见解,请指出,绝对受教 !!!






 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1362979,如需转载请自行联系原作者


相关文章
|
3月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
3月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
3月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
4月前
|
JSON 前端开发 API
如何调用体育数据足篮接口API
本文介绍如何调用体育数据API:首先选择可靠服务商并注册获取密钥,接着阅读文档了解基础URL、端点、参数及请求头,然后使用Python等语言发送请求、解析JSON数据,最后将数据应用于Web、App或分析场景,同时注意密钥安全、速率限制与错误处理。
537 152
|
3月前
|
API 开发者 数据采集
高效获取淘宝商品详情:API 开发实现链接解析的完整技术方案
2025反向海淘新机遇:依托代购系统,聚焦小众垂直品类,结合Pandabay数据选品,降本增效。系统实现智能翻译、支付风控、物流优化,助力中式养生茶等品类利润翻倍,新手也能快速入局全球市场。
高效获取淘宝商品详情:API 开发实现链接解析的完整技术方案
|
3月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
3月前
|
存储 缓存 算法
淘宝买家秀 API 深度开发:多模态内容解析与合规推荐技术拆解
本文详解淘宝买家秀接口(taobao.reviews.get)的合规调用、数据标准化与智能推荐全链路方案。涵盖权限申请、多模态数据清洗、情感分析、混合推荐模型及缓存优化,助力开发者提升审核效率60%、商品转化率增长28%,实现UGC数据高效变现。
|
3月前
|
存储 缓存 算法
亚马逊 SP-API 深度开发:关键字搜索接口的购物意图挖掘与合规竞品分析
本文深度解析亚马逊SP-API关键字搜索接口的合规调用与商业应用,涵盖意图识别、竞品分析、性能优化全链路。通过COSMO算法解析用户购物意图,结合合规技术方案提升关键词转化率,助力卖家实现数据驱动决策,安全高效优化运营。
|
4月前
|
人工智能 运维 监控
阿里云 API 聚合实战:破解接口碎片化难题,3 类场景方案让业务响应提速 60%
API聚合破解接口碎片化困局,助力开发者降本增效。通过统一中间层整合微服务、第三方接口与AI模型,实现调用次数减少60%、响应提速70%。阿里云实测:APISIX+函数计算+ARMS监控组合,支撑百万级并发,故障定位效率提升90%。
398 0
|
4月前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。

推荐镜像

更多