Comandos úteis para solucionar problemas no vRealize Automation 8.x
Olá pessoal. Recentemente atualizei o meu ambiente do vRA 8.3 para 8.4 e tive que resolver vários probleminhas para tudo funcionar corretamente, então a ideia aqui é compartilhar alguns comandos que podem ser úteis no momento de solucionar problemas. Todos os comandos abaixo são executados diretamente na console do vRA, para isso efetue login via SSH ou abra a console via vSphere.
Serviços
É uma boa ideia começar analisando se os serviços foram iniciados corretamente. Para isso execute systemctl status kubelet. É possível ver o status dos serviços do vRA com o comando vracli status. Para mais detalhes, pode-se analisar especificamente se o primeiro boot foi concluído (o retorno será 1 se o docker não inicializou, 2 se o kubernetes não inicializou e 3 se o helm não inicializou). O comando ficaria assim vracli status first-boot. É possível utilizar vracli status deploy para validar se o deploy foi concluído com sucesso e vracli status services para ver se os serviços nos namespaces estão prontos (kube-system, ingress e prelude).
Pods
Se os serviços estiverem OK, pode ser validado se existe algum problema com os pods utilizando o comando kubectl get pods -n prelude. Para listar os pods de todos os namespaces use o comando kubectl get pods –all-namespaces. Se quiser saber quais são os pods que não estão prontos, seja por algum erro ou porque ainda estão inicializando, apenas execute kubectl get pods -n prelude | grep -vE ‘1/1|2/2|3/3’.
Caso tiver problema com algum pod especifico, é possível remove-lo e aguardar que o mesmo seja recriado. Para isso utilize o comando kubectl delete pod [nome do pod] -n prelude (ex: kubectl delete pod postgres-0 -n prelude). Se o pod continuar apresentando problemas, é possível obter mais detalhes do pod com o comando kubectl describe pod [nome do pod] -n prelude e também analisar o motivo do erro com o pod rodando kubectl logs [nome do pod] -n prelude.
No caso de não conseguir identificar o que está causando os erros nos pods, é possível iniciar todos os pods manualmente com o comando /opt/scripts/deploy.sh. Este comando recria todos os pods e caso existir algum problema no ambiente, neste momento será possível observar os detalhes. Por exemplo: eu estava com problemas no pod identity-service-app e não estava conseguindo identificar o que era. Então optei por rodar o deploy.sh e então percebi os erros com clareza: “No vIDM data available” e “No vIDM configuration has been provided!”. Aí pude utilizar o comando vracli vidm set (mais detalhes no KB 76379) para adicionar o vIDM no vRA novamente e com isso o pod identity-service-app inicializou sem problemas. Também é possível analisar os logs do deploy.sh sem precisar executa-lo manualmente, o arquivo de log fica localizado em /var/log/deploy.log.
Mais comandos
Para obter mais comandos ou detalhes sobre os comandos que mencionei acima, apenas utilize -h e será possível observar todas as possibilidades. Por exemplo: kubectl -h, kubectl get -h, vracli -h, vracli status -h e por aí vai.
Por enquanto é isso pessoal. Abraço e até a próxima!