|
10鱼币
本帖最后由 xlxl 于 2020-1-9 15:08 编辑
奉送10个鱼币,期望高人解答问题,感谢。
问题补充说明:
要把用户input输入的5个IP地址作为value传递给模板配置文件中的12个变量,然后基于变量替换后的模板产生新的5个配置文件;
新的配置文件要求:
1. 文件中的一个local_addr的变量是唯一的,用以标识该配置文件;
2.文件中的其他11个变量复用我输入的另外3个IP地址,用来搭建swarm,mysql,redis的集群;
目前已经完成的部分:
1.基于不同场景下的配置模式,要求用户输入不同组合的IP地址;
2.这些IP地址通过人工取值后,加过处理后赋给对应的列表保存下来;
3. 如何通过循环来实现变量赋值,以及同时产生新的对应文件,也就是代码块中的 ??? 部分的内容;
- #!/usr/bin/python
- #coding=utf-8
- import os,sys
- print("""Yunshu install mode description:
- [1]-Single Mode
- [2]-Cluster Mode""")
- install_mode = int(raw_input("Please input mode ID 1|2 here:>"))
- mode = True
- while mode:
- if install_mode != 1 and install_mode != 2:
- install_mode = int(raw_input("Input Error,Please input again:>"))
- else:
- mode = False
- if install_mode == 1:
- print("Currently Single install,Please give me the IP:")
- ip_addr = raw_input("waiting input IP...>")
- if not os.path.exists("config_single_demo.txt"):
- print("config_single_demo.txt doesn't exist.")
- exit(-1)
- demo = open("config_single_demo.txt").readlines()
- used = open("config.txt","w")
- for f in demo:
- used.write(f.replace("local_addr",ip_addr).replace("{mysql_ip}",ip_addr).replace("{redis_ip}",ip_addr))
- used.close()
- demo.close()
- if install_mode == 2:
- yunshu_server = []
- cluster_server = []
- print("Currently Cluster install,Please give multiple IPs one by one.")
- haproxy = int(raw_input("Does haproxy need or not? [0]-NO,[1]-Yes, Input 0|1 here...>"))
- if haproxy == 0:
- Temp = raw_input("Please input IP of yunshu_server,use ; to seperate them if multple hosts exist:")
- yunshu_server.append(Temp.split(";"))
- Temp = raw_input("Please input IP of cluster server,use ; to seperate these three hosts:")
- cluster_server.append(Temp.split(";"))
- print yunshu_server,cluster_server
- if haproxy == 1:
- proxy_host = []
- proxy_host = raw_input("Please input IP of haproxy server:")
- proxy_port = []
- Temp = raw_input("Please input Port used for Haproxy,use ; to seperate if exist multple ports:")
- proxy_port.append(Temp.split(";"))
- Temp = raw_input("Please input IP of yunshu_server,use ; to seperate them if multple hosts exist:")
- yunshu_server.append(Temp.split(";"))
- Temp = raw_input("Please input IP of cluster server,use ; to seperate these three hosts:")
- cluster_server.append(Temp.split(";"))
- print proxy_host,proxy_port,yunshu_server,cluster_server
- yunshu_server_1 = yunshu_server[0][1]
- yunshu_server_2 = yunshu_server[0][2]
- swarm_manager_1,mysql_master,redis_master_1,redis_slave_3 = cluster_server[0][1]
- swarm_node_1,mysql_slave,redis_master_2,redis_slave_1 = cluster_server[0][2]
- swarm_node_2,redis_master_3,redis_slave_2 = cluster_server[0][3]
- if not os.path.exists("config_cluster_demo.txt"):
- print("config_cluster_demo.txt doesn't exist.")
- exit(-1)
- demo = open("config_cluster_demo.txt").readlines()
- for i in range(0,5):
- used = open("config_???.txt","w")
- for f in demo:
- used.write("????")
- used.close()
- demo.close()
复制代码 |
|