6. Guia de instalação¶
Esta página contém informação de como instalar a dojot utilizando o docker-compose. O suporte à instalação em ambientes Kubernetes e Google Cloud estão em andamento no projeto.
Table of Contents
6.1. Requisitos de hardware¶
Para que a dojot seja executada apropriadamente, os requisitos mínimos de hardware são:
- 4GB de RAM
- 20GB de espaço livre em disco
- Acesso à rede
- As seguintes portas devem estar abertas:
- TCP (conexões de entrada): 1883 (MQTT), 8883 (MQTT seguro, se utilizado), 8000 (acesso à interface web)
- TCP (conexões de entrada): 1883 (MQTT), 8883 (MQTT seguro, se utilizado), 8000 (acesso à interface web)
6.2. Docker-compose¶
Este documento contém instruções de como criar um ambiente para instalação trivial da dojot em um único host utilizando o docker-compose como o processo de orquestração da plataforma.
Muito simples, esta opção de instalação é a que melhor se adapta para desenvolvimento e verificação da plataforma dojot, mas não é aconselhável para ambientes de produção.
Este guia foi verificado utilizando-se o sistema operacional Ubuntu 16.04 LTS.
As seções seguintes descrevem todas as dependências do docker-compose.
6.2.1. Docker engine (motor do docker)¶
Informações atualizadas e procedimentos de instalação para o docker engine podem ser encontrados na documentação do projeto:
https://docs.docker.com/engine/installation/
Nota
Um passo adicional no processo de instalação e configuração do docker em um determinado equipamento é definir quem será elegível para criar/iniciar instâncias do docker.
Caso os passos pós-instalação não tiverem sido executados (mais especificamente o “Manage docker como usuário não-root”), todos os comandos do docker e do docker-compose devem ser executados pelo super usuário (root), ou invocando o sudo.
https://docs.docker.com/engine/installation/linux/linux-postinstall/
6.2.2. Docker-compose¶
Informações atualizadas sobre procedimentos de instalação para o docker-compose podem ser encontradas na documentação do projeto:
6.2.3. Instalação¶
Para construir o ambiente, simplesmente clone o repositório e execute os comandos abaixo.
O repositório com os scripts de instalação e configuração do docker-compose podem ser encontrados em:
https://github.com/dojot/docker-compose
ou com o comando git clone:
git clone https://github.com/dojot/docker-compose.git
# Let's move into the repo - all commands in this page should be executed
# inside it.
cd docker-compose
Uma vez que o repositório esteja propriamente clonado, selecione a versão a ser utilizada por meio da tag apropriada (note que o tagname deve ser substituído):
# Must be run from within the deployment repo
git checkout tag_name -b branch_name
Por exemplo:
git checkout v0.4.1 -b v0.4.1
Ou se você for muito ousado:
git checkout development
Feito isso, o ambiente pode ser iniciado assim:
# Must be run from the root of the deployment repo.
# May need sudo to work: sudo docker-compose up -d
docker-compose up -d
Para verfificar o estado de um container individual, comandos do docker podem ser utilizados, como por exemplo:
# Shows the list of currently running containers, along with individual info
docker ps
# Shows the list of all configured containers, along with individual info
docker ps -a
Nota
Todos os comandos para docker e docker-compose podem requerer credenciais de super usuário (root) ou sudo.
Para permitir usuários “não-root” gerenciar o docker, confira a documentação do docker:
https://docs.docker.com/engine/installation/linux/linux-postinstall/
6.2.4. Utilização¶
A interface web está disponível em http://localhost:8000
. O usuário é admin
e a senha é admin
. Você também pode interagir com a plataforma utilizando o Componentes e APIs.
Leia o Utilizando a API da dojot e Usando a interface WEB para maiores informações sobre como interagir com a plataforma dojot.
6.3. Kubernetes¶
This section provides instructions on how to create a dojot deployment on a multi-node environment, using Kubernetes as the orchestration platform.
Esta opção de implantação, quando configurada corretamente, pode ser usada para criar ambientes de produção.
As seções a seguir descrevem todas as dependências e etapas necessárias para esta implantação.
Atenção
No momento, só oferecemos suporte ao Kubernetes com dojot v0.3.1 (battojutsu.1)
6.3.1. Cluster Kubernetes¶
Para este guia, é recomendável que você já tenha um cluster K8s funcionando.
Se você precisar criar um cluster Kubernetes do zero, informações atualizadas e procedimentos de instalação podem ser encontrados na documentação de instalação do Kubernetes.
6.3.2. Kubernetes Requisitos¶
- A versão suportada pelo Kubernetes é entre v1.11 e v1.15.
- Acesso aos repositórios do Docker Hub
- (opcional) uma classe de armazenamento que será usada para armazenamento persistente
6.3.3. Implantação dojot¶
Para implantar o dojot no Kubernetes, é recomendável o uso de playbooks ansible desenvolvidos para o dojot. Os manuais e todo o código relacionado podem ser encontrados no repositório *Ansible* dojot.
As etapas a seguir descreverão como usar este repositório e o ansible.
6.3.3.1. 1. Clonando o repositório¶
A primeira etapa da implantação é a clonagem do repositório. Para fazer isso, execute o comando:
git clone -b master https://github.com/dojot/ansible-dojot
6.3.3.2. 2. Instalando dependências¶
A próxima etapa é instalar as dependências para executar o ansible, essas dependências incluem o próprio ansible com outros módulos que serão usados para analisar modelos e se comunicar com os kubernetes.
Digite a pasta em que o repositório foi baixado e instale os pacotes pip com os seguintes comandos:
cd ansible-dojot
pip install -r requirements.txt
6.3.3.3. 3. Configurando o inventário¶
Para implantar o kubernetes com ansible, é necessário modelar o ambiente desejado em um inventário ansible.
No repositório, há uma pasta ‘inventory’ que contém um exemplo de inventário chamado ‘example_local’ que pode ser usado como ponto de partida para criar o inventário do ambiente real.
O primeiro arquivo que requer alterações é o hosts.yaml. Este arquivo descreve os nós que serão acessados pelo ansible para executar a implantação. Como a implantação do dojot é feita diretamente nos K8s, apenas um nó com acesso ao cluster kubernetes é realmente necessário.
O nó que acessará o cluster pode ser um nó de cluster kubernetes acessível via SSH ou evento sua máquina local se puder alcançar o cluster kubernetes com um arquivo de configuração.
No arquivo de exemplo, o acesso é feito através de um nó local, onde o script ansible é executado. Este nó é descrito como localhost no item de hosts do grupo all.
Esses mesmos nós devem ser adicionados como filhos do grupo dojot-k8s.
Para configurar um acesso local no arquivo hosts, siga o exemplo abaixo:
---
all:
hosts:
localhost:
ansible_connection: local
ansible_python.version.major: 3
children:
dojot-k8s:
hosts:
localhost:
Para configurar o acesso remoto via ssh para um nó do cluster, siga este outro exemplo:
---
all:
hosts:
NODE_NAME:
ansible_host: NODE_IP
children:
dojot-k8s:
hosts:
NODE_NAME:
A próxima etapa é configurar as variáveis obrigatórias e opcionais necessárias para implementar a dojot.
Há um documento descrevendo cada uma das variáveis que podem ser configuradas nas variáveis *Ansible* dojot.
Essas variáveis devem ser definidas para o grupo ‘dojot-k8s’, para isso, defina seus valores no arquivo dojot.yaml na pasta ‘group_vars/dojot-k8s/’
6.3.3.4. 4. Executando a implantação¶
Agora que o inventário está definido, a próxima etapa é executar o playbook de implantação
Para fazer isso, execute o seguinte comando:
ansible-playbook -K -k -i inventories/YOUR_INVENTORY deploy.yaml
Aguarde a execução do playbook terminar sem erros.
6.3.3.5. 5. Acessando o ambiente dojot implantado¶
O acesso a Dojot será definido usando NodePorts. Para visualizar as portas apropriadas para acessar o ambiente, é necessário verificar a configuração do serviço.
kubectl get service -n dojot kong iotagent-mosca
Este comando retornará a porta usada para acesso externo à API REST e à GUI via kong e à porta MQTT via iotagent-mosca.