NAPALM¶
O NetBox suporta integração com a biblioteca de automação NAPALM. O NAPALM permite que o NetBox sirva como um proxy de dados operacionais, obtendo os dados "ao vivo" (live data) dos dispositivos da rede, retornando ao requisitor via API REST. Observe que o NetBox não suporta qualquer dados NAPALM localmente.
O NetBox UI (interface web) mostra tabs para o status, vizinhos LLDP e a configuração abaixo a visualização do dispositivo se as seguintes condições estiverem em conformidade:
- O status do Dispositivo está como "Active"
- Um endereço IP primário foi atribuído ao dispositivo
- Uma plataforma com driver NAPALM foi atribuído
- O usuário está autenticado com a permissão
dcim.napalm_read_device
Note
Para habilitar essa integração, a biblioteca do NAPALM deve estar instalada. Verifique o processo de instalação para mais informações.
Abaixo está um exemplo de requisição via API REST e sua resposta:
GET /api/dcim/devices/1/napalm/?method=get_environment
{
"get_environment": {
...
}
}
Note
Para realizar uma requisição NAPALM utilizando a API REST, um usuário do NetBox deve ter atrelado a permissão de ação napalm_read
para o tipo de dispositivo.
Autenticação (Authentication)¶
Por padrão, os parâmetros de configuração NAPALM_USERNAME
e NAPALM_PASSWORD
serão usados para autenticação do NAPALM. Eles podem sobrepor uma chamada de API individual especificando os cabeçalhos X-NAPALM-Username
e X-NAPALM-Password
.
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-Username: foo" \
-H "X-NAPALM-Password: bar"
Suporte de Método (Method Support)¶
A lista de métodos NAPALM suportados dependem do driver do NAPALM configurados para a plataforma (platform) do dispositivo. Porque não existe um mecanismo granular para limitar requisições com potenciais disruptivos (que podem prejudicar a rede), o NetBox suporta somente método do tipo get (somente leitura / read-only).
Múltiplos Métodos¶
É possível requisitar a saída (output) de múltiplos métodos NAPALM em uma única requisição API ao passar diversos parâmetros method
. Por exemplo:
GET /api/dcim/devices/1/napalm/?method=get_ntp_servers&method=get_ntp_peers
{
"get_ntp_servers": {
...
},
"get_ntp_peers": {
...
}
}
Argumentos Opcionais¶
O comportamento dos drivers do NAPALM podem ser justados de acordo os argumentos opcionais. NetBox expõe esses argumentos utilizando os cabeçalhos prefixados com X-NAPALM-
. Por exemplo, a porta SSH é mudada para 2222 nesta chamada API:
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-port: 2222"