Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Provisionamento automatizado de um servidor clínico Linux com Ansible

Você vai automatizar a instalação e configuração de um servidor Linux para clínica, usando Ansible em duas máquinas virtuais. Em cerca de 2 horas, terá um ambiente pronto para expandir automações clínicas.

Automação de processos clínicos com Ansible do zero à governança
Ligado ao treinamento Automação de processos clínicos com Ansible do zero à governança
ULC-LAB-CLIN-0002 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
4
Versões da documentação consultada
Ansible a versão estável atual · OpenSSH a versão estável atual
Objetivo

Demonstrar, na prática, como o Ansible pode provisionar e configurar um servidor Linux para uso clínico, garantindo padronização e rastreabilidade. O laboratório cobre desde a preparação do ambiente até a execução de um playbook real, incluindo validações e troubleshooting, para que você entenda o ciclo completo da automação.

Topologia

Duas máquinas virtuais em rede privada: uma controladora (Ansible) e uma alvo (servidor clínico). O controlador acessa o alvo via SSH (porta 22). Exemplo: controlador em 192.168.56.10, alvo em 192.168.56.20.

           +-------------------+
           |  VM1: Controlador|
           |  (Ansible)       |
           |  192.168.56.10   |
           +--------+---------+
                    |
           (rede privada)
                    |
           +--------+---------+
           |  VM2: Alvo       |
           |  (Servidor Linux)|
           |  192.168.56.20   |
           +------------------+

Equipamentos e software

ItemRequisito, licença ou versão
VM Controlador1 vCPU, 1 GB RAM, 1 interface de rede, Ubuntu Server 22.04 LTS
VM Alvo1 vCPU, 1 GB RAM, 1 interface de rede, Ubuntu Server 22.04 LTS
AnsibleGPL v3 · a versão estável atual
OpenSSHBSD · a versão estável atual

Roteiro

  1. Preparar as máquinas virtuais

    Crie duas VMs Ubuntu Server 22.04 LTS, conectadas à mesma rede privada. Uma será o controlador (Ansible), outra o alvo (servidor clínico).

    O que você deve ver: Ambas as VMs ligadas, com IPs privados acessíveis entre si.

  2. Atualizar os sistemas operacionais

    Mantenha ambos os sistemas atualizados para evitar falhas por pacotes antigos.

    sudo apt update && sudo apt upgrade -y

    O que você deve ver: Nenhum pacote pendente de atualização.

  3. Instalar o OpenSSH no alvo

    O Ansible usa SSH para se conectar. Instale e inicie o serviço no servidor alvo.

    sudo apt install openssh-server -y
    sudo systemctl enable --now ssh

    O que você deve ver: Serviço SSH ativo e escutando na porta 22.

  4. Instalar o Ansible no controlador

    O controlador precisa do Ansible instalado para orquestrar as automações.

    sudo apt install ansible -y

    O que você deve ver: Comando 'ansible --version' retorna informações da versão.

  5. Configurar autenticação SSH sem senha

    Para automação, o controlador deve acessar o alvo via chave SSH, sem senha.

    ssh-keygen -t ed25519 -C "ansible-lab"
    ssh-copy-id usuario@192.168.56.20

    O que você deve ver: Acesso SSH do controlador ao alvo sem pedir senha.

  6. Testar conectividade SSH

    Confirme que o controlador acessa o alvo via SSH.

    ssh usuario@192.168.56.20 'hostname'

    O que você deve ver: Nome do host do alvo exibido no terminal.

  7. Criar inventário Ansible

    O inventário define quais hosts o Ansible vai gerenciar.

    echo '[clinica]
    192.168.56.20 ansible_user=usuario' > ~/inventario

    O que você deve ver: Arquivo inventario criado com IP do alvo e usuário.

  8. Criar playbook básico de provisionamento

    Um playbook YAML descreve as tarefas de configuração do servidor clínico.

    nano ~/provisiona_clinica.yml

    O que você deve ver: Arquivo salvo com conteúdo YAML válido.

  9. Exemplo de playbook de provisionamento

    Inclua tarefas como atualização, instalação de pacotes clínicos e hardening.

    Conteúdo do arquivo:
    
    ---
    - hosts: clinica
      become: yes
      tasks:
        - name: Atualizar pacotes
          apt:
            update_cache: yes
            upgrade: dist
        - name: Instalar pacote de prontuário eletrônico (exemplo: GNU Health)
          apt:
            name: gnuhealth
            state: present
        - name: Garantir firewall ativo
          ufw:
            state: enabled
            policy: deny
        - name: Permitir SSH
          ufw:
            rule: allow
            port: 22
            proto: tcp

    O que você deve ver: Playbook YAML salvo corretamente. Consulte yaml.org/spec para sintaxe.

  10. Executar o playbook

    Rode o playbook para provisionar e configurar o servidor clínico.

    ansible-playbook -i ~/inventario ~/provisiona_clinica.yml

    O que você deve ver: Saída com status de cada tarefa (ok, changed, failed).

  11. Verificar logs e estado do servidor

    Confira se as mudanças foram aplicadas no alvo.

    ssh usuario@192.168.56.20 'dpkg -l | grep gnuhealth && sudo ufw status'

    O que você deve ver: Pacote gnuhealth instalado e firewall ativo, SSH permitido.

  12. Reaplicar o playbook (idempotência)

    Execute novamente para garantir que tarefas não sejam repetidas desnecessariamente.

    ansible-playbook -i ~/inventario ~/provisiona_clinica.yml

    O que você deve ver: Tarefas reportadas como 'ok', sem mudanças desnecessárias.

Como saber que funcionou

TesteComandoCritério
SSH sem senha do controlador para o alvossh usuario@192.168.56.20 'echo ok'Saída 'ok' sem pedir senha
Pacote clínico instaladossh usuario@192.168.56.20 'dpkg -l | grep gnuhealth'Linha contendo 'gnuhealth' aparece
Firewall ativo e SSH permitidossh usuario@192.168.56.20 'sudo ufw status'Status: active; 22/tcp ALLOW
Idempotência do playbookansible-playbook -i ~/inventario ~/provisiona_clinica.ymlTarefas reportadas como 'ok' sem mudanças

Troubleshooting

SintomaCausa provávelCorreção
Erro de permissão ao rodar playbookUsuário do alvo sem sudo sem senhaAdicione o usuário ao grupo sudo e configure sudoers conforme a documentação
Falha de conexão SSHChave pública não copiada ou firewall bloqueandoReenvie a chave com ssh-copy-id e confira as regras do UFW
Pacote gnuhealth não encontradoRepositório não habilitadoAtualize apt e habilite repositórios necessários
Playbook falha por sintaxe YAMLErro de indentação ou formataçãoValide o YAML em yaml.org/spec e corrija

Segurança e hardening

  • Use chaves SSH fortes e exclusivas para automação
  • Restrinja o acesso SSH apenas ao controlador
  • Ative e configure o firewall (UFW) no alvo
  • Revise permissões sudo do usuário remoto
  • Remova serviços desnecessários do servidor clínico

Checklist final

Referências

  1. Documentação oficial do Ansible · Ansible (Red Hat) (docs.ansible.com)
  2. Especificação YAML · Yaml (yaml.org)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.