Red Hat (RHEL / CentOS)
Last updated: 4 minutes read.
The Tyk Gateway can be installed following different installation methods including Shell and Ansible. Please select by clicking the tab with the installation path most suitable for you.
Supported Distributions
Distribution | Version | Supported |
---|---|---|
CentOS | 8 | ✅ |
CentOS | 7 | ✅ |
RHEL | 8 | ✅ |
RHEL | 7 | ✅ |
Requirements
Before you begin the installation process, make sure you have the following:
- Ensure port
8080
is open for Gateway traffic (the API traffic to be proxied). - The Tyk Gateway has a dependency on Redis. Follow the steps provided by Red Hat to make the installation of Redis, conducting a search for the correct version and distribution.
Step 1: Create Tyk Gateway Repository Configuration
Create a file named /etc/yum.repos.d/tyk_tyk-gateway.repo
that contains the repository configuration settings for YUM repositories tyk_tyk-gateway
and tyk_tyk-gateway-source
used to download packages from the specified URLs. This includes GPG key verification and SSL settings, on a Linux system.
Make sure to replace el
and 8
in the config below with your Linux distribution and version:
[tyk_tyk-gateway]
name=tyk_tyk-gateway
baseurl=https://packagecloud.io/tyk/tyk-gateway/el/8/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/tyk/tyk-gateway/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[tyk_tyk-gateway-source]
name=tyk_tyk-gateway-source
baseurl=https://packagecloud.io/tyk/tyk-gateway/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/tyk/tyk-gateway/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
Update your local yum cache by running:
sudo yum -q makecache -y --disablerepo='*' --enablerepo='tyk_tyk-gateway'
Step 2: Install Tyk Gateway
Install the Tyk Gateway using yum:
sudo yum install -y tyk-gateway
Note
You may be asked to accept the GPG key for our two repos and when the package installs, hit yes to continue.
Step 3: Start Redis
If Redis is not running then start it using the following command:
sudo service redis start
Step 4: Configuring The Gateway
You can set up the core settings for the Tyk Gateway with a single setup script, however for more complex deployments you will want to provide your own configuration file.
Note
Replace <hostname>
in --redishost=<hostname>
with your own value to run this script.
sudo /opt/tyk-gateway/install/setup.sh --listenport=8080 --redishost=<hostname> --redisport=6379 --domain=""
What you’ve done here is told the setup script that:
--listenport=8080
: Listen on port8080
for API traffic.--redishost=<hostname>
: The hostname for Redis.--redisport=6379
: Use port6379
for Redis.--domain=""
: Do not filter domains for the Gateway, see the note on domains below for more about this.
In this example, you don’t want Tyk to listen on a single domain. It is recommended to leave the Tyk Gateway domain unbounded for flexibility and ease of deployment.
Step 5: Start the Tyk Gateway
The Tyk Gateway can be started now that it is configured. Use this command to start the Tyk Gateway:
sudo service tyk-gateway start
Supported Distributions
Distribution | Version | Supported |
---|---|---|
CentOS | 8 | ✅ |
CentOS | 7 | ✅ |
RHEL | 8 | ✅ |
RHEL | 7 | ✅ |
Requirements
Before you begin the installation process, make sure you have the following:
- Git - required for getting the installation files.
- Ansible - required for running the commands below.
- Ensure port
8080
is open: this is used in this guide for Gateway traffic (the API traffic to be proxied).
Getting Started
- clone the tyk-ansible repository
$ git clone https://github.com/TykTechnologies/tyk-ansible
cd
into the directory
$ cd tyk-ansible
- Run the initalisation script to initialise your environment
$ sh scripts/init.sh
-
Modify the
hosts.yml
file to update ssh variables to your server(s). You can learn more about the hosts file here -
Run ansible-playbook to install
tyk-gateway-ce
$ ansible-playbook playbook.yaml -t tyk-gateway-ce -t redis
Note
Installation flavors can be specified by using the -t {tag} at the end of the ansible-playbook command. In this case we are using:
-tyk-gateway-ce
: Tyk Gateway with CE config
-redis
: Redis database as Tyk Gateway dependency
Variables
vars/tyk.yaml
Variable | Default | Comments |
---|---|---|
secrets.APISecret | 352d20ee67be67f6340b4c0605b044b7 |
API secret |
secrets.AdminSecret | 12345 |
Admin secret |
redis.host | Redis server host if different than the hosts url | |
redis.port | 6379 |
Redis server listening port |
redis.pass | Redis server password | |
redis.enableCluster | false |
Enable if redis is running in cluster mode |
redis.storage.database | 0 |
Redis server database |
redis.tls | false |
Enable if redis connection is secured with SSL |
gateway.service.host | Gateway server host if different than the hosts url | |
gateway.service.port | 8080 |
Gateway server listening port |
gateway.service.proto | http |
Gateway server protocol |
gateway.service.tls | false |
Set to true to enable SSL connections |
gateway.sharding.enabled | false |
Set to true to enable filtering (sharding) of APIs |
gateway.sharding.tags | The tags to use when filtering (sharding) Tyk Gateway nodes. Tags are processed as OR operations. If you include a non-filter tag (e.g. an identifier such as node-id-1 , this will become available to your Dashboard analytics) |
vars/redis.yaml
Variable | Default | Comments |
---|---|---|
redis_bind_interface | 0.0.0.0 |
Binding address of Redis |
Read more about Redis configuration here.
Next Steps Tutorials
Follow the Tutorials on the Community Edition tabs for the following: