一、前置準備工做html
部署Apollo的目標服務器要求:
(1)Linux 發行版本建議CentOS7 (因爲Apollo服務內置3個JVM進程 因此係統可用內存建議不低於2G)
(2)安裝Oracle 版本10g+(下面教程爲11g,爲Apollo部署Oracle服務,也能夠借用已經部署好的Oracle服務)
(3)安裝JDK 版本1.8+
(4)安裝unzip解壓工具 yum install zip unzip
(5)服務器IP狀況假設以下:git
Oracle部署所在服務器IP爲 Oracle_IP(下文均經過這個來指代),實例名稱爲xe,兩組用戶apolloconfig/apollo和apolloportal/apollo(下文會說明用戶建立過程)
Apollo部署所在服務器IP爲 Apollo_IP(下文均經過這個來指代)
特別注意:因爲業務系統須要訪問Apollo獲取配置,若是Apollo_IP和業務系統再也不一個局域網,那麼Apollo_IP必須是外網IP,同理,因爲Apollo須要訪問Oracle,若是Oracle_IP和Apollo_IP不屬於同一個局域網,Oracle_IP也必須是外網IP
二、從FTP服務器下載Apollo初始安裝文件apollo-oracle-simple.zipgithub
三、本地解壓初始安裝文件,修改Apollo相關鏈接配置信息spring
解壓後獲得的文件目錄爲:
apollo-config\
apollo-admin\
apollo-portal\
sql\
startall.sh
stopall.shsql
(1)修改apollo-config\config下的application-github.properties和apollo-config\scripts下的startup.sh數據庫
替換application-github.properties中的IP爲Oracle_IP、SID爲xe、並設置訪問用戶名和密碼爲apolloconfig/apollo(不要設置成其餘的了,後面會介紹Oracle對該用戶的建立和受權,注意配置的值先後不要有空格)瀏覽器
spring.datasource.url=jdbc:oracle:thin:@Oracle_IP:1521:SID
spring.datasource.username=apolloconfig
spring.datasource.password=apollo
替換startup.sh中的IP爲Apollo_IP,並將前面的註釋符號#去除服務器
export JAVA_OPTS="$JAVA_OPTS -Deureka.instance.ip-address=Apollo_IP"
(2)修改apollo-admin\config下的application-github.properties 配置同上(1)對該文件的操做markdown
spring.datasource.url=jdbc:oracle:thin:@Oracle_IP:1521:SID
spring.datasource.username=apolloconfig
spring.datasource.password=apollo
(3)修改apollo-portal\config下的application-github.properties和apollo-env.propertiessession
替換application-github.properties中的IP爲Oracle_IP、SID爲xe,並設置訪問用戶名和密碼爲apolloportal/apollo(不要設置成其餘的了,後面會介紹Oracle對該用戶的建立和受權)
spring.datasource.url=jdbc:oracle:thin:@Oracle_IP:1521:SID
spring.datasource.username=apolloportal
spring.datasource.password=apollo
替換apollo-env.properties中的IP爲Apollo_IP:
#local.meta=http://localhost:8080
#dev.meta=
#fat.meta=
#uat.meta=
#lpt.meta=${lpt_meta}
pro.meta=http://Apollo_IP:8847
四、鏈接Oracle數據庫(使用Navicat或者Oracle命令行),執行sql下的2個數據庫腳本導入Apollo初始數據(sql腳本獨立下載地址ftp://mdm.sunwayworld.com:6821/mdm/soft/apollo/apollo-oracle-sql.zip)
和MySQL不一樣,Oracle下不一樣的用戶對應不一樣的表空間(即數據庫),由於Apollo須要用到2個數據庫apolloconfigdb 和 apolloportaldb,因此事先須要在Oracle中建立2個對應的表空間和相對應的2個用戶並分別賦予相應的權限,具體的操做命令語句可參考:
(1)若使用Oracle命令行(sqlplus)(前提是直接在Oracle服務器所在機器操做,而且sql腳本上傳到該機器),SSH登陸Oracle所在機器,依次執行以下語句:
### 以system用戶登陸Oracle
sqlplus system/oracle
#查詢數據庫字符集(記下下面要用到 假設獲得的字符集爲AMERICAN_AMERICA.AL32UTF8 )
select userenv('language') from dual;
#退出回到終端
quit;
#設置環境變量(這麼作的目的是保證下面將要執行的sql腳本導入不出現中文亂碼狀況)
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
###從新登陸Oracle
sqlplus system/oracle
### 針對 apolloconfigdb 建立表空間、用戶、受權 (ps:datafile後面指定的表空間目錄能夠自定義)
create tablespace apolloconfigdb datafile '/u01/app/oracle/oradata/apolloconfigdb.dbf' size 100M;
#建立用戶名爲apolloconfig密碼爲apollo的用戶(不建議其餘名稱和密碼 由於sql腳本中存在引用設置)並設置表空間apolloconfigdb
create user apolloconfig identified by apollo default tablespace apolloconfigdb;
grant create session,create table,create view,create sequence,unlimited tablespace to apolloconfig;
### 針對 apolloportaldb 建立表空間、用戶、受權
create tablespace apolloportaldb datafile '/u01/app/oracle/oradata/apolloportaldb.dbf' size 100M;
#建立用戶名爲apolloportal密碼爲apollo的用戶(同上理 不建議爲其餘名稱和密碼)並設置表空間apolloportaldb
create user apolloportal identified by apollo default tablespace apolloportaldb;
grant create session,create table,create view,create sequence,unlimited tablespace to apolloportal;
### 導入sql腳本
#切換到apolloconfig用戶(必定要切換用戶)
conn apolloconfig/apollo
#關掉&輸入(由於腳本中存在&特殊符號 爲避免導入報錯)
set define off
#導入apolloconfigdb數據庫(@後面是apolloconfigdb.sql的全路徑)
@/u01/app/oracle/oradata/apolloconfigdb.sql
#切換到apolloportal用戶(必定要切換用戶)
conn apolloportal/apollo
#關掉&輸入(由於腳本中存在&特殊符號 爲避免導入報錯)
set define off
#導入apolloportaldb數據庫
@/u01/app/oracle/oradata/apolloportaldb.sql
五、使用SFTP工具將修改並從新壓縮後的apollo-oracle-simple.zip上傳到目標Linux服務器指定目錄如/home/apollo下,而後在該目錄下依次運行以下命令:
(1)unzip apollo-oracle-simple.zip
(2)chmod +x startall.sh
(3)./startall.sh
等待並觀察日誌輸出(大概5分鐘),若爲以下則啓動成功:
六、啓動成功瀏覽器中http://Apollo_IP:8070訪問Apollo配置中心 默認admin/admin登陸(該帳戶下已經包含全部項目運行須要的相關配置 登陸後進行相應的配置修改便可知足項目運行須要)
oracle版本的Apollo配置管理平臺目前還存在以下BUG:
不支持空值配置:即不支持 key= 這種只有key沒有value值配置
不支持註釋添加:即不支持 #這裏是配置的註釋說明 這樣的配置
七、執行 ./stopall.sh 能夠關閉Apollo服務