[Python/SaltStack] 运用Python语言进行自定义Salt模块

今天简单了看了一下 salt自定义模块,发现自定义的模块可以省事很多,也很灵活,可以做很多事情

模块路径必须在master定义的路径下

file_roots:
   base:
     - /srv/salt/base
   prod:
     - /srv/salt/prod

我的路径在 /srv/salt/base 所以我定义文件的时候不需要在 当前路径的_modules下创建模块脚本

mkdir /srv/salt/base/_modules

cat /srv/salt/base/_modules/nginx.py
#!/usr/bin/env python
import os
import commands
import time

def version():
    version = commands.getoutput('nginx -v')
    if  'version' in version:
        return version
    return False

def service(cmd):
    parm = ['start','stop','status','restart','reload']
    if cmd not in parm:
        return 'command  not exists'
    command = commands.getoutput('/etc/init.d/nginx %s' % cmd)
    return command

这个脚本主要是查看nginx 版本 和 nginx的启动状态

编写完之后 大家需要用salt去同步一下

salt -N node saltutil.sync_modules

推送过去之后,重点来了,大家能看出来 我上面两个函数,的函数名称,这个执行的时候要用的到,以及模块名,在salt里面 执行模块是 脚本名+函数名称的方式 每一次返回必须用return

salt -N node nginx.version

192.168.2.67:
    nginx version: nginx/1.10.2
192.168.2.81:
    nginx version: nginx/1.10.2
192.168.15.73:
    nginx version: nginx/1.10.2

salt -N node nginx.service status

192.168.2.67:
    nginx (pid  17398) is running...
192.168.2.81:
    nginx (pid  28472) is running...
192.168.15.73:
    nginx (pid  16823) is running...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值