人工智能python营_饮冰三年-人工智能-Python-64-Apollo之06测试环境部署

一、准备工作

本次使用的是测试服务器具体信息如下:

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=20.04

DISTRIB_CODENAME=focal

DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

版本要求:

a: Java

Apollo服务端:1.8+

Apollo客户端:1.7+

b: MySQL

版本要求:5.6.5+

注意:Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。

文件安装目录

文件名

作用

地址

jdk1.8.0_256

用于存放jdk文件内容

/usr/lib/jvm

mysql

用于存放mysql文件内容

/usr/local/mysql

apollo

用于存放apollo文件内容

/usr/lib/apollo

二、部署步骤

2.1 安装Java:

1:每个场景下使用的jdk版本不同,可以按照自己所需的版本要求,下载安装包。

2:把jdk包解压到安装的路径文件夹下(/usr/lib/jvm)

3:配置环境变量之JDK

vim /etc/profile

添加如下内容:JAVA_HOME根据实际目录来

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=$JAVA_HOME/lib/export PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

4:执行命令重启配置文件

source /etc/profile

5:检验Java是否安装成功

java -version

注意:如果启动服务的时候提示

Unable to find Java

sudo ln -s /usr/lib/jvm/jdk1.8.0_261/bin/java /sbin/java

2.2 安装mysql:

1:每个场景下使用的版本不同,可以按照自己所需的版本要求,下载安装包。

2:把安装包解压到安装的路径文件夹下(/usr/lib/mysql)

3:在/usr/local/mysql目录下创建data目录

sudo mkdir /usr/lib/mysql/data

4:添加mysql用户,并更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

sudo useradd mysql

sudo chown -R mysql:mysql /usr/lib/mysql

sudo chmod -R 755 /usr/lib/mysql

5:编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

cd /usr/lib/mysql/bin

sudo ./mysqld --initialize --user=mysql --datadir=/usr/lib/mysql/data --basedir=/usr/lib/mysql

注意:如果安装过程中出现:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方法:sudo apt-get install libaio1

6:编辑配置文件my.cnf,添加配置如下

cd /etc/mysql

[mysqld]

datadir=/usr/lib/mysql/data

port=3306sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

symbolic-links=0max_connections=400innodb_file_per_table=1lower_case_table_names=1

vim 编辑内容

7:添加软连接,并重启mysql服务

sudo ln -s /usr/lib/mysql/support-files/mysql.server /etc/init.d/mysql

sudo ln -s /usr/lib/mysql/bin/mysql /usr/bin/mysql

sudo service mysql restart

8:登录mysql,修改密码

mysql -u root -p

Enter password:注意这里的密码就是步骤5中的临时密码

mysql>set password for root@localhost = password('yourpass');

9:开发远程连接

连上数据库

use mysql

设置用户

update user set host='%' where user='root';

刷新

flush privileges;

连接上MySQL后,可以通过如下命令检查:

SHOW VARIABLES WHERE Variable_name = 'version';

2.3 安装Apollo:

分布式部署需要事先确定部署的环境以及部署方式。

DEV 开发环境

UAT 测试环境

PRO 生产环境

Portal部署在生产环境的机房,通过它来直接管理DEV、UAT、PRO等环境的配置

Meta Server、Config Service和Admin Service在每个环境都单独部署,使用独立的数据库

2.3.1 创建数据库:

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。

需要注意的是ApolloPortalDB只需要在生产环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套,如dev、uat和pro分别部署3套ApolloConfigDB。(初始化脚本在 一、准备工作 提供的资料中)

在数据库中运行以上脚本

2.3.1.1 验证:

select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;

