saltstack一些常用模块和api调用方法

简介:

  研究可执行模块的时候,发现很多自带的模块已经很完善,可以帮助我们完成日常工作了,这里写入自己的记录操作:

1、使用salt.clien调用接口操作举例:

1
2
3
4
5
>>>  import  salt.client
>>> client  =  salt.client.LocalClient()
>>> ret  =  client.cmd( '*' , 'test.ping' )
>>> ret
{ 'monitor' True }

我们看到调用了LocalClient()这个函数之后,等于我们执行的命令 salt '*' test.ping.运用这个接口我们可以灵活的再调用模块开发时候使用

2、status模块

刚发现这个模块,原来想做系统监控时候用Mine调用,现在发现这个模块也是蛮适合的,可以监控,cpu、内存、硬盘、网络,等一些我们日常信息:可以查看模块源码:/usr/lib/python2.6/site-packages/salt/modules/status.py。

源码片段,下面是我们可以操作的函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
def  all_status():
     ... ... ...
     return  { 'cpuinfo' : cpuinfo(),
             'cpustats' : cpustats(),
             'diskstats' : diskstats(),
             'diskusage' : diskusage(),
             'loadavg' : loadavg(),
             'meminfo' : meminfo(),
             'netdev' : netdev(),
             'netstats' : netstats(),
             'uptime' : uptime(),
             'vmstats' : vmstats(),
             'w' : w()}

使用方法:

1
2
3
[root@mail python] # salt '*' status.uptime
monitor:
      11 : 40 : 50  up  23  days,  23 : 24 ,   1  user,  load average:  0.00 0.00 0.00

api接口调用方法:

1
2
>>> client.cmd( '*' , 'status.uptime' )
{ 'monitor' ' 11:41:52 up 23 days, 23:25,  1 user,  load average: 0.00, 0.00, 0.00' }

3、system

1
2
3
4
5
6
system模块主要是用来做日常操作计算机维护记录,源码也在上面的位置下:
system.halt         #停止正在运行的系统
system.init  3       #切换到字符界面,5是图形界面
system.poweroff
system.reboot
system.shutdown


操作方法:不演示:

4、systemd

系统管理模块,这个也是一个非常有用的功能,我们可以用来检测我们的服务是否已经启动,源码自己查看:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
service.available sshd             #查看服务是否可用
   service.disable <service name>     #设置开机启动的服务
   service.enable <service name>
   service.disabled <service name>    #查看服务是不是开机启动
   service.enabled <service name>
   service.get_disabled               #返回所有关闭的服务
   service.get_enabled                #返回所有开启的服务
   service.get_all                    #返回所有服务
   service. reload  <service name>      #重新载入指定的服务
   service.restart <service name>     #重启服务
   service.start <service name>
   service.stop <service name>
   service.status <service name>
   service.force_reload <service name>   #强制载入指定的服务

使用方法:

1
2
3
[root@mail python] # salt '*' service.available sshdmonitor:    True
api调用:
>>> client.cmd( '*' , 'service.available' ,[ 'sshd' ]){ 'monitor' True }


   总结:通过api接口的调用,我们就会发现生成很多我们想要的结果,因为是字典,我们可以很容易的对收到的数据进行操作。









本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1615905,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
自然语言处理 算法 Java
地址描述转换为坐标点不使用API,有什么转换的方法?
地址描述转换为坐标点不使用API,有什么转换的方法?
359 64
|
3月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
68 1
|
1月前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
173 5
|
3月前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
116 5
|
3月前
|
JavaScript 前端开发 Java
多种语言请求API接口方法
每种语言和库的选择取决于具体需求、项目环境以及个人偏好。了解这些基本方法,开发者就可以根据项目需求选择合适的语言和库来高效地与API交互。
54 1
|
3月前
|
安全 测试技术 API
一图看懂API测试9种方法
一图看懂API测试九种方法:冒烟测试验证基本功能,功能测试确保符合规格,集成测试检查组件协同工作,回归测试防止新变更引入问题,负载测试评估性能稳定性,压力测试挑战极限负载,安全测试发现并修复漏洞,用户界面测试确保UI与API协调,模糊测试提升异常数据处理鲁棒性。
|
5月前
|
前端开发 API 网络架构
【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?
【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?
|
5月前
|
UED 开发工具 iOS开发
Uno Platform大揭秘:如何在你的跨平台应用中,巧妙融入第三方库与服务,一键解锁无限可能,让应用功能飙升,用户体验爆棚!
【8月更文挑战第31天】Uno Platform 让开发者能用同一代码库打造 Windows、iOS、Android、macOS 甚至 Web 的多彩应用。本文介绍如何在 Uno Platform 中集成第三方库和服务,如 Mapbox 或 Google Maps 的 .NET SDK,以增强应用功能并提升用户体验。通过 NuGet 安装所需库,并在 XAML 页面中添加相应控件,即可实现地图等功能。尽管 Uno 平台减少了平台差异,但仍需关注版本兼容性和性能问题,确保应用在多平台上表现一致。掌握正确方法,让跨平台应用更出色。
63 0
|
5月前
|
数据采集 API TensorFlow
简化目标检测流程:深入探讨TensorFlow Object Detection API的高效性与易用性及其与传统方法的比较分析
【8月更文挑战第31天】TensorFlow Object Detection API 是一项强大的工具,集成多种先进算法,支持 SSD、Faster R-CNN 等模型架构,并提供预训练模型,简化目标检测的开发流程。用户只需准备数据集并按要求处理,选择预训练模型进行微调训练即可实现目标检测功能。与传统方法相比,该 API 极大地减少了工作量,提供了从数据预处理到结果评估的一站式解决方案,降低了目标检测的技术门槛,使初学者也能快速搭建高性能系统。未来,我们期待看到更多基于此 API 的创新应用。
42 0
|
5月前
|
API
【Azure API 管理】APIM中的Policy是否有调用速率的方法(熔断机制)
【Azure API 管理】APIM中的Policy是否有调用速率的方法(熔断机制)