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集成到现有的运维环境中去.
 

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

  1. 在Winform混合式框架中整合外部API接口的调用

    在我们常规的业务处理中,一般内部处理的接口多数都是以数据库相关的,基于混合式开发的Winform开发框架,虽然在客户端调用的时候,一般选择也是基于Web API的调用,不过后端我们可能不仅仅是针对我们 ...

  2. 【转】java通用URL接口地址调用方式GET和POST方式

    java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...

  3. ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)

    一.ASP.NET Web API接口定义 ASP.NET Web API默认实现了Action方法和HTTP方法的映射,Action方法方法名体现了其能处理的请求必须采用的HTTP方法 二.寄宿方式 ...

  4. 关于新浪和腾讯短网址API接口的调用

    最新新浪t.cn短网址和腾讯url.cn短网址生成api接口,快速生成t.cn及url.cn超短链接,接口都可以正常调用,觉得不错可以收藏一下. 新浪短网址api接口:1. http://yldwz. ...

  5. 百度网盘上下载文件,调用api接口的请求方式和参数

    REST api 功能:下载单个文件. Download接口支持HTTP协议标准range定义,通过指定range的取值可以实现断点下载功能. 例如: 如果在request消息中指定“Range: b ...

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

    在请求的时候出现问题,使用下面的方式请求就不会出现问题. package webservice.client.utils; import java.util.Iterator; import java ...

  7. Java内部接口的调用方式

    package com.hs.review; public class Person { public static void main(String[] args) { Person p1 = ne ...

  8. s3 api接口的调用

    最近公司使用s3做文件存储服务器,因此在程序中需要调用s3的api,目前程序中使用了python和java版本的s3的api,简单做下记录,方便以后使用. 一.s3 api使用python版 1.安装 ...

  9. Java多线程:实现API接口创建线程方式详解

    先看例子: /**实现Runnable接口创建线程步骤: * 1.创建一个实现Runnable接口的类 * 2.重写Runnable类中抽象的run()方法 * 3.创建实现类的对象 * 4.声明Th ...

随机推荐

  1. JS学习笔记-数据类型

    最初的JS学习已经过去大半年的时间了,至此感觉对JS的使用与理解并非非常深入,因此在近期的工作之余也開始了新一轮的JS学习. 几天时间过去了,对于一些基础内容的学习还是非常有必要的,就从今天的又一次整 ...

  2. 【试水CAS-4.0.3】第02节_CAS服务端登录页个性化

    完整版见https://jadyer.github.io/2015/07/16/sso-cas-login-diy/ /** * @see ------------------------------ ...

  3. 51nod-1296: 有限制的排列

    [传送门:51nod-1296] 简要题意: 有一个集合,集合中的数为1到n 给出a限制条件,a[i]表示第a[i]位置的数要比相邻位置的数要小 给出b限制条件,b[i]表示第b[i]位置的数要比相邻 ...

  4. vmware workstation虚拟机克隆后不能上网(桥接模式下)

    (CentOS6.8下) 重启新克隆的虚拟机,输入用户名密码,进入系统. 1.修改网卡配置,输入 vi /etc/sysconfig/network-scripts/ifcfg-eth0 出现类似如下 ...

  5. HDU 5214 Movie【贪心】

    题意:给出n,l[1],r[1],a,b,c,d 其中 l[i]=l[i-1]*a+b,r[i]=r[i-1]*c+d; 问能否从这n个区间中选出不相交不重叠的三个区间 看的题解 先考虑最左边的区间, ...

  6. php基础:define()定义常数函数

    define(); 常量类似变量,不同之处在于: 在设定以后,常量的值无法更改 常量名不需要开头的美元符号 ($) 作用域不影响对常量的访问 常量值只能是字符串或数字 <?php define( ...

  7. 初入AngularJS

    AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVVM.模块化.自动化双向数据绑定.语义化标签.依赖注入等等. Ang ...

  8. [POI2002][HAOI2007]反素数 数论 搜索 好题

    题目描述: 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4, ...

  9. NodeJS学习笔记 (18)基础调试-console(ok)

    模块概览 console模块提供了基础的调试功能.使用很简单,常用的API主要有 console.log().console.error(). 此外,可以基于Console类,方便的扩展出自己的con ...

  10. uwsgi erro

    Installing collected packages: uwsgi Running setup.py install for uwsgi: started Running setup.py in ...