博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
saltstack学习四:自定义modules
阅读量:6605 次
发布时间:2019-06-24

本文共 1092 字,大约阅读时间需要 3 分钟。

根据官网的说法,自定义modules的文件目录应该是放在/srv/salt/_modules下面,同步到minion的方法有三个:

好吧,先来写个简单的modules试试看,就返回一个当前时间吧:

/srv/salt/_modules/test.py

1
2
3
4
#!/usr/bin/python
import 
time
def 
date
():
    
return 
time
.
time
()

接下来推送到minion:

1
salt 
'*' 
saltutil.sync_modules

推送完之后运行一下这个modules,方法是:文件名.函数名

恩,感觉还可以,接下来看一下modules如何使用grains和pillar的数据:

/srv/salt/_modules/test.py

1
2
3
4
5
6
7
8
#!/usr/bin/python
import 
time
def 
date():
    
return 
time.time()
def 
get_osfinger():
    
return 
__grains__[
'osfinger'
]
def 
get_cachedir():
    
return 
__pillar__[
'master'
][
'cachedir'
]

__grains__ 和 __pillar__ 保存了grains和pillar的数据,我们可以在module中这样来读取,推送到minion之后看看结果:

然后官网还说到一个功能就是调用其它的模块:

/srv/salt/_modules/test.py

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/python
import 
time
def 
date():
    
return 
time.time()
def 
foo():
    
return 
__salt__[
'cmd.run'
](
'df'
)
def 
get_osfinger():
    
return 
__grains__[
'osfinger'
]
def 
get_cachedir():
    
return 
__pillar__[
'master'
][
'cachedir'
]

所有的模块都包含在__salt__字典里面,我试试执行cmd.run "df",看看结果:

这样感觉就可以把一些日常经需要做的工作写成modules,虽然现在还不知道写些什么好。。囧。。。

本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1396279如需转载请自行联系原作者

lihuipeng

你可能感兴趣的文章
rabbitmq 管理及常用命令
查看>>
iphone导航控制器的开发与使用
查看>>
debian python library re-install
查看>>
如何用转义来给JS添加的input元素设置单引号
查看>>
J2E——网络编程练习
查看>>
VirtualBox移植
查看>>
HTTP要被抛弃? 亚洲诚信携手宝塔开启HTTPS加密快速通道
查看>>
Chrome: 完全移除对WoSign和StartCom证书的信任
查看>>
RecyclerView侧滑删除功能
查看>>
记一个hystrix异常
查看>>
9.02-Spring IOC 容器中Bean的生命周期
查看>>
6.6 tar打包
查看>>
微信自动抢红包的实现(Demo已增加查看TopActivity功能)
查看>>
Spring MVC核心技术
查看>>
TCP协议如何保证传输的可靠性
查看>>
Spring Cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
查看>>
编程之美 测试赛 石头剪刀布
查看>>
签名问题
查看>>
软件开发各阶段交付物列表
查看>>
2018-05-24 Linux学习
查看>>