1. 摘要
本文介紹在Ubuntu操作系統(tǒng)下舶胀,采用docker容器安裝TYK的實(shí)踐操作盅安,供入門學(xué)習(xí)昵宇。
2.安裝說明
Tyk是一個開源的輕量級API網(wǎng)關(guān)程序造虏,點(diǎn)擊跳轉(zhuǎn)到Tyk官網(wǎng)御吞。輝哥為什么選擇TYK網(wǎng)關(guān),參考文章《【實(shí)踐】5種微服務(wù)開源API網(wǎng)關(guān)對比漓藕,為什么我選擇了TRY》。
2.1 安裝Docker
Docker 是*一個開源的應(yīng)用容器引擎挟裂,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中享钞,然后發(fā)布到任何流行的 Linux或Windows 機(jī)器上,也可以實(shí)現(xiàn)虛擬化诀蓉。
從Ubuntu的倉庫直接下載安裝栗竖。
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
檢查是否安裝成功:
ubuntu@ip-172-31-12-147:/home/arta$ docker -v
Docker version 18.09.5, build e8ff056
2.2 下載TYK及依賴鏡像
2.2.1 拉取TYK的Docker鏡像
# docker pull tykio/tyk-gateway
# docker pull tykio/tyk-dashboard
# docker pull tykio/tyk-pump-docker-pub
2.2.2 拉取TYK運(yùn)行需要依賴的Docker鏡像
# docker pull redis
# docker pull mongo
2.2.3 查看DOCKER 鏡像列表
root@ip-172-31-11-188:/home/ubuntu/tyk/tyk-dashboard-docker# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest 9c02a5a12c52 4 days ago 413MB
tykio/tyk-dashboard latest d603a4f174e7 10 days ago 288MB
tykio/tyk-gateway <none> 9a9352edc14b 10 days ago 331MB
redis latest 598a6f110d01 2 weeks ago 118MB
tykio/tyk-pump-docker-pub latest 38519d9e8235 7 weeks ago 137MB
tykio/tyk-gateway latest 620379bd9231 3 months ago 359MB
2.3 啟動運(yùn)行TYK
2.3.1 啟動redis和mongo
# docker run -d --name tyk_mongo mongo
# docker run -d --name tyk_redis redis
2.3.2 啟動TYK容器
# docker run -d -p 3080:3080 --link tyk_redis:redis --name tyk_gateway tykio/tyk-gateway
# docker run -d --name tyk_dashboard -p 3000:3000 --link tyk_redis:redis --link tyk_mongo:mongo --link tyk_gateway:tyk_gateway tykio/tyk-dashboard
# docker run -d --name tyk_pump --link tyk_redis:redis --link tyk_mongo:mongo tykio/tyk-pump-docker-pub
此時你可以訪問Ubuntu的ip:3000 查看dashboard了。例如輝哥環(huán)境如下:
2.4 獲取激活碼
登錄TYK官網(wǎng)(https://tyk.io/api-gateway/on-premise/)渠啤,點(diǎn)擊“GET A DEV LICENCE”狐肢,可以獲得3個月的界面版本的試用權(quán)限。
期限選擇3個月(1年的沒有了)沥曹,填寫相關(guān)信息后份名,注冊郵箱就可以收到注冊碼了碟联。https://tyk.io/product/tyk-on-premises-free-edition/
注冊郵箱收到的注冊碼:
把注冊碼復(fù)制出來填寫到網(wǎng)址(例如http://52.2.107.183:3000/)的激活碼區(qū),然后點(diǎn)擊“ACTIVE KEY”僵腺,即可獲得TYK界面的使用權(quán)限鲤孵。
2.5 創(chuàng)建基礎(chǔ)配置,設(shè)置用戶信息
基礎(chǔ)配置文件在github上,地址如下:https://github.com/TykTechnologies/tyk-dashboard-docker
在ubuntu中自己找一個位置(隨意)辰如,執(zhí)行如下命令(前提需要ubuntu已經(jīng)安裝git普监,如果沒有安裝請自行g(shù)oogle)
git clone https://github.com/TykTechnologies/tyk-dashboard-docker
下載完成后,進(jìn)入到對應(yīng)的文件夾
cd tyk-dashboard-docker/
進(jìn)入文件夾后琉兜,找到 bootstrap.sh 文件凯正,如果Ubuntu安裝的是python3以下的版本,則直接運(yùn)行如下命令即可豌蟋。
# ./bootstrap.sh 52.82.107.183
Creating Organisation
ORGID: 5d3d53cf0a73f30001bc0071
Adding new user
USER AUTH: df769ab92f364737762979d96d6f9049
NEW ID: 5d3d53cff45b6e41f722f796
Setting password
DONE
====
Login at http://52.82.107.183:3000/
User: uwdjif6tkl@example.com
Pass: test123
瀏覽器上輸入對應(yīng)的地址漆际,使用產(chǎn)生的用戶名和密碼就可以登錄TYK界面系統(tǒng)了。
如果是以上版本包括python3,則需要做一些更改夺饲,如果自己不確定奸汇,可以先執(zhí)行以上命令,執(zhí)行過程中有錯誤信息往声,則做以下幾步:
1擂找、清空bootstrap.sh文件內(nèi)容
bootstrap.sh
2、將以下內(nèi)容保存到文件中
#!/bin/bash
# Usage ./bootstrap.sh DASHBOARD_HOSTNAME
LOCALIP=$1
RANDOM_USER=$(env LC_CTYPE=C tr -dc "a-z0-9" < /dev/urandom | head -c 10)
PASS="test123"
echo "Creating Organisation"
ORGDATA=$(curl --silent --header "admin-auth: 12345" --header "Content-Type:application/json" --data '{"owner_name": "Default Org.","owner_slug": "default", "cname_enabled": true, "cname": ""}' http://$LOCALIP:3000/admin/organisations 2>&1)
#echo $ORGDATA
ORGID=$(echo $ORGDATA | python3 -c 'import json,sys;obj=json.load(sys.stdin);print(obj["Meta"])')
echo "ORGID: $ORGID"
echo "Adding new user"
USER_DATA=$(curl --silent --header "admin-auth: 12345" --header "Content-Type:application/json" --data '{"first_name": "John","last_name": "Smith","email_address": "'$RANDOM_USER'@default.com","password":"'$PASS'", "active": true,"org_id": "'$ORGID'"}' http://$LOCALIP:3000/admin/users 2>&1)
#echo $USER_DATA
USER_CODE=$(echo $USER_DATA | python3 -c 'import json,sys;obj=json.load(sys.stdin);print(obj["Message"])')
echo "USER AUTH: $USER_CODE"
USER_LIST=$(curl --silent --header "authorization: $USER_CODE" http://$LOCALIP:3000/api/users 2>&1)
#echo $USER_LIST
USER_ID=$(echo $USER_LIST | python3 -c 'import json,sys;obj=json.load(sys.stdin);print(obj["users"][0]["id"])')
echo "NEW ID: $USER_ID"
echo "Setting password"
OK=$(curl --silent --header "authorization: $USER_CODE" --header "Content-Type:application/json" http://$LOCALIP:3000/api/users/$USER_ID/actions/reset --data '{"new_password":"'$PASS'"}')
echo ""
內(nèi)容替換完成后執(zhí)行:
./bootstrap.sh Ubuntu主機(jī)ip
如果執(zhí)行報錯浩销,八成是文件中python相關(guān)問題贯涎,可以自行排查解決,執(zhí)行后輸出信息如下:
root@ubuntu:~/tyk-dashboard-docker# ./bootstrap.sh 192.168.174.131
Creating Organisation
ORGID: 5c17635489d49c00014fffb3
Adding new user
USER AUTH: 2700cd3dd5c94aa74e66a61ccb0d8195
NEW ID: 5c1763544b084caaaa850abe
Setting password
DONE
====
Login at http://192.168.174.131:3000/
User: j4aawfows5@default.com
Pass: test123
信息的結(jié)尾處包含了訪問地址以及用戶名和密碼慢洋,就可以登錄了塘雳。
如何使用TKY 界面系統(tǒng),另外文章再做介紹普筹。