2) TokenBridge oracle instances
All instructions must be performed for every oracle instance.
The TokenBridge oracle instance deployment uses Ansible. Moreover the process below assumes there are two nodes: one node where Ansible playbooks orchestrate the deployment process (orchestration node) and another node (target node) where the oracle instance is deployed.
The orchestration node must satisfy the following dependencies:
Python 2 (v2.6-v2.7)/Python3 (v3.5+)
Ansible v2.3+ (on Ubuntu based systems it could be installed by
apt-get install ansible
)Git
The target must have a functional Ubuntu 16.04 or 18.04 launched.
Another recommendation is to configure a remote service to collect the oracle logs. For example, SolarWinds Papertrail could be used for this purposes - after registration it will provide log server domain name and port that will be used for the oracle configuration.
As soon as both nodes are ready the next steps should be performed (only on the orchestration node):
1. Generate a pair of SSH keys that will be used by the orchestration node to remotely login to the target node. The generated public key must be added to .ssh/authorized_keys
on the target node in the home directory of the user (usually root
or ubuntu
) that will be configured to perform deployment actions.
2. Clone the TokenBridge git repository and change the working directory:
3. Create the hosts.yml
file, e.g. from hosts.yml.example
:
Replace all variables templated with tags (<>) with actual values.
Here <user>
is the account that will ssh into the oracle node for deployment actions. This is typically ubuntu
or root
.
4. Create the file group_vars/<unique oracle name>.yml
and fill it with the public bridge parameters.
Replace all variables templated with tags (<>) with actual values.
5. The final step is to run Ansible playbook to deploy the oracle instance on the remote node:
If the target node contains python3
instead of python
, the option -e 'ansible_python_interpreter=/usr/bin/python3'
must be added to the command below.
This command will run the following actions on the target node:
install
Docker
,docker-compose
,Python
,Git
and it dependencies (such ascurl
,ca-certificates
,apt-transport-https
, etc.create an additional non-sudo docker user to run service as.
build the docker image that will be used to run the oracle workers
modify the docker-compose file to use syslog for logs produced by the oracles workers in docker containers
configure syslog to store docker logs in
/var/log/docker/
and send logs produced by the oracle workers to the remote log serverconfigure the service
logrotate
to rotate the docker log filesregister the service that will run the oracle after the node restart
After deployment completion all oracle workers, Radis DB and RabbitMQ will start automatically. Their log messages must appear on the remote log server.
Last updated