TYK Docker容器安装

TYK Docker容器安装

TYK简介

Tyk是一个开源的轻量级API网关程序,Tyk官网

TYK的特点

  • 请求配额和速率限制
  • 多种认证方式
  • 数据分析
  • 不停机发布REST API
  • 能够导入Apiary 或者 Swagger接口文档,并Mock
  • 性能监控
  • 报文转换
  • 等等

安装说明

tyk.io 官方支持ubuntu rethat docker mac等几种平台下搭建,本人选择了在ubuntu中使用docker 搭建

1.安装docker(如果已经安装,请直接跳转到第二步)

由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:

$ sudo apt-get remove docker docker-engine docker-ce docker.io

更新apt包索引:

$ sudo apt-get update

安装以下包以使apt可以通过HTTPS使用存储库(repository):

$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

添加Docker官方的GPG密钥:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

使用下面的命令来设置stable存储库:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再更新一下apt包索引:

$ sudo apt-get update

安装最新版本的Docker CE:

$ sudo apt-get install -y docker-ce

在生产系统上,可能会需要应该安装一个特定版本的Docker CE,而不是总是使用最新版本,这里主要不是docker,如果需要安装指定版本,请自行google

2.首先拉取TYK的Docker镜像

* docker pull tykio/tyk-gateway
* docker pull tykio/tyk-dashboard
* docker pull tykio/tyk-pump-docker-pub

3.拉取TYK运行需要依赖的Docker镜像

* docker pull redis
* docker pull mongo

3.pull镜像之后在执行命令 docker images 可以看到

TYK Docker容器安装_第1张图片
如果出现以上五个容器(不包括hello-world),则镜像拉取成功

4.先启动redis和mongo

* docker run -d --name tyk_mongo mongo
* docker run -d --name tyk_redis redis

5.紧接着启动TYK容器,请注意启动顺序

* docker run -d -p 8080:8080 --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了,是这样的,需要我们输入激活码
TYK Docker容器安装_第2张图片
可以看到,需要我们输入激活码,当然,不用紧张,激活码有针对于开发者的免费版,我们一起来看一下如何获取,首先打开官网 https://tyk.io/

打开官网后,找到顶部的导航栏,鼠标悬浮PRODUCTS,点击菜单中第二项 ON PREMISES,打开后滑动至页面底部,如下图所示
TYK Docker容器安装_第3张图片
可以看到我框起来的按钮,获取一个开发版本的激活码,点击后,进入如下页面
TYK Docker容器安装_第4张图片
点击我所框住的按钮,这一步告诉你,免费的激活码,只能用十二个月,到期了要再过来获取一次,并且只能有一个节点,不能多节点配置,点击按钮跳转至最后一步的页面,提交个人信息,最重要的是邮箱,其他信息都不重要,点击PLACE ORDER按钮提交表单后,你的邮箱会收到多条邮件,其中有一条就是你自己的激活码,将激活码复制后,到输入到激活页面完成激活,到此,激活已经完成了。

6.创建基础配置,设置用户信息

基础配置文件在github上,地址如下

https://github.com/TykTechnologies/tyk-dashboard-docker

在ubuntu中自己找一个位置(随意),执行如下命令(前提需要ubuntu已经安装git,如果没有安装请自行google)

git clone https://github.com/TykTechnologies/tyk-dashboard-docker

下载完成后,进入到对应的文件夹

 cd tyk-dashboard-docker/

进入文件夹后,找到 bootstrap.sh 文件,如果Ubuntu安装的是python3以下的版本,则直接运行如下命令即可

 ./bootstrap.sh ubuntu主机ip

如果是以上版本包括python3,则需要做一些更改,如果自己不确定,可以先执行以上命令,执行过程中有错误信息,则做以下几步:
1、清空bootstrap.sh文件内容

>bootstrap.sh

2、将以下内容保存到文件中

#!/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 ""


内容替换完成后执行:

./bootstrap.sh Ubuntu主机ip

如果执行报错,八成是文件中python相关问题,可以自行排查解决,执行后输出信息如下:

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: [email protected]
Pass: test123

信息的结尾处包含了访问地址以及用户名和密码,就可以登录了
TYK Docker容器安装_第5张图片

至此 TYK安装也就结束了,遇到问题,欢迎讨论!

你可能感兴趣的:(Java)