Saltstack的API接口与调用方式

saltstack看起来是成为一个大规模自己主动化运维和云计算管理的一个框架,类似于SDK,并非像puppet仅仅成为一个工具.基于良好设计的API和清楚的思路,让salt的二次开发变得非常easy.写非常少的代码就能够将salt跟现有的运维系统结合.saltstack是用python语言实现的,假设对saltstack本身进行二次开发,就必须得会python语言. Saltstack是通过多个独立的模块构成的,这些都能够当做saltstack的api.然后在上层做基础开发能够通过调用这些saltstack的api的模块进行.通过在python中import引入相应的api模块实现要实现的功能就可以,然后写自己相应的需求代码.简单案例:调用saltstack的api模块.由于saltstack使用python语言实现,而python自带的shell跟ubuntu自带默认的vi编辑器一样比較痴呆,所以先安装ipython,作为开发python的帮助利器.ipython是一个python的交互式shell,功能强悍.跟ubuntu安装其它软件一样Sudo apt-getinstall ipython 就能够安装. 安装完成后,进入ipython操作界面,然后通过ipython的补全功能,看看salt的模块例如以下:这里以salt.client为样例,说明一下对saltstack的api的调用.首先进入ipython的界面,importsalt.client     (引入salt.client的模块)Client = salt.client.LocalClient()  (LocalClient是底层定好好的一个类.)Ret = client.cmd(‘1st’, ‘cmd.run’,[‘hostname’])Ret就可以回显出1st控制端的hostname的值.具体的client模块的函数介绍參考:http://docs.saltstack.com/ref/clients/index.html#client-apis然后其它像salt.grains模块,就是收集信息模块.像引入grains模块后,Import salt.grains.core然后就能够调用其function函数.Salt.grains.core.ip4()    (这个是回显ip地址信息,由函数名就能够判断出来的)Salt-api为了迅速集成saltstack到第三方系统中,官方提供了salt-api模块.Salt-api是作为saltstack的一个模块接口,它能够提供一系列的接入执行saltstack系统的接口.当saltstack须要与第三方系统集成的时候,这时候就须要salt-api来进行中间的连接介入.Salt-api作为一个模块接口,所以首先是要进行安装配置的.首先安装好salt-api在salt-master服务端.然后配置salt-master的配置文件,把执行salt-api的模块启用.再安装好salt-api所需的动态链接库或者你要执行的软件.最后启动salt-api,并且重新启动全部的配置.在配置salt的master文件时候,不同的软件,所须要配置的选项不同.在master的配置文件里,当中salt-api提供了PAM的方式进行认证和权限划分,编辑 salt master 的配置文件 /etc/salt/master , 编辑 external_auth 那一部分,指定用户和他所拥有的权限. API 是通过cookie记录认证信息的,所以调用一定要保存cookie,我们调用api的时候首先须要认证,发送请求给 /login.简单案例: 这里以tornado这个webserver作为示例.由于这个是支持python语言的server.首先看官网,在ubuntu下安装好tornado.然后跑起来.讲的非常明确,可是细节要靠自己摸索.地址http://opython.com/还是依照官网给的demo演示salt-api的调用. saltstack官方有个webui 叫 halite ,一个在页面执行管理的ui.后端用的是salt-api .官网介绍: http://salt-api.readthedocs.org/en/latest/.可是这个最后发现更让人晦涩,并且里面要求的配置文件,根本找不到.总结通过这几天的学习,查找资料.自己总结为saltstack的api接口调用是比較方便的,网上资料非常少,并且官网的salt-api的样例讲的比較笼统,网上的样例是有结合第三方的程序通过salt-api接入saltstack中.个人总结:saltstack本来就是一个开源的程序,所以其底层代码是透明的,所以能够直接引入saltstack的api的模块进行相应的开发.可是前提是了解相应的api的功能,能够不必深究底层代码类怎样实现,可是仅仅要知道function功能就能够啦.可是一般开发中,应该都不是直接对saltstack的api调用,而是通过salt-api作为一个统一的接口接入.salt-api提供saltstack的所要的各种api接口.关于对saltstack的api的接口与调用方式,这些就是自己看资料综合整理的.可是中间出了非常多问题,网上找不到答案的问题.就仅仅能自己揣測.官网上讲的非常easy,并且看不非常明确.反正总而言之,saltstack的api接口是以各种模块的形式提供出来,可供python来使用,做开发.然后就是salt-api作为一个独立的接入模块,相当于一个SDK的环境,大大简化saltstack集成到现有的运维环境中去.

时间: 2024-10-12 19:49:25

Saltstack的API接口与调用方式的相关文章

