saltstack学习四:自定义modules

简介:

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

state.highstate

saltutil.sync_modules

saltutil.sync_all


好吧,先来写个简单的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,方法是:文件名.函数名

wKiom1NM_vSw1LsQAACbNwcIurw503.jpg

恩,感觉还可以,接下来看一下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之后看看结果:

wKiom1NN7izCu7qtAAD6RcMUBb8352.jpg

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

/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",看看结果:

wKiom1NN_LbQMsjrAAEcsJUXFVg730.jpg


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

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


lihuipeng

相关文章
|
存储 JSON 应用服务中间件
saltstack学习自动化
saltstack学习自动化
110 0