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/defrag
Then, 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 start
Check 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.rpm
Install Nginx
yum install nginx
Modify 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/nginx
Run Nginx
service nginx start
6. 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