项目配置 Linux Python

项目配置 Linux Python

标签(空格分隔): Linux Python env IP 项目 db2


已配置项目

lqr
maftp
lirp

配置 基础文件

IP统一配置

TODO:测试可用,无异常,代码不够简洁
TP配置流程: root --> 用户 --> 前端/后端
- 1.配置全局root变量base_ip

# 设置全局变量 /etc/profile
vim /etc/profile   末尾添加需要设为全局的变量例如:
export base_ip=172.10.21.104
  • 2.配置用户全局变量
    os.environ[“base_ip”] # 读取变量
# root用户或者其他用户(其他用户需要重新切用户)获取变量
import os
print os.environ["base_ip"]  # 读取变量
# 也可以在用户.base_profile 中直接base_ip=xxx.xxx.xxx.xxx 设用户全局变量
  • 3.前端IP自动配置
# 前台IP在 /assets/scripts/application.js中
# 设定IP如下
//base_url = 'http://172.10.21.118:3061';
//rpt_base_url = 'http://172.10.21.118:3062';
base_url = 'http://'+ window.location.hostname +':3061';
rpt_base_url = 'http://'+ window.location.hostname +':3062';
# window.location 获取主机url的参数
  • 4.后端serverIP自动配置
# database/sqlal.py
import os
URL ='ibm_db_sa://lqr:qwe123@' + os.environ["base_ip"] + ':50000/dwdb'
# 同js,但是不能使用window.location,直接赋值
    1. SqsIP配置
# 由于URL在config_report.json文件中,不知道怎么传递全局变量到json文件中。所以在调用这个json文件的config.py中处理
# 流程: config.py (ip_replace.py --> 替换ip_config_report.json中指定字符串为base_ip变量 -->得到config_report.json --> config.py处理这个json) 
# ip_config_report.json文件和config_report.json一样,仅仅只是IP部分变成了被替代字符串,在每次运行时,替换字符串为IP变量,输出文件到config_report.json。即可

file:ip_replace.py

#!/usr/bin/python
# -*- coding=UTF-8 -*-
import sys
import os
len_argv=len(sys.argv)
#print '传参数量',len_argv-1

if   len_argv <  4:
    print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'

elif len_argv >  5:
    print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'

else:
    if not os.path.isfile(sys.argv[1]):
        print '文件不存在'
        sys.exit()
    s_file  = file(sys.argv[1],'r+')
    old_str = sys.argv[2]
    new_str = sys.argv[3]
    d_file  = file(sys.argv[1]+'.tmp','w')
    for line in s_file.readlines():
        d_file.writelines(line.replace(old_str,new_str))
    s_file.close()
    d_file.close()

    if len_argv == 4:
        os.rename(sys.argv[1]+'.tmp',sys.argv[1])
    else:
        os.rename(sys.argv[1]+'.tmp',sys.argv[4])
# http://www.cnblogs.com/www1707/p/5858212.html

config.py中部分代码

import os
base_ip=os.environ["base_ip"]
os.system("""python ip_replace.py {0} {1} {2} {3} """.format('ip_config_report.json','$base_ip',base_ip,'config_report.json'))

ip_config_report.json中部分代码

    "DB_URI":"ibm_db_sa://lqr:qwe123@$base_ip:50000/dwdb",
    "THS_URI":"ibm_db_sa://xc_find:qwe123@$base_ip:50000/dwdb",
    "DWDB_URI":"ibm_db_sa://xcdw:qwe123@$base_ip:50000/dwdb",

db2配置

db2开机自启

root用户下 .base_profile中
su - db2inst1 -lc db2start # db2 autostart
# 不能使用su - db2inst1 然后db2start,因为切换用户后,之后的命令都无法执行需要 -lc指定

在启动文件中加入命令 su -u db2inst1 -c db2start

实例用户下,执行db2fm -f on

ERROR

from openpyxl.cell import column_index_from_string
ImportError: cannot import name column_index_from_string 
解决方法:openpyxl 安装不完全
用openpyxl-2.3.3.tar.gz安装,而不是联网或者whl安装
原文地址:https://www.cnblogs.com/superscfan/p/12257040.html