长枪不倒 发表于 2018-7-30 11:27:32

自动化运维工具Ansible之动态inventory文件

# cat /etc/ansible/getHosts.py  
    #!/usr/bin/python
  
    import argparse
  
    try:
  
      import json
  
    except ImportError:
  
      import simplejson as json
  

  
    '''这里是模拟数据,工作上一般该数据都是从数据库或者缓存中读取的'''
  
    mockData = {
  
      "webservers":{
  
            "hosts": ["192.168.1.65"],
  
            "vars":{
  
                "http_port":8888,
  
                "max_clients":789
  
            }
  
      },
  

  
      "databases":{
  
            "hosts":["192.168.1.65"],
  
            "vars":{
  
                "action":"Restart MySQL server."
  
            }
  
      }
  
    }
  
    '''模拟数据结束'''
  
    def getList():
  
      '''get list hosts group'''
  
      print json.dumps(mockData)
  

  

  
    def getVars(host):
  
      '''Get variables about a specific host'''
  
      print json.dumps(mockData["vars"])
  

  

  
    if __name__ == "__main__":
  

  
      parser = argparse.ArgumentParser()
  
      parser.add_argument('--list',action='store_true',dest='list',help='get all hosts')
  
      parser.add_argument('--host',action='store',dest='host',help='get all hosts')
  
      args = parser.parse_args()
  

  
      if args.list:
  
            getList()
  

  
      if args.host:
  
            getVars(args.host)
页: [1]
查看完整版本: 自动化运维工具Ansible之动态inventory文件