Welcome to Motey’s documentation!¶
Contents:
- Documentation Core
- Documentation cli
- Documentation Communication
- Documentation Communication - API Routes
- Documentation Labeling Engine
- Documentation Models
- Documentation Orchestrator
- Documentation Repositories
- Documentation Utils
- Documentation Virtualization Abstraction Layer (VAL)
- Documentation Virtualization Abstraction Layer (VAL) Plugins
What is Motey¶
Motey is a fog node agent which is able to start virtual containers and can act autonomous.
Installation¶
Dependecies¶
Motey is using python 3.5 or newer. All the necessary requirements are in motey-docker-image/requirements.txt
.
A separate MQTT server is optional but recommended.
Docker¶
The easiest way to use Motey is to run the docker container.
# pull the docker container.
$ docker pull neoklosch/motey
# run the container
$ docker run -ti -v /var/run/docker.sock:/var/run/docker.sock -p 5023:5023 -p 5024:5024 -p 5090:5090 neoklosch/motey
# to enter the container
$ docker exec -ti <container_name> bash
Motey need a MQTT broker to communicate with other nodes. Therefore a MQTT server has to started.
# pull the docker container.
$ docker pull toke/mosquitto
# run the container and load the config file from the scripts folder
$ docker run -p 1883:1883 -p 9001:9001 -v ./scripts/config:/mqtt/config:ro toke/mosquitto
The ip of the server has to be configured in the config.ini
file of Motey.
Install manually Linux¶
# clone Motey repo
$ git clone https://github.com/Neoklosch/Motey.git
# enter Motey folder
$ cd Motey
# build application
$ python3 setup.py build
# install application
$ python3 setup.py install
Using Motey¶
By default Motey is executed as a daemon. It can be started, stopped and restarted via the cli tool.
# start the service
$ motey start
# stop the service
$ motey stop
# restart the service
$ motey restart
You also can start Motey in foreground.
# start the application
$ python3 /opt/motey/main.py
How does it works¶
Motey Architecture¶
Communication¶
Motey provide several endpoints to communicate with the system.
- Capabilities Engine
- You can communicate with the capabilities engine via ZeroMQ. In the default configuration port 5090 is exposed as a ZeroMQ subscriber. You can connect to them witho one ore more ZeroMQ publisher to add or remove capabilities.
- REST API
- A REST API is provided on port 5023.
Endpoints are
/v1/service
to upload a YAML blueprint and get informations about the status of a service,/v1/capabilities
to add capabilities, which is basically another possiblity to communicate with the capabilities engine and/v1/nodestatus
to get the current node status. - MQTT
- Motey will try to connect to a MQTT broker on startup.
Default config is set to url
172.17.0.3
and port1883
. This can be configured by modifing theconfig.ini
file.