SaltStack自定义modules模块

SaltStack可以分为Master和Minion,自定义modules模块可以让你更加便捷的在两者之间进行信息收集和获取。

首先需要在master机器的file_roots 下建一个_modules文件夹,里面放.py 文件,也就是自定义模块。

  • 1.1:  file_roots 在/etc/salt/master 里可以设置,默认是/srv/salt/,即你需要在这个目录下新建文件夹_modules
    srv
    \-- salt
       \-- _modules
           \-- test.py
    

     

  • 1.2:  test.py

    def world():
        return 'hello world'

     

  • 1.3  在master使用salt "*" saltutil.sync_modules对_modules里面的文件同步到minion
  • 1.4  然后使用salt "*" test.hello,输出结果,记得test.py文件里面要加return,不然在master是无法显示接收到的信息。
  • ---------------------------------------------------------------------------------------------------------------------------------------------------------
  • 2.1  windows安装的minion默认路径存放在C:\salt
  •  

  • 2.2  同步之后的_modules模块存放在C:\salt\var\cache\salt\minion\extmods\modules
  •  

  • 2.3  如果在master写好Python文件之后进行推送测试未免太麻烦,可以在salt目录下,按住Shift键打开命令行,输入salt-call.bat   a(文件名).world(文件当中的模块名),进行快速测试PS:每一次测试完记得要将__pycache__文件夹删除,不然他会重新编译之前的文件,无法得到你想要的结果
  • 例子
  • 如果pillar取不到数据,很可能是你没有定义,或者忘了刷新pillar数据   salt  '*'  saltutil.refresh_pillar
  • ---------------------------------------------------------------------------------------------------------------------------------------------------------
  • 3.1  runner模块其实可以用salt-run来快速调用,首先在打开master的配置文件,vim /etc/salt/master,在里面加入如下代码,然后创建相应的文件夹。
  •  

  • 3.2  在 /srv/runner/ 文件夹当中可以编写你所需要的Python文件,如新建一个a.py文件
  • 这样一来便可以在任何目录输入这条指令,直接执行,只不过在编写比较复杂的程序时,需要注意导入模块的路径问题,最好使用os.path.abspath来获取文件的绝对路径,而不是使用os.getpwd,因为os.getcwd是会获取当前的工作目录,得到的是salt-run语句执行的目录,并不会到python文件的执行目录,这一点要特别注意 
  •  

转载于:https://www.cnblogs.com/a13798508446/p/9507110.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值