第三章:saltstack编写自己的模块代码
saltstack的两个端口:
4506端口的作用:salt Master Ret接口,支持认证、文件服务、结果手机等功能
4505端口的作用:salt Master pub接口,提供远程执行命令发送功能
saltstack通信过程:
(1)salt minion启动时候,从配置文件中获取到master地址,如果是域名,那就进行解析。
(2)salt minion连接master的4506进行key认证。认证通过,就从4505端口获取master的publish_port,然后连接publish_port订阅来自master pub接口的任务。
(3)salt master下发操作指令时,所有的minion都能接收到,然后minion会检查本机是否匹配,如果匹配,那就执行。执行完毕之后,把结果发送到master的4506(Retain接口)由master进行处理,命令发送通信完全是异步的,并且命令包很小。
编写自己的执行模块函数
默认情况下,我们定制话模块存放于/srv/salt/_modules文件夹下,这个文件夹并不是默认创建的,需要建立对应的目录并添加文件
mkdir -p /srv/salt/_modules/
编辑文件内容:vi hello.py
def world():
"""
This is my first function.
CLI Example::
salt '*' hello.world
"""
return 'hello,world!' ##return这是定义在def函数里面,才生效
编辑成功后需要推送到所有的minion上:
(1)将模块推送到所有的minion上:salt '’ saltutil.sync_modules
(2)测试,格式salt ‘’ py文件名.函数名