centos7安装Apollo配置中心

apollo官网链接:https://www.apolloconfig.com/#/zh/README

Apollo组件简介

  • Apollo Config Service 是一个分布式的配置中心,主要负责应用的配置信息存储、推送和管理。Config Service 支持多种存储方式,例如本地文件系统、Git 存储和数据库存储等,同时也提供基于轮询和通知两种方式的配置信息推送机制。配置中心的目的是让一组应用共享配置信息,并且应用可以动态读取存储在配置中心的配置信息。
  • Apollo Admin Service 是一个管理后台服务,主要提供给管理人员使用,用于管理所有的 Apollo 配置。Admin Service 主要包含两个功能:配置项的添加、修改、删除等管理功能、以及对环境、集群和命名空间等对象进行管理的功能。Admin Service 还提供了配置的发布和回滚功能,以及多种安全认证和授权方式。
  • Apollo Portal 是一个基于 Web 的管理界面,在客户端上展示配置项的值、历史,同时支持修改和发布。Portal 通过可视化的方式展示配置信息,让用户更加直观地了解系统的配置情况,同时提供了一些实用的功能,例如基于角色的访问控制、灰度发布等。Portal 主要提供可视化的管理界面,可以看作是 Admin Service 和 Config Service 的前端界面。

数据库安装

官方建议使用MySQL5.7以上,点击查看安装方法

查看链接:数据库安装

jdk安装

官网要求jdk版本为1.8+,本次安装采用jdk11,可在jdk官网自行寻找所需版本:https://www.oracle.com/java/technologies/java-se-glance.html

下载好所需的版本号,将压缩包传到服务器,本次下载的包为jdk-11.0.6_linux-x64_bin.tar.gz

解压目录

tar -xvf jdk-11.0.6_linux-x64_bin.tar.gz
mv jdk-11.0.6 /usr/local/jdk11.0.6

配置环境变量

# 编辑配置文件
vim /etc/profile
# 新增以下配置
#java
export JAVA_HOME=/usr/local/jdk11.0.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

生效操作

source /etc/profile

检查安装

# 检验安装,表示安装成功
java -version
# 输出以下结果
java version "11.0.6" 2020-01-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode)

数据库初始化

本次安装采用2.0.1版本

自行下载sql初始化脚本,该链接下有两个sql,分别是apolloportaldb.sql以及apolloconfigdb.sql,路径链接如下

https://github.com/apolloconfig/apollo/tree/v2.0.1/scripts/sql

连接数据库导入sql文件,也可以使用navicat等软件导入

# 登录数据库
mysql -uroot -p
# 登录成功后导入sql
source /your_local_path/scripts/sql/apolloportaldb.sql
source /your_local_path/scripts/sql/apolloconfigdb.sql

验证,此命令会输出支持的环境列表

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

导入完成后的数据库如下图所示

apollo数据库

安装Apollo

分别下载三个服务安装包adminservice configservice portal

# 创建各个服务目录
mkdir -vp /opt/apollo/{apollo-adminservice,apollo-configservie,apollo-portal} && cd /opt/apollo
# 下载服务安装包
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-adminservice-2.0.1-github.zip apollo-adminservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-configservice-2.0.1-github.zip apollo-configservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-portal-2.0.1-github.zip apollo-portal

分别解压安装包

# 安装解压命令
yum install unzip -y
# 开始解压
unzip apollo-adminservice-2.0.1-github.zip
unzip apollo-configservice-2.0.1-github.zip
unzip apollo-portal-2.0.1-github.zip

配置apollo-configservice

进入目录

cd apollo-adminservice/config

编辑配置文件

vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

配置apollo-adminservice

进入目录

cd apollo-adminservice/config

编辑配置文件

vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

配置apollo-portal

进入目录

cd apollo-portal/config

编辑配置文件

vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# 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信息

vim apollo-env.properties
# 假设DEV的apollo-configservice未绑定域名,地址是1.1.1.1:8080,FAT的apollo-configservice绑定了域名apollo.fat.xxx.com,UAT的apollo-configservice绑定了域名apollo.uat.xxx.com,PRO的apollo-configservice绑定了域名apollo.xxx.com,那么可以如下修改各环境meta service服务地址,格式为${env}.meta=http://${config-service-url:port},如果某个环境不需要,也可以直接删除对应的配置项
dev.meta=http://1.1.1.1:8080
fat.meta=http://apollo.fat.xxx.com
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com

此处环境dev、fat、uat、pro为apollo自带的环境,可自行修改成适用于本地的环境,例如dev、test、beta、ga等,修改方式很简单,只需要修改数据库信息,具体为ApolloPortalDB数据库下面的ServerConfig表,修改该字段为自定义环境,如下图所示

Apollo自定义环境

分别启动各个服务

启动方式很简单,分别执行各个文件夹下的scripts目录下的启动脚本,根据需要自定义jvm内存

export JAVA_OPTS="-server -Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:SurvivorRatio=22"
# 修改完成后执行脚本
./startup.sh

查看启动情况

# 查看对应端口启动情况
netstat -lntp
# 输出如下。三个端口8070,8080,8090均已启动
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      8940/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1138/master
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      7871/zabbix_agentd
tcp6       0      0 :::8080                 :::*                    LISTEN      28825/java
tcp6       0      0 :::22                   :::*                    LISTEN      8940/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1138/master
tcp6       0      0 :::8090                 :::*                    LISTEN      28637/java
tcp6       0      0 :::10050                :::*                    LISTEN      7871/zabbix_agentd
tcp6       0      0 :::8070                 :::*                    LISTEN      9141/java
tcp6       0      0 :::3306                 :::*                    LISTEN      17678/mysqld

apollo portal接入ldap

portal支持接入ldap来作为统一用户认证,接入方法如下

创建配置文件

touch apollo-portal/config/application-ldap.yml

编辑配置文件

vim apollo-portal/config/application-ldap.yml
# 具体配置如下
spring:
  ltest
    base: "ou=test,dc=test,dc=com"
    username: "cn=apollo,ou=test,dc=test,dc=com" # 配置管理员账号,用于搜索、匹配用户
    password: "test@123"
    searchFilter: "(cn={0})"  # 用户过滤器,登录的时候用这个过滤器来搜索用户
    urls:
    - "ldap://192.168.0.1:389"  # ldap服务器地址
 
ldap:
  mapping: # 配置 ldap 属性
    objectClass: "inetOrgPerson" # ldap 用户 objectClass 配置
    loginId: "cn" # ldap 用户惟一 id,用来作为登录的 id
    userDisplayName: "cn" # ldap 用户名,用来作为显示名
    email: "mail" # ldap 邮箱属性

修改启动脚本,修改scripts/startup.sh,指定spring.profiles.active为github,ldap

编辑启动脚本

vim  apollo-portal/scripts/startup.sh
# 配置如下
SERVICE_NAME=apollo-portal
## Adjust log dir if necessary
LOG_DIR=/opt/logs/100003173
## Adjust server port if necessary
SERVER_PORT=8070
# 修改此行 
export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,ldap"
# 完成后重新启动portal使用ldap登录即可
posted @ 2023-05-03 16:49  pollosD  阅读(453)  评论(0编辑  收藏  举报