lanying56123 发表于 2018-8-1 11:10:27

saltstack学习四:自定义modules

  根据官网的说法,自定义modules的文件目录应该是放在/srv/salt/_modules下面,同步到minion的方法有三个:
  state.highstate
  saltutil.sync_modules
  saltutil.sync_all
  好吧,先来写个简单的modules试试看,就返回一个当前时间吧:
  /srv/salt/_modules/test.py
#!/usr/bin/python  
import time
  
def date():
  return time.time()
  接下来推送到minion:
salt '*' saltutil.sync_modules  推送完之后运行一下这个modules,方法是:文件名.函数名

  恩,感觉还可以,接下来看一下modules如何使用grains和pillar的数据:
  /srv/salt/_modules/test.py
#!/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
#!/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,虽然现在还不知道写些什么好。。囧。。。
页: [1]
查看完整版本: saltstack学习四:自定义modules