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. Android新手入门2016(14)--FragmentTabHost实现选项卡和菜单

    本文来自肥宝传说之路,引用必须注明出处! 这章憋了好久.本来想写选项卡的,学到TabHost,TabWidget的,把代码拿过来准备研究的时候,发现竟然在4.0.3版本号被废弃了. 百度一下,发如今后 ...

  2. poj_2828线段树,逆序插入

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #d ...

  3. BZOJ2179: FFT快速傅立叶 & caioj1450:【快速傅里叶变换】大整数乘法

    [传送门:BZOJ2179&caioj1450] 简要题意: 给出两个超级大的整数,求出a*b 题解: Rose_max出的一道FFT例题,卡掉高精度 = =(没想到BZOJ也有) 只要把a和 ...

  4. m_Orchestrate learning system---二十五、复制类的时候最容易出现的错误是什么

    m_Orchestrate learning system---二十五.复制类的时候最容易出现的错误是什么 一.总结 一句话总结:命名空间错误导致Analyze类虽然继承了Base类,但是没有执行里面 ...

  5. Tuples as return values

    Strictly speaking, a function can only return one value, but if the value is a tuple, the effect is ...

  6. Android-Context的一切

    Context类型 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢?其实简单点分析, ...

  7. H5操作WebSQL数据库

    HTML代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...

  8. c# 静态成员和实例成员的区别

    静态成员也称为共享成员,例如静态属性 静态字段 静态方法:静态成员可以在类的实例之间共享. 静态类中只能有静态成员,不能有实例成员,因为静态类不能进行实例化: 在非静态类中 即可以有静态成员 也可以有 ...

  9. Mojo For Chromium Developers1

    Mojo For Chromium Developers Overview This document contains the minimum amount of information neede ...

  10. WHU 1540 Fibonacci 递推

    武大邀请赛的网络预选赛,就去做了个签到题,居然连这个递推都没推出来,真是惭愧. 而且好久没写矩阵乘法了,来回顾一下. 题意: 求Fibonacci数列的,前n项立方和. 思路: 可以求得一下递推公式: ...