Introdução
Neste laboratório, você aprenderá a solucionar problemas comuns encontrados ao trabalhar com Ansible no Red Hat Enterprise Linux. Você ganhará experiência prática na identificação e resolução de uma variedade de problemas, desde a configuração inicial do ambiente até erros comuns de playbook e problemas de conectividade de host gerenciado. Os exercícios cobrem a correção de sintaxe YAML, a correção de erros de template Jinja2 e o diagnóstico de problemas em sistemas remotos.
Você começará preparando um ambiente RHEL e configurando o Ansible para logging eficaz. Em seguida, você mergulhará em cenários práticos de solução de problemas, usando o modo de verificação (check mode) do Ansible para diagnosticar problemas relacionados a serviços e corrigindo configurações de firewall para resolver a inalcançabilidade do host. Ao final deste laboratório, você estará equipado com um conjunto abrangente de habilidades para manter fluxos de trabalho de automação Ansible robustos.
Preparar o Ambiente RHEL e Configurar o Logging do Ansible
Nesta etapa, você preparará seu ambiente Red Hat Enterprise Linux para automação com Ansible. Isso envolve a instalação do software necessário, a criação de um diretório de projeto dedicado e a configuração de um arquivo de configuração básico para controlar o comportamento do Ansible e habilitar o logging. A configuração adequada é o primeiro passo para uma automação e solução de problemas eficazes.
Instalar o Ansible
Primeiro, você precisa instalar o Ansible. O motor de automação principal é fornecido pelo pacote
ansible-core. Use o gerenciador de pacotesdnfcomsudopara instalá-lo. O sinalizador-yresponde automaticamente "sim" a quaisquer solicitações de confirmação.sudo dnf install -y ansible-coreVocê deverá ver uma saída indicando que o pacote está sendo instalado juntamente com suas dependências.
Last metadata expiration check: ... Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Installing: ansible-core x86_64 <version> <repo> 2.8 M ... Transaction Summary ================================================================================ Install XX Packages Total download size: XX M Installed size: XX M ... Complete!Criar um Diretório de Projeto
É uma boa prática organizar seus projetos Ansible em diretórios dedicados. Isso mantém seus playbooks, inventário e arquivos de configuração bem separados. Vamos criar um diretório chamado
ansible_troubleshootingdentro da sua pasta de projeto pessoal e navegar até ele.mkdir -p ~/project/ansible_troubleshooting cd ~/project/ansible_troubleshootingA partir de agora, todos os comandos neste laboratório serão executados a partir do diretório
~/project/ansible_troubleshooting.Criar um Arquivo de Inventário Ansible
Um inventário é um arquivo que lista os hosts (ou nós) que o Ansible gerenciará. Como você está trabalhando em uma única VM LabEx, configurará o Ansible para gerenciar a própria máquina local.
Crie um arquivo chamado
inventorye adicionelocalhosta ele. A parteansible_connection=localinforma ao Ansible para executar comandos diretamente no nó de controle (sua VM) sem usar SSH.echo "localhost ansible_connection=local" > inventoryVocê pode verificar o conteúdo do arquivo usando o comando
cat:cat inventorySaída Esperada:
localhost ansible_connection=localConfigurar o Logging do Ansible
Um arquivo
ansible.cfgpermite personalizar o comportamento do Ansible para um projeto específico. Quando colocado no diretório do projeto, suas configurações substituem os padrões do sistema. Aqui, você criará este arquivo para especificar o local do seu inventário e habilitar o logging. O logging é crucial para a solução de problemas, pois registra informações detalhadas sobre cada execução de playbook.Use o editor
nanopara criar o arquivoansible.cfg.nano ansible.cfgAgora, copie e cole o seguinte conteúdo no editor
nano. Esta configuração informa ao Ansible para usar o arquivoinventoryno diretório atual e para gravar toda a saída de log em um arquivo chamadoansible.log.[defaults] inventory = /home/labex/project/ansible_troubleshooting/inventory log_path = /home/labex/project/ansible_troubleshooting/ansible.logPara salvar o arquivo no
nano, pressioneCtrl+X, depoisYpara confirmar e, finalmente,Enterpara gravar o arquivo.Seu ambiente está agora totalmente preparado. Você tem o Ansible instalado e um diretório de projeto configurado com um inventário local e logging habilitado, pronto para as próximas etapas.
Corrigir Erros de Sintaxe e Indentação YAML num Playbook
Nesta etapa, você aprenderá a diagnosticar e corrigir dois dos tipos de erros mais comuns em playbooks Ansible: erros de sintaxe YAML e indentação incorreta. YAML, a linguagem usada para escrever playbooks, é muito rigorosa quanto à sua estrutura. Um único espaço mal colocado ou um caractere especial sem aspas pode impedir a execução de um playbook. Você usará o comando ansible-playbook --syntax-check, uma ferramenta essencial para validar seus playbooks antes da execução.
Criar um Playbook com Erros Intencionais
Primeiro, você criará um novo arquivo de playbook chamado
webserver.ymlem seu diretório de projeto (~/project/ansible_troubleshooting). Este arquivo contém erros intencionais que você corrigirá.Use
nanopara criar o arquivo:nano webserver.ymlCopie e cole o seguinte conteúdo no editor. Observe os dois erros deliberados: uma string sem aspas contendo dois pontos e indentação incorreta para a segunda tarefa.
--- - name: Configure Web Server hosts: localhost vars: ## ERROR 1: Unquoted colon in string package_comment: This is a package: httpd tasks: - name: Install httpd package ansible.builtin.dnf: name: httpd state: present ## ERROR 2: Incorrect indentation - name: Create a test index page ansible.builtin.copy: content: "<h1>Welcome to Ansible</h1>" dest: /var/www/html/index.htmlSalve o arquivo e saia do
nanopressionandoCtrl+X, depoisYeEnter.Identificar e Corrigir o Erro de Sintaxe YAML (Dois Pontos sem Aspas)
Agora, execute uma verificação de sintaxe no playbook que você acabou de criar. Este comando analisará o arquivo e relatará quaisquer problemas de sintaxe sem realmente executar as tarefas.
ansible-playbook --syntax-check webserver.ymlSaída Esperada (Erro): Você verá um erro porque o valor de
package_commentcontém dois pontos (:) mas não está entre aspas. O YAML interpreta os dois pontos como um separador chave-valor, levando a um erro de sintaxe.ERROR! We were unable to read either as JSON nor YAML, these are the errors we found: - Syntax Error while loading YAML. did not find expected ':' The error appears to be in '/home/labex/project/ansible_troubleshooting/webserver.yml': line 6, column 41, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: vars: package_comment: This is a package: httpd ^ hereSolução: Para corrigir isso, você deve colocar a string entre aspas duplas. Abra o arquivo novamente com
nano:nano webserver.ymlModifique a linha sob
varspara adicionar aspas:## ... (rest of the file) vars: ## FIX: Add quotes around the string with a colon package_comment: "This is a package: httpd" ## ... (rest of the file)Salve e saia do editor.
Identificar e Corrigir o Erro de Indentação YAML
Com o primeiro erro corrigido, execute a verificação de sintaxe novamente.
ansible-playbook --syntax-check webserver.ymlSaída Esperada (Erro): Desta vez, o Ansible relatará um erro diferente relacionado à estrutura do playbook.
ERROR! A malformed block was encountered. The error appears to be in '/home/labex/project/ansible_troubleshooting/webserver.yml': line 13, column 11, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: ## ERROR 2: Incorrect indentation - name: Create a test index page ^ hereEste erro ocorre porque o YAML usa indentação para definir a estrutura. Todos os itens em uma lista (neste caso, as tarefas, que são itens de lista começando com
-) devem ter o mesmo nível de indentação. A segunda tarefa,Create a test index page, está indentada demais.Solução: Abra o arquivo mais uma vez para corrigir a indentação.
nano webserver.ymlRemova os espaços extras antes da segunda tarefa para que seu hífen (
-) se alinhe perfeitamente com o hífen da primeira tarefa.## ... (rest of the file) tasks: - name: Install httpd package ansible.builtin.dnf: name: httpd state: present ## FIX: Correct the indentation to align with the previous task - name: Create a test index page ansible.builtin.copy: content: "<h1>Welcome to Ansible</h1>" dest: /var/www/html/index.htmlSalve e saia do editor.
Verificar o Playbook Corrigido
Finalmente, execute a verificação de sintaxe mais uma vez.
ansible-playbook --syntax-check webserver.ymlDesta vez, o comando deverá ser concluído sem erros, e você verá o nome do playbook impresso, confirmando que a sintaxe agora está correta.
Saída Esperada (Sucesso):
playbook: webserver.yml
Corrigir Erros de Aspas e Caminho de Template Jinja2
Nesta etapa, você abordará erros relacionados ao Jinja2, o poderoso motor de templates do Ansible. Você aprenderá por que as expressões Jinja2 frequentemente precisam ser colocadas entre aspas e como depurar problemas quando um playbook não consegue encontrar um arquivo de template especificado. Estes são erros comuns de tempo de execução que ocorrem após um playbook já ter passado por uma verificação de sintaxe.
Criar um Arquivo de Template Jinja2
Primeiro, você precisa de um arquivo de template. Ao contrário de um arquivo estático, um template pode conter variáveis que o Ansible substituirá por valores reais durante a execução do playbook. Você criará um template HTML simples.
Use
nanopara criar um arquivo chamadoindex.html.j2em seu diretório de projeto (~/project/ansible_troubleshooting). A extensão.j2é uma convenção comum para templates Jinja2.nano index.html.j2Copie e cole o seguinte conteúdo HTML no editor. Observe o placeholder
{{ welcome_message }}, que é uma variável Jinja2.<h1>{{ welcome_message }}</h1> <p>This page was deployed by Ansible.</p>Salve o arquivo e saia do
nano(Ctrl+X,Y,Enter).Modificar o Playbook para Usar o Template e Introduzir Erros
Agora, modifique seu playbook
webserver.ymlpara usar o móduloansible.builtin.template. Você também introduzirá dois novos erros: uma variável Jinja2 sem aspas e um caminho de template incorreto.Abra
webserver.ymlcomnano:nano webserver.ymlSubstitua todo o conteúdo do arquivo pelo seguinte. A diretiva
become: trueinforma ao Ansible para executar tarefas com privilégios administrativos (usandosudo), o que é necessário para instalar software e gravar arquivos em diretórios do sistema como/var/www/html.--- - name: Configure Web Server hosts: localhost become: true vars: package_name: httpd welcome_message: "Welcome to Ansible with Jinja2" tasks: - name: Install httpd package ansible.builtin.dnf: ## ERROR 1: Unquoted Jinja2 variable name: { { package_name } } state: present - name: Create a test index page from template ansible.builtin.template: ## ERROR 2: Incorrect template source path src: index.j2 dest: /var/www/html/index.htmlSalve e saia do editor.
Identificar e Corrigir o Erro de Aspas Jinja2
Mesmo que este seja um problema do Jinja2, ele pode se manifestar como um erro de sintaxe YAML. Execute o verificador de sintaxe para ver como o Ansible o interpreta.
ansible-playbook --syntax-check webserver.ymlSaída Esperada (Erro): Você receberá um erro de sintaxe porque um valor YAML que começa com
{{é tratado como uma construção especial e deve ser colocado entre aspas para ser interpretado como uma string.ERROR! A malformed block was encountered. The error appears to be in '/home/labex/project/ansible_troubleshooting/webserver.yml': line 11, column 19, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: ## ERROR 1: Unquoted Jinja2 variable name: {{ package_name }} ^ hereSolução: Abra
webserver.ymle coloque a variável Jinja2 entre aspas duplas.nano webserver.ymlModifique a tarefa
Install httpd package:## ... (rest of the file) tasks: - name: Install httpd package ansible.builtin.dnf: ## FIX: Quote the Jinja2 expression name: "{{ package_name }}" state: present ## ... (rest of the file)Salve e saia. A verificação de sintaxe agora deve passar.
Identificar e Corrigir o Erro de Caminho do Template
Agora que a sintaxe está correta, tente executar o playbook.
ansible-playbook webserver.ymlSaída Esperada (Erro): O playbook falhará, mas desta vez é um erro de tempo de execução, não um erro de sintaxe. A mensagem de erro afirma claramente que o arquivo de origem
index.j2não pôde ser encontrado.TASK [Create a test index page from template] ********************************** fatal: [localhost]: FAILED! => {"changed": false, "msg": "Could not find or access '/home/labex/project/ansible_troubleshooting/index.j2' on the Ansible Controller."}Isso acontece porque o parâmetro
srcem seu playbook aponta paraindex.j2, mas o arquivo que você criou é nomeadoindex.html.j2.Solução: Abra
webserver.ymlmais uma vez e corrija o nome do arquivo.nano webserver.ymlModifique o parâmetro
srcna tarefaCreate a test index page from template:## ... (rest of the file) - name: Create a test index page from template ansible.builtin.template: ## FIX: Correct template source filename src: index.html.j2 dest: /var/www/html/index.html ## ... (rest of the file)Salve e saia do editor.
Executar o Playbook com Sucesso
Execute o playbook novamente. Ele agora deve concluir todas as tarefas com sucesso.
ansible-playbook webserver.ymlSaída Esperada (Sucesso):
PLAY [Configure Web Server] **************************************************** TASK [Gathering Facts] ********************************************************* ok: [localhost] TASK [Install httpd package] *************************************************** changed: [localhost] TASK [Create a test index page from template] ********************************** changed: [localhost] PLAY RECAP ********************************************************************* localhost : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Usar Modo de Verificação para Solucionar Erros de Serviço em Hosts Gerenciados
Nesta etapa, você aprenderá a usar um dos recursos de solução de problemas mais poderosos do Ansible: o Modo de Verificação (Check Mode). O modo de verificação (ativado com o sinalizador --check) permite executar um playbook para ver quais alterações seriam feitas, sem modificar nada no sistema. Isso é incrivelmente útil para testar playbooks com segurança e diagnosticar problemas, como nomes de serviço incorretos, antes que causem problemas reais.
Criar um Playbook para Gerenciar um Serviço
Você criará agora um novo playbook,
service.yml, projetado para garantir que o serviço do servidor webhttpdesteja em execução. No entanto, você usará intencionalmente um nome de serviço incorreto para simular um erro comum.Use
nanopara criar o arquivoservice.ymlem seu diretório~/project/ansible_troubleshooting.nano service.ymlCopie e cole o seguinte conteúdo. Observe que o nome do serviço está definido como
apache2, que é um nome comum para o servidor web Apache em outras distribuições Linux, mas está incorreto para RHEL.--- - name: Manage Web Server Service hosts: localhost become: true tasks: - name: Ensure web server service is started ansible.builtin.service: ## ERROR: Incorrect service name for RHEL name: apache2 state: started enabled: trueSalve o arquivo e saia do
nano(Ctrl+X,Y,Enter).Usar o Modo de Verificação para Identificar o Erro de Serviço
Em vez de executar o playbook normalmente, execute-o em modo de verificação. Isso impedirá que o Ansible faça quaisquer alterações, mas permitirá que ele verifique o estado do sistema e relate o que faria.
ansible-playbook --check service.ymlSaída Esperada (Erro): O playbook falhará. A mensagem de erro indicará claramente que não foi possível encontrar um serviço chamado
apache2. Isso informa imediatamente que o parâmetronameem seu playbook está incorreto.TASK [Ensure web server service is started] ************************************ fatal: [localhost]: FAILED! => {"changed": false, "msg": "Could not find the requested service 'apache2': host"} PLAY RECAP ********************************************************************* localhost : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0Encontrar o Nome Correto do Serviço
Para corrigir o playbook, você precisa encontrar o nome correto do serviço para o pacote
httpdno RHEL. Uma maneira confiável de fazer isso é listar os arquivos instalados pelo pacote e procurar pelo arquivo de unidade de serviço, que normalmente reside em/usr/lib/systemd/system/.Use o comando
rpmpara consultar o pacotehttpd:rpm -ql httpd | grep systemdSaída Esperada: Este comando listará os arquivos relacionados ao
systemd, incluindo o arquivo de serviço./usr/lib/systemd/system/httpd.service /usr/lib/systemd/system/httpd@.service ...A saída
httpd.serviceinforma que o nome correto do serviço éhttpd.Corrigir o Playbook e Reexecutar em Modo de Verificação
Agora que você sabe o nome correto do serviço, edite o arquivo
service.yml.nano service.ymlAltere o
namedo serviço deapache2parahttpd.## ... (rest of the file) - name: Ensure web server service is started ansible.builtin.service: ## FIX: Correct service name for RHEL name: httpd state: started enabled: trueSalve e saia do editor. Agora, execute o playbook em modo de verificação novamente.
ansible-playbook --check service.ymlSaída Esperada (Sucesso em Modo de Verificação): Desta vez, o playbook deverá relatar um status
changed. No modo de verificação,changedsignifica "uma alteração teria sido feita se esta fosse uma execução real". Isso indica que a lógica do seu playbook agora está correta e o Ansible identificou que o serviçohttpdprecisa ser iniciado.TASK [Ensure web server service is started] ************************************ changed: [localhost] PLAY RECAP ********************************************************************* localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0Observação: Neste ambiente de laboratório específico baseado em contêiner, um sistema de inicialização
systemdcompleto não está em execução. Embora o modo de verificação funcione corretamente, uma execução normal do móduloansible.builtin.serviceainda pode encontrar problemas. A lição principal aqui é usar o modo de verificação para validar a lógica do seu playbook em relação à configuração do sistema.
Corrigir Configuração de Firewall e Problemas de Inalcançabilidade de Host
Nesta etapa final, você abordará dois problemas críticos de tempo de execução: falhas causadas por configurações incorretas do sistema, como o firewall, e problemas de conectividade resultantes de erros no seu arquivo de inventário Ansible. Dominar estes o ajudará a resolver alguns dos obstáculos mais comuns na automação.
Parte 1: Correção da Configuração do Firewall
Uma tarefa comum na configuração de servidores é abrir portas no firewall. Um playbook pode falhar facilmente se ele se referir a um serviço de firewall que não existe no sistema de destino.
Instalar e Preparar
firewalldPrimeiro, certifique-se de que o pacote
firewalldesteja instalado, pois ele fornece o serviço de gerenciamento de firewall no RHEL.sudo dnf install -y firewalldInicie o serviço
firewalld.sudo systemctl start firewalldVocê também precisa instalar a coleção
ansible.posix, que contém o módulofirewalldusado neste exercício.ansible-galaxy collection install ansible.posixObservação: Você pode ver um aviso sobre a compatibilidade da versão do Ansible, mas a coleção ainda funcionará corretamente para este exercício.
Criar um Playbook com um Erro de Firewall
Crie um novo playbook chamado
firewall.ymlque tenta habilitar o serviçohttp. No entanto, você usará intencionalmente um nome de serviço incorreto,web, para acionar um erro.nano firewall.ymlCopie e cole o seguinte conteúdo no editor:
--- - name: Configure System Firewall hosts: localhost become: true tasks: - name: Allow web traffic through firewall ansible.posix.firewalld: ## ERROR: 'web' is not a standard firewalld service service: web permanent: true state: enabledSalve e saia do
nano(Ctrl+X,Y,Enter).Executar o Playbook e Diagnosticar a Falha
Execute o playbook. Ele falhará porque o
firewalldnão reconhece um serviço chamadoweb.ansible-playbook firewall.ymlSaída Esperada (Erro): A mensagem de erro afirma claramente que
webnão é um serviço suportado, apontando diretamente para o problema.TASK [Allow web traffic through firewall] ************************************** fatal: [localhost]: FAILED! => {"changed": false, "msg": "web is not a supported service. This is what I have."} PLAY RECAP ********************************************************************* localhost : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0Encontrar o Nome Correto do Serviço de Firewall
Para encontrar a lista de nomes de serviço válidos e predefinidos, você pode usar a ferramenta de linha de comando
firewall-cmd.firewall-cmd --get-servicesSaída Esperada: Você verá uma longa lista de serviços disponíveis. Procure na lista para encontrar o correto para tráfego web, que é
http.RH-Satellite-6 ... ftp http https imaps ipp ipp-client ...Corrigir o Playbook e Executar com Sucesso
Edite
firewall.ymle substitua o nome de serviço incorretowebpelo correto,http.nano firewall.ymlA tarefa corrigida deve ficar assim:
## ... (rest of the file) - name: Allow web traffic through firewall ansible.posix.firewalld: ## FIX: Use the correct firewalld service name service: http permanent: true state: enabledSalve e saia. Agora, execute o playbook novamente. Ele deverá ser concluído com sucesso.
ansible-playbook firewall.yml
Parte 2: Solução de Problemas de Inalcançabilidade do Host
Um erro de "unreachable" (inalcançável) significa que o Ansible não consegue se conectar a um host listado em seu inventário. Isso geralmente é causado por um simples erro de digitação no nome do host.
Simular um Host Inalcançável
Introduza intencionalmente um erro de digitação no seu arquivo
inventorye remova a configuração de conexão local. Isso forçará o Ansible a tentar uma conexão de rede real com o nome de host digitado incorretamente.nano inventoryAltere
localhostparalocalhossste removaansible_connection=local.## ERROR: Intentional typo in hostname, no local connection localhossstSalve e saia do editor.
Modificar o Playbook para Usar Hosts do Inventário
Primeiro, você precisa modificar o playbook
webserver.ymlpara usar os hosts do inventário em vez dolocalhostcodificado. Quando um playbook usahosts: localhost, o Ansible o trata como um caso especial e ignora o arquivo de inventário completamente.nano webserver.ymlAltere a linha
hostsdelocalhostparaall:--- - name: Configure Web Server hosts: all ## Changed from 'localhost' to use inventory hosts become: true ## ... rest of the playbook remains the sameSalve e saia do editor.
Executar o Playbook para Acionar o Erro
Agora tente executar o playbook modificado. Ele falhará porque o inventário contém o erro de digitação
localhossst.ansible-playbook webserver.ymlSaída Esperada (Erro): O Ansible falhará e relatará o host como
UNREACHABLE. A mensagem de erro indica que o nome do host não pôde ser resolvido.PLAY [Configure Web Server] **************************************************** TASK [Gathering Facts] ********************************************************** fatal: [localhossst]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname localhossst: Name or service not known", "unreachable": true} PLAY RECAP ********************************************************************* localhossst : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0Corrigir o Arquivo de Inventário
O status
UNREACHABLEé o seu sinal para verificar novamente os nomes dos hosts e a conectividade de rede. Neste caso, a correção é corrigir o erro de digitação no arquivoinventory.nano inventoryAltere
localhossstde volta paralocalhost.## FIX: Corrected hostname localhost ansible_connection=localSalve e saia. Executar
ansible-playbook webserver.ymlnovamente agora terá sucesso.Opcional: Restaurar o Playbook Original
Se você quiser restaurar o playbook para usar
hosts: localhostpara exercícios futuros, você pode alterá-lo de volta:nano webserver.ymlAltere a linha
hostsde volta paralocalhost:--- - name: Configure Web Server hosts: localhost ## Restored to original become: true ## ... rest of the playbookSalve e saia. Esta etapa demonstra a diferença entre usar
localhostcodificado (que ignora o inventário) versus usar hosts definidos no inventário.
Resumo
Neste laboratório, você preparou um ambiente Red Hat Enterprise Linux para o Ansible instalando o ansible-core e configurando o registro (logging), e em seguida procedeu para solucionar uma variedade de problemas comuns. Você aprendeu a diagnosticar e resolver erros dentro de playbooks, como corrigir sintaxe YAML incorreta, indentação, aspas Jinja2 e caminhos de template inválidos. Essas habilidades são fundamentais para escrever código de automação válido e confiável.
Além disso, você abordou problemas relacionados ao ambiente do host gerenciado. Você utilizou o modo de verificação (check mode) do Ansible para executar com segurança um teste (dry run) e identificar potenciais falhas de serviço em um nó de destino sem fazer alterações reais. O laboratório concluiu abordando problemas de conectividade, onde você corrigiu configurações de firewall para resolver a inalcançabilidade do host, fornecendo uma abordagem abrangente para depuração do nó de controle ao host gerenciado.


