yangcctv 发表于 2018-1-3 16:33:43

扩展saltstack组件

# pwd  
/srv/salt/base/_modules
  
# cat puppet.py
  
#!/usr/bin/env python
  
# _*_ coding:utf-8 _*_
  
from __future__ import absolute_import
  
from salt.ext.six.moves.urllib.request import urlopen as _urlopen
  
import salt.utils
  
import salt.utils.decorators as decorators
  

  
@decorators.memoize
  
def __detect_os():
  
   return salt.utils.which('puppet')
  

  
def __virtual__():
  
   if __detect_os():
  
         return True
  
   return False
  

  
def setmaster(master='linux-node1.oldboyedu.com',config_file='/etc/puppet/puppet.conf'):
  
   check='grep server {0}'.format(config_file)
  
   outcheck = __salt__['cmd.run'](check)
  
   if outcheck:
  
         cmdline = 'sed -i "s/server = .*/server = {0}/g" {1}'.format(master,config_file)
  
         output = __salt__['cmd.run'](cmdline)
  
         return 'has change server to {0}'.format(master)
  
   else:
  
         cmdline = 'echo "   server = {0}" >> {1}'.format(master,config_file)
  
         output = __salt__['cmd.run'](cmdline)
  
         return 'has change server to {0} need restart the service'.format(master)
  

  
def version():
  
   cmd = 'rpm -qf {0}'.format(__detect_os())
  
   output = __salt__['cmd.run'](cmd).splitlines()
  
   ret = output.split(': ')
  
   return ret[-1]
  

  
def service(single=None):
  
   status = ('start','stop','status','restart','reload','force-reload','condrestart','once','genconfig')
  
   if single not in status:
  
         return 'puppet can not suppert this single'
  
   cmdline = 'systemctl {0} puppet.service'.format(single)
  
   output = __salt__['cmd.run'](cmdline)
  
   return output
  

  
def master(config_file='/etc/puppet/puppet.conf'):
  
   cmdline= 'grep server' + '{0}'.format(config_file)
  
   output=__salt__['cmd.run'](cmdline,python_shell=False)
  
   if output:
  
         return output
  
   else:
  
         return 'puppet server not setting'
页: [1]
查看完整版本: 扩展saltstack组件