记录一下 apollo 部署过程,以及中间遇到的问题及解决方法,方便日后查看和复用。
to do
把需要依赖的服务先安装好。
官网下载jdk18地址:https://www.oracle.com/java/technologies/downloads/#license-lightbox
本人是安装到 /usr/local/ 下的,下载的文件为:jdk-18_linux-x64_bin.tar.gz
这里的jdk-18.0.2.1 是安装的版本号,记得替换,我这个只是例子。
使用vim /etc/profile
命令,修改环境变量,加入以下文本:
export JAVA_HOME=/usr/local/java/jdk-18.0.2.1
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
使环境变量生效,然后使用java -version查看即可。
直接一条命令:yum install -y java-1.8.0-openjdk.x86_64
安装完后使用 java -version 查看即可。
mysql官网下载地址:https://downloads.mysql.com/archives/community/
在官网选择对应的操作系统和版本,我这边选择的是linux通用版本的5.7.35:
下载了压缩文件后:
tar -xzvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
解压文件,得到mysql-5.7.35-linux-glibc2.12-x86_64。
执行mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
,把解压后的文件夹移动到 /usr/local 目录下,并重命名为 mysql 。
在/usr/local/mysql目录下创建data目录(一定要在这个目录中创建!!)。
创建 mysql 用户组以及用户groupadd mysql && useradd -g mysql mysql
。
修改 mysql 目录的权限chown -R mysql.mysql /usr/local/mysql && chmod -R 777 /usr/local/mysql
。
修改配置文件 vim /etc/my.cnf(没有就新建),修改配置:
[mysqld] bind-address=0.0.0.0 port=3306 user=mysql datadir=/usr/local/mysql/data basedir=/usr/local/mysql socket=/tmp/mysql.sock log-error=/usr/local/mysql/data/mysql.err pid-file=/usr/local/mysql/data/mysql.pid sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 max_connections=400 innodb_file_per_table=1 lower_case_table_names=1 character_set_server=utf8mb4
到bin目录下,cd /usr/local/mysql/bin
,执行./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize
,没有报错即执行成功。
到error.log文件下获取临时密码,cd /usr/local/mysql/data && cat mysql.err
。
启动mysql服务,cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
,如需添加为系统命令,执行ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
,然后执行service mysql start
。
如需开启免密登陆,在my.cnf文件中【mysqld】模块下面添加:skip-grant-tables 保存退出。
使用上面的临时密码进入mysql,修改root的临时密码为自己的密码set password for root@localhost = password('123456');
(这里123456改为自己想设置的密码即可)。
需要分别执行两个sql文件
sql文件下载路径位于github:https://github.com/apolloconfig/apollo/blob/master/scripts/sql/
注:如果已经创建过Apollo数据库,请注意备份数据。默认sql文件会清空Apollo相关的表。或者可以更改sql文件不清空表。
从GitHub Release页面下载预先打好的安装包,Github地址:https://github.com/apolloconfig/apollo/releases
注:如果对Apollo的代码没有定制需求,建议使用这种方式,可以省去本地打包的过程。(本次不涉及定制开发,不采用源码安装方式)
从GitHub Release页面下载最新版本的apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip和apollo-portal-x.x.x-github.zip即可。xxx为想要下载的版本号,比如想安装2.0.1则下载apollo-configservice-2.0.1-github.zip。
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以我们需要在配置中提供这些信息;打开apollo-portal-x.x.x-github.zip中config目录下的apollo-env.properties文件。
把local.meta和dev.meta都改成http://localhost:8080:
local.meta=http://localhost:8080
dev.meta=http://localhost:8080
fat.meta=http://fill-in-fat-meta-server:8080
uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
pro.meta=http://fill-in-pro-meta-server:8080
准备工作都完成后,需要将apollo各组件的服务分别启动,完成部署工作。【注意:服务的启动顺序为:configservice -> adminservice -> portal】,因为configService中自带eureka 和 meta服务的包,后面的服务需要依赖。
每个服务执行scripts/startup.sh即可启动服务。如需停止服务,执行scripts/shutdown.sh。
可以专门写两个脚本文件用来分别控制整个apollo服务的启动和停止,文件内容及目录结构如下(我是放在 /root/apollo 目录下,看个人放在哪里,脚本里就写在哪里):
startup.sh
#!/bin/bash
/root/apollo/apollo-configservice-2.0.1-github/scripts/startup.sh
/root/apollo/apollo-adminservice-2.0.1-github/scripts/startup.sh
/root/apollo/apollo-portal-2.0.1-github/scripts/startup.sh
shutdown.sh
#!/bin/bash
/root/apollo/apollo-configservice-2.0.1-github/scripts/shutdown.sh
/root/apollo/apollo-adminservice-2.0.1-github/scripts/shutdown.sh
/root/apollo/apollo-portal-2.0.1-github/scripts/shutdown.sh
注:主要是 startup.sh 和 shutdown.sh 要跟apollo各个服务处于同级目录下。
启动上一步创建的 startup.sh 按照顺序启动apollo服务即可。启动成功后,网页上打开 服务器地址:8070 ,打开 portal 可视化页面,默认账号密码: apollo/admin 。
启动上一步创建的 shutdown.sh 即可。
apollo 部署报错:pid - just quit unexpectedly, please check logs under /opt/logs/100003171 and /tmp
原因是数据库密码用了特殊字符,或者账号密码有误,修改后就可以正常安装了。
当端口为8080时,访问dev环境的configServer服务,报405错误,method not allow,初步断定是8080端口不开放,修改端口为28080。
dev.meta=http://localhost:28080
。重启后问题解决。