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

上一节:饮冰三年-人工智能-Python-58-Apollo之05Python实例

一、准备工作

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

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以上版本。

 

考虑后期维护追踪,这里将使用的软件包统一存储在百度云盘中,仅供参考
地址:https://pan.baidu.com/s/1gZf80TLHAQHDMIaX-Ht_AA 提取码为:6666

 

文件安装目录

文件名

作用

地址

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=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_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服务端共需要两个数据库:ApolloPortalDBApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。

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

 

 

     在数据库中运行以上脚本

    2.3.1.1  验证:

             select `Id`, `Key`, `Value`, `Commentfrom `ApolloPortalDB`.`ServerConfiglimit 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

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

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

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

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

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

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环境配置与代码升级

下一节:饮冰三年-人工智能-Python-65-Apollo之07 Docker环境部署

posted @ 2020-11-28 10:30  逍遥小天狼  阅读(212)  评论(0编辑  收藏  举报