|
cat /etc/ansible/foo.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ConfigParser
import string, os, sys,json
import yaml
'''
vim books.txt
api 172.1.1.126 dev 8005 8080 api bj5
pf 172.1.1.127 prod 8006 8081 pf bj02
'''
'''
生成的foo.yml
ip:
api: ['172.1.1.126:8080']
'''
def ynameconf():
sfile = 'books.txt'
stagedict = {}
with open(sfile, 'rb') as f:
for i in f.readlines():
inventory = {}
ip = i.strip().split()[1]
yname = i.strip().split()[5] # 域名
stage = i.strip().split()[2]
if stage not in stagedict:
if not yname in inventory:
inventory[yname] = []
port = i.strip().split()[4]
ipport = ip + ":" + port
inventory[yname].append(ipport)
stagedict[stage] = inventory
print stagedict
elif stage in stagedict:
dict1 = stagedict[stage]
if not yname in inventory:
inventory[yname] = []
port = i.strip().split()[4]
ipport = ip + ":" + port
inventory[yname].append(ipport)
dict2 = inventory
newdict = dict(dict1.items()+dict2.items())
stagedict[stage] = newdict
f.close()
return stagedict
def ynameParser(stage,file):
# cf = ConfigParser.ConfigParser()
ynameyname=ynameconf()
# print ynameyname
# devstage = ynameyname[stage]
# jsObj = json.dumps(devstage)
# fileObject = open(file, 'w')
# fileObject.write(jsObj)
# fileObject.close()
print type(jsObj)
fileObject = open(file, 'w')
dataMap = {"ip": jsObj}
yaml.dump(dataMap, fileObject)
'''
for k,v in ynameyname.iteritems():
general=k
cf.add_section(general)
cf.set(general, "pro_dir", k)
for i in range(len(v)):
ips="ip"+str(i+1)
cf.set(general,ips, v)
# cf.set(k, ','.join(v))
cf.write(open("vhost.fact", "w"))
'''
if __name__ == '__main__':
list2=["foo.yml","foo2.yml"]
list1=["dev","prod"]
for (stage, file) in zip(list1, list2):
ynameParser(stage, file) |
|
|