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,如需转载请自行联系原作者


相关文章
|
8天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
52 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
|
3天前
|
监控 供应链 搜索推荐
阿里妈妈商品详情API接口:开发、应用与收益的深度剖析
阿里妈妈是阿里巴巴旗下的数字营销平台,其商品详情API接口为开发者提供了获取淘宝、天猫等电商平台商品详细信息的工具。本文介绍了该接口的开发流程、应用场景及带来的收益,揭示了其在电商生态中的重要地位。
22 6
|
3天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
25 6
|
3天前
|
前端开发 API 数据库
Next 编写接口api
Next 编写接口api
|
5天前
|
监控 搜索推荐 API
京东商品详情API接口的开发、应用与收益探索
在数字化和互联网高速发展的时代,京东通过开放商品详情API接口,为开发者、企业和商家提供了丰富的数据源和创新空间。本文将探讨该API接口的开发背景、流程、应用场景及带来的多重收益,包括促进生态系统建设、提升数据利用效率和推动数字化转型等。
18 3
|
10天前
|
供应链 搜索推荐 API
探索1688榜单商品详细信息API接口:开发、应用与收益
本文深入探讨了1688榜单商品详细信息API接口的开发与应用,涵盖接口概述、开发条件、调用方法及数据处理等内容。该API帮助企业高效获取1688平台商品信息,应用于商品信息采集、校验、同步与数据分析等领域,有效提升了企业的运营效率、库存管理、销售转化率及市场策略制定能力,降低了采购成本,提升了客户满意度。
36 9
|
13天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
46 10
|
10天前
|
XML JSON 缓存
阿里巴巴商品详情数据接口(alibaba.item_get) 丨阿里巴巴 API 实时接口指南
阿里巴巴商品详情数据接口(alibaba.item_get)允许商家通过API获取商品的详细信息,包括标题、描述、价格、销量、评价等。主要参数为商品ID(num_iid),支持多种返回数据格式,如json、xml等,便于开发者根据需求选择。使用前需注册并获得App Key与App Secret,注意遵守使用规范。
|
9天前
|
JSON API 开发者
淘宝买家秀数据接口(taobao.item_review_show)丨淘宝 API 实时接口指南
淘宝买家秀数据接口(taobao.item_review_show)可获取买家上传的图片、视频、评论等“买家秀”内容,为潜在买家提供真实参考,帮助商家优化产品和营销策略。使用前需注册开发者账号,构建请求URL并发送GET请求,解析响应数据。调用时需遵守平台规定,保护用户隐私,确保内容真实性。
|
9天前
|
搜索推荐 数据挖掘 API
淘宝天猫商品评论数据接口丨淘宝 API 实时接口指南
淘宝天猫商品评论数据接口(Taobao.item_review)提供全面的评论信息,包括文字、图片、视频评论、评分、追评等,支持实时更新和高效筛选。用户可基于此接口进行数据分析,支持情感分析、用户画像构建等,同时确保数据使用的合规性和安全性。使用步骤包括注册开发者账号、创建应用获取 API 密钥、发送 API 请求并解析返回数据。适用于电商商家、市场分析人员和消费者。