# Explicador e validador de declaração DO

> Cole o JSON que você faz POST em /mgmt/shared/declarative-onboarding e ele lê de volta para você: se é um wrapper de requisição DO ou uma declaração Device pura, as opções de topo, e os objetos de classe do tenant Common agrupados pela fase em que o DO os provisiona, com cada classe nomeada e explicada. Também verifica as regras estruturais que a F5 documenta e sinaliza as pegadinhas que mordem em produção, da mudança do padrão de allowService no DO 1.36 a um usuário root sem seu oldPassword. O DO é o irmão do AS3: o DO faz o onboarding de L1-L3, o AS3 os serviços de L4-L7.

- Tool: https://ronutz.com/pt-BR/tools/do-explainer-validator
- Family: Redes

---

# Explicador e validador de declaração DO

O Declarative Onboarding é o irmão do AS3, e a divisão entre eles é o jeito mais limpo de manter os dois na cabeça: o AS3 configura os serviços de aplicação de Camada 4-7 em um BIG-IP que já está na rede, e o DO faz o onboarding de Camada 1-3 que o coloca lá. Licenciamento, provisionamento de módulos, DNS e NTP, VLANs e self IPs e rotas, contas de usuário, e o cluster que junta caixas em um par de alta disponibilidade são todos trabalho do DO. Esta ferramenta renderiza cada declaração de volta para você do jeito que a documentação descreve.

Cole o JSON que você faz POST em `/mgmt/shared/declarative-onboarding` e ela primeiro diz que tipo de documento é: uma declaração `Device` pura, que é o que você envia direto a um BIG-IP, ou um wrapper de requisição `class DO` carregando um `targetHost`, que é o que você envia a um BIG-IQ para provisionar um dispositivo remotamente. Ela lê as opções de topo, o `schemaVersion`, `async`, `webhook` e `label`, e então percorre o único tenant que uma declaração DO pode ter, que o schema exige que se chame `Common`.

A caminhada é agrupada pela fase em que o DO efetivamente provisiona, porque a ordem é a intuição que vale carregar: licenciamento e provisionamento habilitam os módulos dos quais todo o resto depende, a identidade do sistema como hostname e DNS e NTP e usuários é a base, a rede constrói o plano de dados de VLANs e self IPs e rotas, e o cluster junta a caixa provisionada aos seus pares. Cada classe é nomeada e explicada a partir da referência de schema da F5, e uma classe que esta ferramenta não reconhece ainda é reportada em vez de descartada.

Três pegadinhas documentadas são aplicadas mecanicamente em vez de deixadas em uma nota de rodapé. O `hostname` pode ser definido em `Common` ou dentro de uma classe `System`, mas não em ambos, e declará-lo duas vezes é sinalizado. Um `SelfIp` que omite `allowService` é sinalizado com a nota de versão que importa: o DO 1.36 mudou esse padrão de `default` para `none`, então um self IP que antes herdava gerenciamento-mais-serviços-padrão agora não permite nada até você dizer o contrário. E um usuário `root` sem seu `oldPassword` é sinalizado, porque o DO não consegue trocar a senha do root sem a existente. A ferramenta também mostra o comportamento do `async`: `async: true` retorna um 202 com um id de tarefa imediatamente, e você consulta essa tarefa com GET até concluir.

Isto é um explicador de estrutura e verificador de sanidade, não um validador completo de JSON-Schema; a F5 publica o schema do DO para validação no VS Code, e uma declaração que passa aqui ainda pode ser rejeitada pelo próprio DO. Tudo roda localmente, nada do que você cola sai da página, e nada aqui jamais contata um BIG-IP ou um BIG-IQ.

## Standards and references

- [F5 BIG-IP DO: Composing a Declaration for a Standalone BIG-IP (the Device/Tenant/Common model, the class list, the standalone example, the hostname mutual-exclusion, the endpoint)](https://clouddocs.f5.com/products/extensions/f5-declarative-onboarding/latest/composing-a-declaration.html)
- [F5 BIG-IP DO: Appendix A Schema Reference (the complete class and property catalog, defaults, and per-property version notices including the DO 1.36 allowService change)](https://clouddocs.f5.com/products/extensions/f5-declarative-onboarding/latest/schema-reference.html)
- [F5 BIG-IP DO: Composing a Declaration for a Cluster of BIG-IPs (ConfigSync, DeviceGroup, DeviceTrust, FailoverUnicast, and the owner-vs-member semantics)](https://clouddocs.f5.com/products/extensions/f5-declarative-onboarding/latest/clustering.html)
- [F5 BIG-IP DO: Network Objects (VLAN, SelfIp with allowService port-lockdown, Route, RouteDomain, and the data-plane classes)](https://clouddocs.f5.com/products/extensions/f5-declarative-onboarding/latest/declarations/network-objects.html)
- [F5 BIG-IQ: Declarative Onboarding API reference (the class DO request wrapper and targetHost for remote onboarding)](https://clouddocs.f5.com/products/big-iq/mgmt-api/v0.0/ApiReferences/bigiq_public_api_ref/r_do_onboarding.html)

## Related reading

- [Declarative Onboarding: A Metade L1-L3 do Automation Toolchain](https://ronutz.com/pt-BR/learn/bigip-declarative-onboarding-do.md): O AS3 configura serviços de aplicação em um BIG-IP que já está na rede. O Declarative Onboarding é o que o coloca lá: licenciamento, provisionamento, DNS e NTP, VLANs e self IPs e rotas, usuários e cluster, expressos como uma declaração JSON contra um Device com um único tenant chamado Common. Este artigo percorre o modelo, as fases de onboarding e as pegadinhas específicas de versão que mordem em produção.
- [Telemetry Streaming: A Extensão do Automation Toolchain que Observa em Vez de Configurar](https://ronutz.com/pt-BR/learn/bigip-telemetry-streaming-ts.md): O AS3 configura serviços de aplicação e o DO faz o onboarding do dispositivo. O Telemetry Streaming é a terceira extensão do F5 Automation Toolchain, e é a que observa em vez de configurar: ele agrega, normaliza e encaminha estatísticas e eventos do BIG-IP para um consumidor como Splunk, ElasticSearch, DataDog ou Prometheus, tudo a partir de uma única declaração JSON. Este artigo percorre o modelo da classe Telemetry, o pipeline de fonte-e-consumidor, e as lacunas que fazem uma declaração ter sucesso sem coletar nada.
