第二话 编写自己的模块代码

目录

一、理解 Salt 远程执行的底层原理

二、执行模块的构成结构

三、编写自己的执行模块函数

四、交叉调用 Salt 自带的模块函数

五、实战编写一个完整模块


一、理解 Salt 远程执行的底层原理

Salt 的底层通信是通过 ZeroMQ 完成的,采用了 ZeroMQ 订阅发布模式(Pub 和 Sub)。

Salt master 启动时会监听两个段都,默认是 4505 和 4506。

4506 的作用:Salt Master Ret 接口,支持认证(auth)、文件服务、结果收集等功能;

4505 的作用:Salt Master Pub 接口,提供远程执行命令发送功能。

二、执行模块的构成结构

Salt 中最简单的远程执行模块,源码的位置如下所示(master 端):

/usr/lib/python2.7/site-packages/salt/modules/test.py

三、编写自己的执行模块函数

3.1 默认情况下,我们的定制化模块存放在 /srv/salt/_modules 文件夹下,这个文件夹并不是默认创建的,需要建立对应的目录并添加文件(master 端):

# mkdir -pv /srv/salt/_modules/
mkdir: created directory `/srv/salt'
mkdir: created directory `/srv/salt/_modules/'
# cd /srv/salt/_modules/

# vim hello.py

#!/usr/bin/env python
 
def world():
    """
    This is my frist function.
    CLI Example::
        salt '*' hello.world
    """
    return 'Hello, world!'

3.2 模块添加完毕后,需要把模块推送到所有 minion 上

// master 端
# salt "*" saltutil.sync_modules
syq-snakenx-02.lehe.com:
    - modules.hello

返回结果是 minion 接收到的新模块名。下面我们可以测试模块的执行效果:

// master 端
# salt "*" hello.world
syq-snakenx-02.lehe.com:
    Hello, world!

四、交叉调用 Salt 自带的模块函数

4.1 _salt_ 函数

4.2 __grains__ 和 __pillar__ 函数

4.3 __virtual__ 函数

五、实战编写一个完整模块

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值