Gravitee API Gateway Installation Guide
Environment
CentOS 7
4 CPU
8G Memory
172.22.147.111
Hostname : gravitee.io.local
Package resource : https://drive.google.com/drive/folders/1DVlwYm-14C0DP_YJBR7tOMRRhgwcDOOe?usp=sharing
0. Preparation
Download JDK1.8, jdk-8u221-linux-x64.tar.gz from https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, then:
mkdir /usr/local/java/
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/java/
Environment variable settings :
vi /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
ln -s /usr/local/java/jdk1.8.0_221/bin/java /usr/bin/java
check if JDK have already installed successful:
java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
If yes, modify : /etc/security/limits.conf
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
Modify port from 4096 to 32768 in /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 32768
root soft nproc unlimited
disable warning message from MongoDB :
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defragThen, we can start to install Repository、Gateway、Management API、Web UI
1. Elasticsearch
In order to install Repository, we need to install Elasticsearch and MongoDB.
Add yum resource:
vi /etc/yum.repos.d /elasticsearch.repo
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Elasticsearch installation:
yum install -y elasticsearch
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.bind_host: 0.0.0.0
network.publish_host: 172.22.147.111 #The IP of your deployment server
http.port: 9200
Start Elasticsearch
service elasticsearch startCheck the elasticsearch to make sure if there is no error message.
tail -f /var/log/elasticsearch/elasticsearch.log
2. MongoDB
Add yum resource:
vi /etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB 3.4 Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1
MongoDB installation:
yum install -y mongodb-org
Run MongoDB
service mongod start
Check MongoDB to make sure if there is no error message
mongo
MongoDB shell version v3.4.22
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.22
Server has startup warnings:
2019-08-08T16:54:00.591+0800 I CONTROL [initandlisten]
2019-08-08T16:54:00.591+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-08-08T16:54:00.591+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2019-08-08T16:54:00.591+0800 I CONTROL [initandlisten]
3. Gateway
Download gravitee.tar from https://gravitee.io/downloads/apim/index.html
gravitee.tar have already setup all the Config file,graviteeio-full-1.28.0.zip(https://gravitee.io/downloads/apim/index.html) is the original file, the configuration can follow these reference : ~PI Gateway(https://docs.gravitee.io/apim_installguide_gateway.html)`and Management API(https://docs.gravitee.io/apim_installguide_management_api_configuration.html), then setup as follows:
mv gravitee.tar /usr/local
cd /usr/local
tar xvf gravitee.tar
cd gravitee/graviteeio-gateway-1.28.0/
bin/gravitee > run.log &
Check log to make sure if there is no error message
tail -f run.log
Use curl to check if gateway is working.(localhost is your IP Address)
curl -X GET http://localhost:8082/
No context-path matches the request URI.
4. Management API
Run Management API
cd ../graviteeio-management-api-1.28.0/
bin/gravitee > run.log &
Check log to make sure if there is no error message
tail -f run.log
Use curl to check if API is working
curl -X GET http://localhost:8083/management/apis/
[]
5. UI
Install epel-release-latest-7
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmInstall Nginx
yum install nginxModify nginx.conf:
Update server_name to your hostname and make sure the location/ root path is the same to the gravitee UI
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name gravitee.io.local;
#root /usr/share/nginx/html;
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
location / {
root /usr/local/gravitee/graviteeio-management-ui-1.28.0;
index index.html;
}
#error_page 404 /404.html;
# location = /40x.html {
#}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Replace /etc/nginx/nginx.conf
cp nginx.conf /etc/nginxRun Nginx
service nginx start6. Verification
IF you don’t have DNS, you need to modify the /etc/hosts on the Gravitee server
Open browser to http://gravitee.io.local and you will get this:
Click Log In and the default user name/ password is admin/admin.Then,click “My Account”
Click Gateway to make sure the status is Started.
Then the management API link will be: http://gravitee.io.local/PATH