select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDBDEV`.`ServerConfig` limit 1;

2.3.1.2 调整配置:

update `ApolloPortalDB`.`ServerConfig` set value ='dev,uat,pro' where `Key` = 'apollo.portal.envs'

2.3.2 部署Apollo服务端:

1:文件安装

创建文件夹,用于安装apollo

sudo mkdir /usr/lib/apollo

sudo mkdir /usr/lib/apollo/adminservice

sudo mkdir /usr/lib/apollo/configservice

sudo mkdir /usr/lib/apollo/portal

将准备资料中的文件分别放置到相应的文件夹下,并进行解压(unzip 命令解压)

2:文件配置

sudo vim /usr/lib/apollo/configservice/config/application-github.properties

sudo vim /usr/lib/apollo/adminservice/config/application-github.properties

sudo vim /usr/lib/apollo/portal/config/application-github.properties

spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDBPRO?characterEncoding=utf8&useSSL=false&serverTimezone=UTC

spring.datasource.username =root

spring.datasource.password= 123

application-github.properties

sudo vim /usr/lib/apollo/portal/config/apollo-env.properties

local.meta=http://localhost:8080

dev.meta=http://localhost:8080

fat.meta=http://localhost:8080

uat.meta=http://localhost:8080

lpt.meta=${lpt_meta}

pro.meta=http://localhost:8080

apollo-env.properties

3:启动

sudo /usr/lib/apollo/portal/scripts/startup.sh

sudo /usr/lib/apollo/adminservice/scripts/startup.sh

sudo /usr/lib/apollo/configservice/scripts/startup.sh

4:验证

2.3.3 部署UAT:

我们将uat环境部署到另一台的服务器上。

2.3.3.1.修改vim /usr/lib/apollo/portal/config/apollo-env.properties

local.meta=http://localhost:8080

dev.meta=http://localhost:8080

fat.meta=http://localhost:8080

uat.meta=http://XX.X.X.XXX:8080

lpt.meta=${lpt_meta}

pro.meta=http://localhost:8080

apollo-env.properties

登录到47的服务器

2.3.3.2 安装Java

2.3.3.3 部署Apollo

sudo mkdir /usr/lib/apollo

sudo mkdir /usr/lib/apollo/adminservice

sudo mkdir /usr/lib/apollo/configservice

同样的调整配置

spring.datasource.url = jdbc:mysql://XX.X.X.X:3306/ApolloConfigDBUAT?characterEncoding=utf8&useSSL=false&serverTimezone=UTC

spring.datasource.username =root

spring.datasource.password= 123

application-github.properties

注意:调用bash的时候出现curl command not found

解决办法:

apt-get install curl

2.3.3 部署其他环境:

按照同样的步骤我们部署其他的环境......至此,Apollo环境部署基本成功

三、配置项整理

主要思想:把程序启动时用到的环境变量,从Apollo中获取。整理相应的配置项主要来源(Docker中原有的环境变量:主+config.py 中用到的配置:辅)

注意:保密,

四、Apollo应用配置

将步骤三中的内容相应的配置到Apollo相应的各个项目中

4.1 调整部门信息

4.2 创建一个项目(cy_common)用于存放公共属性

4.2.1 创建项目,设置AppID和应用名称

4.2.2 添加命名空间(common_config),设置公共属性值,用于存储各个系统中公共的配置项,如:OA_HOST、ERP_HOST、MES_HOST

4.2.3 配置属性值,并发布

4.2.4 同样的步骤,添加配置命名空间(common_rabbit_config)

4.3 同样的步骤创建一个项目(ERP)用于存放ERP相关信息

4.3.1 创建项目,设置AppID和应用名称,与4.2.1 类似,不再赘述

4.3.2 添加命名空间,关联公共命名空间(common_config和common_rabbit_config),并发布

4.3.3 添加erp系统专属命名空间(erp_config)配置信息并发布

4.4 同样的步骤创建一个项目(OA、MES)用于存放相关信息

4.5 效果展示与测试

4.5.1 整体结果

4.5.2 以ERP系统

整体分为三个环境(DEV、UAT、PRO);每个环境又包括多个命名空间(common_config、common_rabbit_config、erp_config....)

每个环境(DEV、UAT、PRO);对应命名空间相互独立,可单独发布,互不影响(common_config、common_rabbit_config、erp_config)

五、Docker环境配置与代码升级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值