大家前期可能在部署时使用测试域名或者使用的是IP地址,为了方便大家进行域名替换,写了如下脚本.使用过程中注意,如有使用访问IP与内部IP一样的,该脚本可能导致异常
#!/bin/bash
#
####################################
#
# author:Daoge
# description: 为opsany替换域名
# version: v1.1
#
#####################################
#设置旧域名
OLD_DOMAIN_NAME=""
#设置新域名
NEW_DOMAIN_NAME=""
if [ -z "${OLD_DOMAIN_NAME}" -o -z "${NEW_DOMAIN_NAME}" ];then
echo "Please enter domain name"
exit 1
fi
SHELL_NAME=$(basename $0)
SHELL_LOG=${SHELL_NAME}.log
shell_log(){
info="$1"
CTIME=$(date '+%F %T')
echo "============[${CTIME}] ${info}================="
echo "[${CTIME}] ${info}" >> ${SHELL_LOG}
}
# 引入安装环境变量
cd /opt/opsany-paas/install
grep '^[A-Z]' install.config > install.env
source ./install.env && rm -f install.env
shell_log "Replace PaaS config files"
# 替换默认安装文件中的配置
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/cmdb/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/control/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/rbac/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/task/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/workbench/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/monitor/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/cmp/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/devops/toolkit/configs.py
sed -i "s/${OLD_DOMAIN_NAME}/${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/esb/apis/bastion/toolkit/configs.py
# 替换环境配置文件
sed -i -e "s|\(PAAS_DOMAIN = '\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" \
-e "s|\(BK_COOKIE_DOMAIN = '\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" \
${INSTALL_PATH}/conf/settings_production.py.paas
sed -i "s|\(BK_COOKIE_DOMAIN = '\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/conf/settings_production.py.login
# 替换nginx配置文件
echo "替换nginx域名,替换后如无法访问,请自行检查nginx配置"
sed -i "s/server_name.*${OLD_DOMAIN_NAME}/server_name ${NEW_DOMAIN_NAME}/g" ${INSTALL_PATH}/conf/nginx-conf.d/nginx_paas.conf
shell_log "Replace SaaS config files"
# 替换已经安装的saas服务域名(可采用重新部署)
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/rbac/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/workbench/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/cmdb/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/control/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/job/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/cmp/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/devops/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/monitor/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/bastion/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/pipeline/conf/supervisord.conf
sed -i "s|\(BK_PAAS_HOST=\"https://\)${OLD_DOMAIN_NAME}|\1${NEW_DOMAIN_NAME}|g" ${INSTALL_PATH}/saas/apps/projects/deploy/conf/supervisord.conf
#重启Paas
docker ps -q | xargs docker restart
#重启Saas
cd /opt/opsany-paas/install
./saas-restart.sh