Saltstack-Salt常用模块及API

简介:

Salt提供了非常丰富的功能模块,涉及操作系统的基础功能、常用工具支持等,可以通过sys模块列出当前版本支持的模块。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
salt  '*'  sys.list_modules
781915e2:
  - acl
  - aliases
  - alternatives
  - apache
  - archive
  - artifactory
  - at
  - blockdev
  - btrfs
  - buildout
  - cloud
  - cmd
......

 

API的原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现的。

API实现test.ping示例:

1
2
3
4
5
>>>  import  salt.client
>>> client  =  salt.client.LocalClient()
>>> ret  =  client.cmd( '*' , 'test.ping' )
>>>  print  ret
{ '781915e2' True }       #结果以一个标准的Python字典形式的字符串返回,可以通过eval()函数转换成Python的字典类型,方便后续的业务逻辑处理


(1)Archive模块

功能:实现系统层面的压缩包调用,支持gunzip、gzip、rar、tar、unrar、unzip等。

示例:

1
2
3
4
5
6
7
8
9
10
salt  '781915e2'  cmd.run  'mkdir /opt/test'    #为被控端minion创建/opt/test目录
781915e2:
     
scp  test .txt.gz root@kurol: /opt/test     #将测试的gzip文件拷贝给被控端minion
 
salt  '781915e2'  archive.gunzip  /opt/test/test .txt.gz     #解压被控端/opt/test/test.txt.gz文件
781915e2:
     
salt  '781915e2'  archive. gzip  /opt/test/test .txt      #压缩
781915e2:

API调用:

1
2
3
4
>>>  import  salt.client
>>> client  =  salt.client.LocalClient()
>>> client.cmd( '*' , 'archive.gunzip' ,[ '/opt/test/test.txt.gz' ])
{ '781915e2' : []}

 

 (2)cmd模块

功能:实现远程的命令行调用执行(默认具备root操作权限,使用时需评估风险)

示例:

1
2
3
4
5
6
[root@server ~] # salt '*' cmd.run "free -m"
781915e2:
                  total       used        free      shared    buffers     cached
     Mem:           996        834        162          0        121        252
     -/+ buffers /cache :        460        536
     Swap:            0          0          0

 API调用:

1
client.cmd( '*' , 'cmd.run' ,['free  - m])

 

(3)cp模块

功能:实现远程文件、目录的复制,以及下载URL文件等操作。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
salt  '*'  cp .cache_local_file  /etc/hosts      #将指定被控主机的/etc/hosts文件复制到被控主机本地的salt cache目录(/var/cache/salt/minion/localfiles)
781915e2:
  /var/cache/salt/minion/localfiles/etc/hosts
  
salt  '*'  cp .get_dir salt: //path/to/dir/  /minion/dest     #将主服务器file_roots指定位置下的目录复制到被控主机,salt:// 第一个‘/’为 配置文件base指定的根,第二个为路径分割符
781915e2:
     
salt  '*'  cp .get_file salt: //path/to/file  /minion/dest    #将主服务器file_roots指定位置下的文件复制到被控主机
781915e2:
     
salt  '*'  cp .get_url http: //www .baidu.com  /tmp/index .html      #下载URL内容到被控主机指定位置
781915e2:
     /tmp/index .html

API调用:

1
client.cmd( '*' , 'cp.get_file' ,[ 'salt://path/to/file ' , ' /minion/dest' ])

 

(4)cron模块

功能:实现被控主机的crontab操作

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
salt  '*'  cron.raw_cron root      #查看指定被控主机、root用户的crontab清单
781915e2:
     #secu-tcs-agent monitor, install at Sat Mar 18 15:55:40 CST 2017
     * * * * * /usr/local/sa/agent/secu-tcs-agent-mon-safe.sh /usr/local/sa/agent > /dev/null 2>&1
     */1 * * * * /usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &
     */20 * * * * /usr/sbin/ntpdate ntpupdate.tencentyun.com >/dev/null &
     30 2 * * * /www/server/panel/certbot-auto renew >> /www/server/panel/logs/certbot.log
     
salt  '*'  cron.set_job root  '*'  '*'  '*'  '*'  1 /usr/local/weekly   #为指定的被控主机、root用户添加/usr/local/weekly任务作业
781915e2:
     new
 
salt  '789880e2'  cron.rm_job root /usr/local/weekly      #删除指定的被控主机、root用户crontab的/usr/local/weekly任务作业
781915e2:
     removed

API调用:

1
client.cmd( '*' , 'cron.set_job,[' root ',' * ',' * ',' * ',' * ',' * ',' / usr / echo'])

 

 

 

 

       本文转自谢育政 51CTO博客,原文链接:http://blog.51cto.com/kurolz/1934033,如需转载请自行联系原作者

 

 

 

 

 


相关文章
|
10月前
|
存储 API
使用Webpack的module.hot API来定义模块的热替换
使用Webpack的`module.hot` API实现模块热替换,简单示例展示如何在`myModule`变化时执行回调。`module.hot.accept`接收模块路径和回调函数,当模块或其依赖变更时触发回调,用于执行更新逻辑。可通过`module.hot.data`保存和恢复状态以实现热替换时保持应用程序的状态。
|
7月前
|
前端开发 API 网络架构
【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?
【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?
|
7月前
|
缓存 JavaScript 前端开发
为开源项目 go-gin-api 增加 WebSocket 模块
为开源项目 go-gin-api 增加 WebSocket 模块
83 2
|
7月前
|
Kubernetes 监控 API
在k8S中,各模块如何与API Server进行通信的?
在k8S中,各模块如何与API Server进行通信的?
VRTK4⭐三.射线传送模块 [包含API传送]
VRTK4⭐三.射线传送模块 [包含API传送]
|
7月前
|
消息中间件 关系型数据库 MySQL
为开源项目 go-gin-api 增加后台任务模块
为开源项目 go-gin-api 增加后台任务模块
49 0
|
10月前
|
前端开发 JavaScript API
AngularJS 的 API:模块 API、指令 API、服务 API、过滤器 API、路由 API
AngularJS 的 API:模块 API、指令 API、服务 API、过滤器 API、路由 API
95 0
|
1月前
|
API PHP 开发者
速卖通商品详情接口(速卖通API系列)
速卖通(AliExpress)是阿里巴巴旗下的跨境电商平台,提供丰富的商品数据。通过速卖通开放平台(AliExpress Open API),开发者可获取商品详情、订单管理等数据。主要功能包括商品搜索、商品详情、订单管理和数据报告。商品详情接口aliexpress.affiliate.productdetail.get用于获取商品标题、价格、图片等详细信息。开发者需注册账号并创建应用以获取App Key和App Secret,使用PHP等语言调用API。该接口支持多种请求参数和返回字段,方便集成到各类电商应用中。
|
1月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
68 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
15天前
|
机器学习/深度学习 JSON 算法
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析

热门文章

最新文章

推荐镜像

更多