Usar Ansible para Configurar um Servidor Web Local
Você aprenderá como conectar-se a um servidor Ubuntu remoto e gerenciá-lo usando o Ansible. Vamos criar arquivos de configuração que permitem automatizar tarefas rotineiras. Como exemplo, atualizaremos o índice de pacotes e instalaremos o Git — o primeiro passo na preparação de um servidor para tarefas de desenvolvimento ou DevOps.
Se você estiver usando Windows, execute esses comandos no wsl
. Se estiver em macOS ou Linux, basta utilizar o terminal.
Instalando o Ansible
Antes de começar, certifique-se de que o Ansible está instalado em sua máquina:
sudo apt update
sudo apt install ansible -y
O primeiro comando, sudo apt update
, atualiza a lista de pacotes do sistema para que ele reconheça as versões mais recentes dos softwares disponíveis. Em seguida, sudo apt install ansible -y
instala o Ansible na sua máquina, confirmando automaticamente a instalação sem solicitar que você digite "yes".
Criando arquivos de configuração
Primeiro, é necessário definir uma lista de servidores aos quais o Ansible irá se conectar. Para isso, crie um arquivo de inventário chamado hosts.ini
:
Cole o seguinte:
hosts.ini
[ubuntu_container]
— o grupo de hosts que o Ansible irá gerenciar;
localhost
— o endereço do host (neste caso, sua máquina local executando o contêiner Docker);
ansible_port=2222
— a porta SSH para a conexão;
ansible_user=root
e ansible_password=root
— credenciais para login via SSH;
ansible_connection=ssh
— instrui o Ansible a usar SSH para executar comandos.
O arquivo hosts.ini
informa ao Ansible onde se conectar e quais parâmetros utilizar. Sem ele, um playbook não consegue localizar o servidor ou executar tarefas.
Playbook setup.yml
Em seguida, crie o script de automação, ou playbook, setup.yml
:
Cole o seguinte:
setup.yml
O arquivo setup.yml
define as tarefas que o Ansible deve executar no servidor.
-
name: Configure Ubuntu container
— título do playbook; -
hosts: ubuntu_container
— grupo de hosts dohosts.ini
; -
become: true
— executa comandos como superusuário (root
); -
tasks
— lista de ações que serão executadas em ordem.
Neste exemplo, o índice de pacotes é atualizado e o Git é instalado.
Configuração do Ansible
Por fim, configure o próprio Ansible. O arquivo ansible.cfg
personaliza o comportamento do Ansible. Crie o arquivo ansible.cfg
:
Cole o seguinte:
ansible.cfg
Neste caso, desabilitamos a verificação da chave de host SSH. Normalmente, o Ansible verifica a impressão digital do servidor para garantir uma conexão segura. Para este tutorial, isso simplifica o processo, já que estamos utilizando um container Docker temporário.
Testando a Conexão
Após criar todos os arquivos de configuração, é importante verificar se tudo está configurado corretamente. Isso garante que o Ansible consiga se conectar ao seu servidor Ubuntu remoto e executar as tarefas conforme esperado.
Ao executar este comando, o Ansible tenta se conectar ao seu contêiner Ubuntu via SSH usando as credenciais e a porta especificadas em hosts.ini
. Se tudo estiver configurado corretamente, você verá:

