#!/usr/bin/env python
#coding:utf-8
import os
import json
import subprocess
##conf path
cfg_json="/usr/local/open_falcon/agent/config/cfg.json"
host_info={
"192.168.0.50":"252m-api-50",
"192.168.0.71":"250m-elkstatck01-71",
"192.1698.0.72":"250m-elkstatck01-72",
"192.1698.0.73":"250m-elkstatck01-73",
"192.1698.0.77":"250m-buffer-77",
"192.1698.0.91":"253m-svn-91",
"192.1698.0.92":"253m-jenkins-92",
"192.1698.0.95":"250m-ftp-95",
"192.1698.0.97":"251m-openvpn-97",
"192.1698.0.110":"251m-qa-110",
"192.1698.0.111":"251m-qa-111",
"192.1698.0.112":"251m-qa-112",
"192.1698.0.131":"251m-rd-131",
"192.1698.0.132":"251m-rd-132",
"192.1698.0.133":"251m-rd-133",
"192.1698.0.198":"nfs-198",
"192.1698.0.199":"nfs-199",
"192.1698.0.205":"190m-crm-205",
"192.1698.0.209":"196m-buffer-209",
"192.1698.0.210":"252m-api-210",
"192.1698.0.211":"250m-openvpn-211",
"192.1698.0.217":"196m-buffer-217",
"192.1698.0.229":"252m-qa-trac-229",
"192.1698.0.230":"252m-qa-230"
}
##get ip address
def get_ipaddr():
import socket
##get hostname
hostname = socket.getfqdn(socket.gethostname())
ip_addr=socket.gethostbyname(hostname)
return ip_addr
##change file
def change_file(*args,**kargs):
##打开文件,重新赋值
with open(cfg_json,"rb") as f:
old_dict=json.load(f)
old_dict["heartbeat"]["addr"] = "192.168.0.206:6030"
old_dict["transfer"]["addrs"] = "192.168.0.206:8433"
for hostname,ip in kargs.items():
old_dict["hostname"] = hostname
old_dict["ip"] = ip
##打开文件,并覆盖写入修改后内容
with open(cfg_json,"wb") as f:
json.dump(old_dict,f)
## start open falcon agent
def start_openfalcon_agent():
p=subprocess.Popen("sudo ./open-falcon start agent",shell=True,cwd="/usr/local/open_falcon/",stdout=subprocess.PIPE,stderr=subprocess.PIPE)
stdout,stderr=p.communicate()
return stdout,stderr
def main():
tmp_dict={}
ip_addr=get_ipaddr()
hostname=host_info[ip_addr]
tmp_dict[hostname]=ip_addr
change_file(**tmp_dict)
print start_openfalcon_agent()
if __name__=="__main__":
main()