zoukankan      html  css  js  c++  java
  • 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集成到现有的运维环境中去.  
  • 相关阅读:
    可爱的中国电信 请问我们的电脑还属于我们自己吗?
    了解客户的需求,写出的代码或许才是最优秀的............
    DELPHI DATASNAP 入门操作(3)简单的主从表的简单更新【含简单事务处理】
    用数组公式获取字符在字符串中最后出现的位置
    在ehlib的DBGridEh控件中使用过滤功能(可以不用 MemTableEh 控件 适用ehlib 5.2 ehlib 5.3)
    格式化json返回的时间
    ExtJs中使用Ajax赋值给全局变量异常解决方案
    java compiler level does not match the version of the installed java project facet (转)
    收集的资料(六)ASP.NET编程中的十大技巧
    收集的资料共享出来(五)Asp.Net 权限解决办法
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7057673.html
Copyright © 2011-2022 走看看