Agora é hora de executar o playbook de fato, já que a verificação de conectividade foi bem-sucedida e você pode ter confiança de que tudo funcionará corretamente.
Quando este comando é executado, o Ansible irá conectar ao servidor Ubuntu remoto via SSH, elevar privilégios usando become: true
e executar todas as tarefas sequencialmente. Neste exemplo, ele primeiro atualiza o índice de pacotes para que o sistema conheça as versões mais recentes dos softwares e, em seguida, instala o Git.
Após a conclusão do playbook, é possível verificar se o Git foi instalado no servidor Ubuntu. Primeiro, conecte-se ao servidor usando SSH:
Em seguida, verifique a versão do Git instalada:
Se tudo funcionou corretamente, você verá a versão do Git, confirmando que o playbook foi executado com sucesso.
1. Qual é a finalidade do arquivo hosts.ini
no Ansible?
2. No playbook, por que se utiliza become: true
?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.7
Usar Ansible para Configurar um Servidor Web Local
Deslize para mostrar o menu
Você aprenderá como conectar-se a um servidor Ubuntu remoto e gerenciá-lo usando o Ansible. Vamos criar arquivos de configuração que permitem automatizar tarefas rotineiras. Como exemplo, atualizaremos o índice de pacotes e instalaremos o Git — o primeiro passo na preparação de um servidor para tarefas de desenvolvimento ou DevOps.
Se você estiver usando Windows, execute esses comandos no wsl
. Se estiver em macOS ou Linux, basta utilizar o terminal.
Instalando o Ansible
Antes de começar, certifique-se de que o Ansible está instalado em sua máquina:
sudo apt update
sudo apt install ansible -y
O primeiro comando, sudo apt update
, atualiza a lista de pacotes do sistema para que ele reconheça as versões mais recentes dos softwares disponíveis. Em seguida, sudo apt install ansible -y
instala o Ansible na sua máquina, confirmando automaticamente a instalação sem solicitar que você digite "yes".
Criando arquivos de configuração
Primeiro, é necessário definir uma lista de servidores aos quais o Ansible irá se conectar. Para isso, crie um arquivo de inventário chamado hosts.ini
:
Cole o seguinte:
hosts.ini
[ubuntu_container]
— o grupo de hosts que o Ansible irá gerenciar;
localhost
— o endereço do host (neste caso, sua máquina local executando o contêiner Docker);
ansible_port=2222
— a porta SSH para a conexão;
ansible_user=root
e ansible_password=root
— credenciais para login via SSH;
ansible_connection=ssh
— instrui o Ansible a usar SSH para executar comandos.
O arquivo hosts.ini
informa ao Ansible onde se conectar e quais parâmetros utilizar. Sem ele, um playbook não consegue localizar o servidor ou executar tarefas.
Playbook setup.yml
Em seguida, crie o script de automação, ou playbook, setup.yml
:
Cole o seguinte:
setup.yml
O arquivo setup.yml
define as tarefas que o Ansible deve executar no servidor.
-
name: Configure Ubuntu container
— título do playbook; -
hosts: ubuntu_container
— grupo de hosts dohosts.ini
; -
become: true
— executa comandos como superusuário (root
); -
tasks
— lista de ações que serão executadas em ordem.
Neste exemplo, o índice de pacotes é atualizado e o Git é instalado.
Configuração do Ansible
Por fim, configure o próprio Ansible. O arquivo ansible.cfg
personaliza o comportamento do Ansible. Crie o arquivo ansible.cfg
:
Cole o seguinte:
ansible.cfg
Neste caso, desabilitamos a verificação da chave de host SSH. Normalmente, o Ansible verifica a impressão digital do servidor para garantir uma conexão segura. Para este tutorial, isso simplifica o processo, já que estamos utilizando um container Docker temporário.
Testando a Conexão
Após criar todos os arquivos de configuração, é importante verificar se tudo está configurado corretamente. Isso garante que o Ansible consiga se conectar ao seu servidor Ubuntu remoto e executar as tarefas conforme esperado.
Ao executar este comando, o Ansible tenta se conectar ao seu contêiner Ubuntu via SSH usando as credenciais e a porta especificadas em hosts.ini
. Se tudo estiver configurado corretamente, você verá:

Agora é hora de executar o playbook de fato, já que a verificação de conectividade foi bem-sucedida e você pode ter confiança de que tudo funcionará corretamente.
Quando este comando é executado, o Ansible irá conectar ao servidor Ubuntu remoto via SSH, elevar privilégios usando become: true
e executar todas as tarefas sequencialmente. Neste exemplo, ele primeiro atualiza o índice de pacotes para que o sistema conheça as versões mais recentes dos softwares e, em seguida, instala o Git.
Após a conclusão do playbook, é possível verificar se o Git foi instalado no servidor Ubuntu. Primeiro, conecte-se ao servidor usando SSH:
Em seguida, verifique a versão do Git instalada:
Se tudo funcionou corretamente, você verá a versão do Git, confirmando que o playbook foi executado com sucesso.
1. Qual é a finalidade do arquivo hosts.ini
no Ansible?
2. No playbook, por que se utiliza become: true
?
Obrigado pelo seu feedback!