电子面单api接口_JAVA调用示例

电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务.通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍.电子面单以接口形式嵌入到自己的系统.网站上,可以在自己的平台操作打印电子面单. 目前电子面单接口类型有:快递公司自行提供接口.菜鸟电子面单接口.快递鸟电子面单接口.菜鸟电子面单接口.快递鸟电子面单接口接入方式类似,都支持15家快递查询,其中菜鸟不支持顺丰电子面单打印,快递鸟不支持天天.快捷等快递电子面单打印.以下先做快递鸟电子面单接口的JAVA接入示例,后面逐渐介绍其他接口其他语言

Web车牌识别中API接口的调用

Web Service车牌识别就是服务器版车牌OCR识别软件,属于后端识别,Web Service车牌识别软件目前支持Windows.Linux等主流服务器操作系统. 该软件可部署在私有服务器中(私有本地服务器或云服务器均可),APP和业务系统可通过web service接口调用该识别服务,设备端只负责拍摄图像后上传,上传到已部署Web Service车牌识别软件的服务器中进行识别,识别完成后再返回标准的XML数据.整个识别过程和我公司没有任何交互,均在企业自有的服务器上完成识别. 服务主要功能

Axis2、Axis1 以及其他接口的调用方式

在请求的时候出现问题,使用下面的方式请求就不会出现问题. package webservice.client.utils; import java.util.Iterator; import java.util.Map; import javax.xml.namespace.QName; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serializati

s3 api接口的调用

最近公司使用s3做文件存储服务器,因此在程序中需要调用s3的api,目前程序中使用了python和java版本的s3的api,简单做下记录,方便以后使用. 一.s3 api使用python版 1.安装boto3的sdk pip install boto3==1.4.7 2.创建s3的api客户端 import boto3from botocore.client import Configimport osimport sysimport threading #创建s3链接,如果s3服务器是第四代

解析!微信域名拦截检测api接口的实现方式

背景 由于业务需要,需开发稳定可靠的微信域名拦截查询接口.所以,公司内部决定调研一套稳定.快速.正确率高的微信域名拦截检测查询接口. 但在网上谷歌百度查了好几天,都是一些付费接口,各大博客论坛GitHub也几乎是广告,开发组尝试谷歌搜索了一段时间,发现很少把源码及原理分享出来的.后来我们摸索了几天,终于解决这个问题.现决定将源码及原理分享出来! 域名检测接口来源 366-Domain Name Checking 原理 使用  Wireshark  抓包获取微信的域名拦截查询接口. 域名有如下几种

Web API接口 安全验证

在上篇随笔<Web API应用架构设计分析(1)>,我对Web API的各种应用架构进行了概括性的分析和设计,Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端(包括浏览器,手机和平板电脑等移动设备)的框架,本篇继续这个主题,介绍如何利用ASP.NET Web API 来设计Web API层以及相关的调用处理. 1.Web API的接口访问分类 Web API接口的访问方式,大概可以分为几类: 1)一个是使用用户令牌,通过Web API接口进行数据访问.这种方式,可

如何使用API接口查询物流信息?

电商行业的迅猛发展,推动着相关产业,尤其是物流行业需求的增加,据百度指数显示,针对物流查询的关键词搜索近年来始终居高不下并有不断上涨趋势,足见物流查询的需求之大.鉴于我在自身业务中的一些实际使用经验和总结,接下来就以用友APILink为例,讲一讲如何通过对接API接口,调用查询接口,获取物流信息.用友APILink官方平台上,"全国快递物流查询API"支持包括申通.顺丰.圆通.韵达.中通.汇通等快递公司在内的百家快递物流单号查询,是专门服务于快递查询的API接口.? 覆盖诸多快递公司:

2020最新的新浪短网址API接口分享-防封短网址如何生成分享

在短信,微信,微博,等等各大营销平台中我们都能看到http://t.cn/xxxx样式的新浪短链接,这种超短链接很好的满足了营销中要求链接简洁,美观,专业的特性,而且通过短网址包装后的链接对外发布也起到了防封的效果.那么新浪t.cn短链接如何生成呢?网址缩短API接口如何调用?今天我就给大家分享一下.   新浪t.cn短网址API接口: http://qingmeidwz.cn/shorten.php?url_long=http://www.baidu.com   微信url.cn短网址API接

Python调用API接口的几种方式

相信做过自动化运维的同学都用过API接口来完成某些动作.API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课. 本文主要介绍python中调用API的几种方式,下面是python中会用到的库. - urllib2 - httplib2 - pycurl - requests urllib2 import urllib2, urllib github_url = 'https://api.github.com/user/repos' password_manage