. . .

[Instructor] Installation


Introduction

The Instructor service provides the ApiOmat documentation via a unrestricted HTTP interface :

As default, Instructor service will be available under the following :

Port

8093

Context path

/docs

Host

http://localhost:8093/docs

This service is included in YAMBAS until version 3.2. Afterwards, it needs to be installed by hand or via ApiOmat Meta Packages.

If this service were to be deployed as a WAR inside a YAMBAS Tomcat without Consul installed, please make sure that you provide the VM argument in 'aom-yambas' file to disable Consul as described in YAMBAS configuration.

Prerequisites

Open the following port in the firewall to other ApiOmat nodes:

  • 8093 (HTTP)

Installation of Consul is required!

Installation of AdoptOpenJDK is required when not using Docker!

System requirements

The following instance configurations are recommended.

Size

CPU

Memory

Disk

Typical Cloud Instance Types

All

2 core

1 GB RAM

500 MB

AWS: t2.medium

Azure: Standard_ B1MS

Installation

USERNAME, PASSWORD, and TOKEN values are provided per customer from ApiOmat.

Debian/Ubuntu

Debian/Ubuntu
# Install the repo key
wget -O - https://repo-int.apiomat.com/yambas/rest/web/Key/LIVE/apiomat-archive-keyring.asc | sudo apt-key add -
# Add the repository
echo "deb https://<USERNAME>:<PASSWORD>@repo.apiomat.com/yambas/rest/web/Repo/LIVE/deb ./" | sudo tee /etc/apt/sources.list.d/apiomat.list
 
# Update APT and install
apt-get update
apt-get install -y aom-instructor
service instructor start

Centos/Oracle/RedHat

Centos/Oracle/RedHat
# Add the repository
echo "[apiomat]
name=ApiOmat
baseurl=https://<USERNAME>:<PASSWORD>@repo.apiomat.com/yambas/rest/web/Repo/LIVE/rpm
gpgcheck=0
enabled=1" > /etc/yum.repos.d/apiomat.repo
 
# Install
yum -y --nogpgcheck install aom-instructor
service instructor start

Suse

Suse
# Add the repository
zypper addrepo --no-gpgcheck https://repo.apiomat.com/yambas/rest/web/Repo/LIVE/suse?token=<TOKEN> "ApiOmat"
 
# Refresh zypper and install
zypper refresh
zypper --no-gpg-checks --non-interactive install aom-instructor
service instructor start

Docker Compose

Docker Compose
# Docker login
docker login -u <USERNAME> -p <PASSWORD>
 
# Store the following file and execute:
docker-compose -f instructor.yml up

instructor.yml:

version: '3'
services:
instructor:
image: apiomat/instructor:<VERSION>
command: --spring.cloud.consul.enabled=false
ports:
- "8093:8093"

Kubernetes

Kubernetes
# Docker login
kubectl create secret docker-registry regcred \
 --docker-server=https://index.docker.io/v1/ \
--docker-username="<USERNAME>" \
 --docker-password="<PASSWORD>" \
--docker-email="<MAIL>"
 
# Store the following file and execute
kubectl apply -f instructor.yml

instructor.yml:

instructor.yml
---
# Source: apiomat-instructor/templates/service.yaml
kind: Service
apiVersion: v1
metadata:
name: release-name-apiomat-instructor
labels:
app: apiomat-instructor
chart: apiomat-instructor-1.1.0
release: "release-name"
heritage: "Tiller"
spec:
ports:
- name: http
port: 8093
protocol: TCP
type: NodePort
selector:
app: apiomat-instructor
release: release-name
---
# Source: apiomat-instructor/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: apiomat-instructor
chart: apiomat-instructor-1.1.0
heritage: Tiller
release: release-name
name: release-name-apiomat-instructor
spec:
replicas: 1
selector:
matchLabels:
app: apiomat-instructor
chart: apiomat-instructor-1.1.0
release: release-name
template:
metadata:
labels:
app: apiomat-instructor
chart: apiomat-instructor-1.1.0
release: release-name
spec:
imagePullSecrets:
- name: <regcred>
containers:
- name: apiomat-instructor
image: docker.io/apiomat/instructor:1.1.0
command:
- --spring.cloud.consul.enabled=false
ports:
- containerPort: 8093
name: ms-port
resources:
limits:
memory: 1Gi
requests:
memory: 1Gi
 
livenessProbe:
httpGet:
path: /docs
port: 8093
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 6
readinessProbe:
httpGet:
path: /docs
port: 8093
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 6
imagePullPolicy: Always
securityContext:
capabilities: { }
privileged: false
 
---
# Source: apiomat-instructor/templates/ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: release-name-apiomat-instructor
labels:
app: apiomat-instructor
chart: apiomat-instructor-1.1.0
release: release-name
heritage: Tiller
spec:
rules:
- host: "instructor.example.domain"
http:
paths:
- path: /
backend:
serviceName: release-name-apiomat-instructor
servicePort: ms-port
 
---
# Source: apiomat-instructor/templates/requirements.yaml

Helm

Helm
# Docker login
kubectl create secret docker-registry regcred \
 --docker-server=https://index.docker.io/v1/ \
--docker-username="<USERNAME>" \
 --docker-password="<PASSWORD>" \
--docker-email="<MAIL>"
 
# We are using helm to deploy the yambas replicaset
helm init
helm repo update
helm repo add apiomat https://apinautengmbh.github.io/helm/
helm fetch apiomat/apiomat-instructor
# extract the archive (.tgz) and find the values.yml. Adjust the parameters as required.
helm install apiomat/apiomat-instructor --name apiomat-instructor --values values.yaml

Windows

Windows
  1. Download file: https://repo.apiomat.com/yambas/rest/web/Repo/LIVE/aom-instructor-<VERSION>.zip?token=<TOKEN> and unzip to installation folder

  2. Ensure that the path to your installed jdk\bin is set to the system-environment variable 'Path' (java.exe needs to be accessible for windows' system user!)

  3. Open administrative console and execute

    Instructor-<VERSION>.exe install
    Instructor-<VERSION>.exe start

    to install as service and start afterwards.

    For a removal of the service, execute

    Instructor-<VERSION>.exe uninstall

Configuration

General service configuration possibilities are described at the configurations main page. This services does not provide any special configuration.

Logging

Linux

Linux

Logging is done to a separate logfile:

Linux
tail -f /var/log/apiomat/instructor.log

Docker

Docker

Please replace <INSTRUCTOR_CONTAINER_ID> with your running container ID. You can list your running container using 'docker container list' command.

Docker
docker logs -f <INSTRUCTOR_CONTAINER_ID>

Kubernetes

Kubernetes

Please replace <INSTRUCTOR_CONTAINER_ID> with your running container ID. You can list your running container using 'kubectl get pods' command.

kubectl logs -f <INSTRUCTOR_CONTAINER_ID>

Windows

Windows

All logs are written to Event manager.

Next steps

Install further microservices.