Files
olt-api/doc/install.md
2026-02-18 10:18:46 -03:00

97 lines
2.2 KiB
Markdown

# Guia de Instalação: API Zabbix OLT
Este documento descreve os passos para instalação e configuração da API em ambiente Linux.
## Pré-requisitos
- Sistema Operacional Linux (Debian/Ubuntu/CentOS)
- Python 3.9 ou superior
- Git
## Passos de Instalação
### 1. Clonar o Repositório
O diretório padrão de instalação será `/opt/zbx-ipv0`.
```bash
sudo mkdir -p /opt/zbx-ipv0
sudo chown $USER:$USER /opt/zbx-ipv0
git clone https://git.ipv0.com.br/halbebruno/zabbix-api /opt/zbx-ipv0
cd /opt/zbx-ipv0
```
### 2. Configurar Ambiente Virtual (venv)
É recomendado usar um ambiente virtual para isolar as dependências.
```bash
python3 -m venv venv
source venv/bin/activate
```
### 3. Instalar Dependências
```bash
pip install -r requirements.txt
# Para produção, instale também o Gunicorn
pip install gunicorn
```
### 4. Configuração
#### 4.1 Inventário de Hosts
Crie ou edite o arquivo `hosts.json` na raiz do projeto com as credenciais das OLTs.
```json
{
"10.186.203.14": {
"username": "admin",
"password": "senha_segura",
"driver": "nokia",
"port": 22,
"ssh_options": {
"disabled_algorithms": {
"pubkeys": ["rsa-sha2-256", "rsa-sha2-512"]
}
}
}
}
```
#### 4.2 Variáveis de Ambiente (Opcional)
Você pode sobrescrever configurações padrão via variáveis de ambiente ou editando `config.py`.
### 5. Execução como Serviço (Systemd)
Para garantir que a API inicie automaticamente e rode em background, crie um serviço systemd.
Crie o arquivo `/etc/systemd/system/zabbix-api.service`:
```ini
[Unit]
Description=Zabbix OLT API
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/opt/zbx-ipv0
Environment="PATH=/opt/zbx-ipv0/venv/bin"
ExecStart=/opt/zbx-ipv0/venv/bin/gunicorn --workers 4 --bind 0.0.0.0:5000 app:app
Restart=always
[Install]
WantedBy=multi-user.target
```
Ative e inicie o serviço:
```bash
sudo systemctl daemon-reload
sudo systemctl enable zabbix-api
sudo systemctl start zabbix-api
sudo systemctl status zabbix-api
```
## Teste
Verifique se a API está rodando:
```bash
curl http://127.0.0.1:5000/api/v1/pon_stats?host=SEU_IP_DA_OLT
```