python调用salstack

简介: Python API调用saltstack

Python API调用saltstack

SaltStack本身提供salt(usr/bin/salt)来交互管理,但是去服务器上敲命令肯定不是一个长远之计,这时候python就体现了nb的功能。


Python API就是给Python提供的API使用,需要在SaltStack master上运行


1.实例代码

[root@master  ~]$python

Python 2.7.5 (default, Jul 13 2018, 13:06:57)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import salt.client

>>> local = salt.client.LocalClient()  #<salt.client.LocalClient object at 0x7f886dbdd850>

>>> local.cmd('*','cmd.run',['hostname'])#向所有minion发送命令

{'slave': 'slave'}

因此python API就是提供了向saltstack发送命令的入口。


2.通过API获取saltstack的配置文件

(1)获取master配置文件

>>> import salt.config #导入salt配置模块

>>> m_opts=salt.config.client_config('/etc/salt/master') #读取salt配置文件,得到一个字典数据


(2)获取minion配置文件

Python 2.7.5 (default, Jul 13 2018, 13:06:57)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import salt.client

>>> salt.config.minion_config('/etc/salt/minion') #读取minion配置文件,得到字典数据,通过字典方法可以查看信息


#############################################################################


Python API介绍

/usr/bin/salt默认使用的接口是LocalClient,该接口只能在salt master上使用

[root@master  ~]$python

Python 2.7.5 (default, Jul 13 2018, 13:06:57)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import salt.client

>>> local = salt.client.LocalClient()  #<salt.client.LocalClient object at 0x7f886dbdd850>

>>> local.cmd('*','cmd.run',['hostname'])#向所有minion发送命令

{'slave': 'slave'}


逐条返回结果,local.cmd_iter()

>>> ret=local.cmd_iter('*','test.ping')

>>> ret

<generator object cmd_iter at 0x7f886d455c80>

>>> for i in ret:

...     print i

...

{'slave': {'retcode': 0, 'ret': True}}


菲波那切数列

>>> local.cmd('*','test.fib',[10])

{'slave': [[0, 1, 1, 2, 3, 5, 8], 2.1457672119140625e-06]}


检查minion服务器信息

>>> local.cmd('*','cmd.run',['hostname'])

{'slave': 'slave'}

>>> local.cmd('*','cmd.run',['ifconfig'])

>>> local.cmd('*','cmd.run',['crontab -l'])

>>> local.cmd('*','cmd.run',['df -h'])


启停minion的服务,如nginx

>>> local.cmd('*','service.stop',['nginx'])

{'slave': True}

>>> local.cmd('*','service.status',['nginx'])

{'slave': False}

>>> local.cmd('*','service.start',['nginx'])

{'slave': True}


相关文章
|
缓存
npm install 一直卡着不动如何解决
npm install 一直卡着不动如何解决
7564 0
|
9月前
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
9月前
|
数据可视化
如何减少低效沟通?小型团队信息管理的实战方法
在小型团队中,信息过载常导致沟通混乱和任务执行低效。本文探讨了信息过载的根源,并提出优化策略:统一沟通渠道、结构化任务指令、设定消息优先级以及使用可视化工具如板栗看板,以减少信息碎片化、提高执行精准度、避免干扰专注工作并让任务状态透明,从而提升整体协作效率。
372 59
|
8月前
|
消息中间件 大数据 Kafka
掌握大数据时代的心跳:实时数据处理的崛起
掌握大数据时代的心跳:实时数据处理的崛起
291 4
|
11月前
|
机器学习/深度学习 人工智能 编解码
MV-Adapter:上交大、北航和 VAST 等联合开源多视图一致图像生成模型,将预训练的文生图扩散模型转为多视图生成器
MV-Adapter是由北京航空航天大学、VAST和上海交通大学联合开发的多视图一致图像生成模型。该模型能够将预训练的文本到图像扩散模型转化为多视图图像生成器,支持生成高分辨率的多视角图像。
749 18
MV-Adapter:上交大、北航和 VAST 等联合开源多视图一致图像生成模型,将预训练的文生图扩散模型转为多视图生成器
|
搜索推荐 安全 数据挖掘
如何利用商品详情数据挖掘消费者的潜在需求?
本文介绍了利用商品详情数据挖掘消费者潜在需求的六种方法,包括分析商品属性信息、研究消费者评价反馈、关注搜索浏览行为、对比竞争对手数据、分析购买行为及利用数据挖掘技术进行综合分析,旨在帮助企业精准捕捉市场需求,优化产品和服务。
|
关系型数据库 PostgreSQL
【一文搞懂PGSQL】5. 流复制
PostgreSQL流复制架构支持多种常见配置,包括基本的主从复制、结合PGPool-II的读写分离以及使用repmgr实现高可用性。基础环境中,主节点与备用节点分别位于不同IP。配置涵盖创建复制用户、调整核心参数以支持流复制,并确保归档与日志功能正常工作。从节点需通过备份恢复并配置为待机模式,以实现数据同步。此外,还介绍了如何验证复制状态及手动切换主从节点的方法,以及同步复制参数的配置细节。
|
Java 数据库 Android开发
使用Hilt完成依赖注入,让你的安卓代码层次有几层楼那么高(三)
使用Hilt完成依赖注入,让你的安卓代码层次有几层楼那么高(三)
350 0
|
边缘计算 安全 智能硬件
边缘计算:重塑医疗领域未来的关键力量
**边缘计算正重塑医疗行业,实现数据实时处理,提升诊疗效率。远程手术、智能监测及医学影像分析等应用,确保患者安全,优化医疗资源分配。技术进步推动数字化转型,为医疗创新提供新机遇,同时也带来挑战。携手迎接边缘计算赋予医疗的未来!**
|
消息中间件 NoSQL Java
Java必备面试题(100题)-八股篇
主要包括一些高频的Java面试的八股文面试题和答案

热门文章

最新文章