1 salt执行模块开发

saltstack自带的模块已经很多了,但是有些时候我们需要自己开发出自己的模块来满足自己的需求,那就要自己开发了,下面请看例子

创建_modules目录在file_roots下面

我们需要在file_roots下面创建_modules目录,然后在这个目录下面编写自己的模块

[root@linux-node1 /srv/salt/base]# mkdir _modules
[root@linux-node1 /srv/salt/base/_modules]# cat my_disk.py
def show_disk():
  cmd = 'df -h'
  ret = __salt__["cmd.run"](cmd)
  return ret

同步模块

写完模块后,我们需要把这个模块同步到其他的minion上

[root@linux-node1 /srv/salt/base/_modules]# salt \* saltutil.sync_modules
linux-node2.example.com:
    - modules.my_disk
linux-node1.example.com:
    - modules.my_disk

同步完成后,我们执行这个模块

[root@linux-node1 /srv/salt/base/_modules]# salt \* my_disk.show_disk
linux-node1.example.com:
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        48G  2.6G   46G   6% /
    devtmpfs        902M     0  902M   0% /dev
    tmpfs           912M   28K  912M   1% /dev/shm
    tmpfs           912M   17M  896M   2% /run
    tmpfs           912M     0  912M   0% /sys/fs/cgroup
    /dev/sda1      1014M  158M  857M  16% /boot
    tmpfs           183M     0  183M   0% /run/user/0
linux-node2.example.com:
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        48G  2.6G   46G   6% /
    devtmpfs        902M     0  902M   0% /dev
    tmpfs           912M   12K  912M   1% /dev/shm
    tmpfs           912M   17M  896M   2% /run
    tmpfs           912M     0  912M   0% /sys/fs/cgroup
    /dev/sda1      1014M  158M  857M  16% /boot
    tmpfs           183M     0  183M   0% /run/user/0

minion保存模块的地方

minion保存模块的地方在 /var/cache/salt/minion/extmods/modules/

[root@linux-node2 ~]# cat /var/cache/salt/minion/extmods/modules/my_disk.py
def show_disk():
  cmd = 'df -h'
  ret = __salt__["cmd.run"](cmd)
  return ret

posted @   温柔易淡  阅读(246)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示