1.Grains的二次开发
在master上添加Grains,且同步给minion。注意:只能从master同步给minion,而不能从master通过syndic同步给minion。
在master的file_roots目录下建_grains,在_grains目录下写grains的py文件,用return返回就可以拉
vim my_grains.py def my_grains(): ''' My Custom Grains ''' grains = { 'hehe1': 'haha1', 'hehe2': 'haha2' } return grains
然后在master主机执行同步grains命令
salt '*14' saltutil.sync_grains
此时在minion主机的/var/cache/salt/minion/extmods/grains/下可以看到master中同步过来的my_grains.py文件。
在master执行下面命令可以得到对应的grains值。
salt '*14' grains.item
2.模块的二次开发
在3006版本以后,安装salt会自动给安装一个给salt使用的python不同于全局的python。这个python的目录为/opt/saltstack/salt/bin/python3,已安装的模块目录在/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/。
Site-Packages是指存放第三方库的目录。当我们使用pip或者其他工具安装Python库时,默认会将这些库安装到Python的site-packages目录下。site-packages目录位于Python安装目录下的lib子目录中。
编写的模块需要放在root_files下的_modules/下,与grains一样,只能在master给minion,不能master通过syndic给minion
vim /data/salt/sls/base/_modules/my_disk.py def list(): cmd = 'df -h' ret = __salt__['cmd.run'](cmd) return ret
分发模块
salt '*' saltutil.sync_modules
此时在master可以执行这个模块
salt '*14' my_disk.list
标签:grains,minion,my,master,二次开发,saltstack,salt,目录 From: https://www.cnblogs.com/xiaoxiaomuyuyu/p/18086876