O Terraform é uma ferramenta de infraestrutura como código (IaC) que permite automatizar a criação e a gestão de servidores e serviços na nuvem. Neste tutorial, vamos mostrar como configurar hosts virtuais (Virtual Hosts) do Apache em um servidor Ubuntu utilizando o Terraform.
Requisitos
- Servidor rodando Ubuntu 20.04 ou 22.04
- Apache instalado no servidor
- Terraform instalado na sua máquina local
- Acesso root ou usuário com privilégios sudo no servidor
Passo 1: Instalar o Apache no Servidor Ubuntu
Antes de configurar os hosts virtuais, você precisará do Apache instalado no servidor. Execute o seguinte comando para instalar o Apache no Ubuntu:
sudo apt update
sudo apt install apache2 -y
Em seguida, inicie e habilite o serviço Apache para que ele inicie automaticamente com o sistema:
sudo systemctl start apache2
sudo systemctl enable apache2
Passo 2: Criar o Arquivo Terraform
O próximo passo é configurar o Terraform para gerenciar os hosts virtuais do Apache. Crie um diretório para o seu projeto Terraform e dentro dele, um arquivo main.tf:
mkdir apache-terraform
cd apache-terraform
nano main.tf
Dentro do arquivo main.tf, adicione o seguinte conteúdo básico para definir o provisionamento do servidor usando um bloco provisioner que aplicará os templates de host virtual do Apache:
provider "local" {}
resource "local_file" "vhost_conf" {
content = <<-EOT
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName seu-site.com
ServerAlias www.seu-site.com
DocumentRoot /var/www/seu-site
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOT
filename = "/etc/apache2/sites-available/seu-site.conf"
}
resource "null_resource" "enable_vhost" {
provisioner "remote-exec" {
inline = [
"a2ensite seu-site.conf",
"systemctl reload apache2"
]
}
connection {
type = "ssh"
user = "ubuntu"
private_key = file("~/.ssh/id_rsa")
host = ""
}
}
Esse código cria um arquivo de configuração de host virtual para o Apache e o ativa usando o comando a2ensite, além de reiniciar o Apache para aplicar as mudanças.
Passo 3: Inicializar e Aplicar o Terraform
Antes de aplicar as configurações, inicialize o Terraform no diretório do projeto:
terraform init
Depois disso, você pode aplicar as configurações e provisionar o host virtual no servidor Apache:
terraform apply
O Terraform pedirá confirmação para prosseguir. Digite yes e ele criará o arquivo de configuração de host virtual no servidor Ubuntu e ativará o site.
Passo 4: Verificar o Host Virtual
Agora que o Terraform configurou e ativou o host virtual, você pode abrir o navegador e acessar o nome de domínio ou endereço IP configurado para verificar se o site está funcionando:
http://seu-site.com
Passo 5: Personalizar Múltiplos Hosts Virtuais
Se você quiser adicionar mais hosts virtuais, basta duplicar o recurso local_file e o bloco null_resource para cada domínio que deseja configurar. Lembre-se de ajustar o nome de domínio e os caminhos do arquivo conforme necessário.
Servidor VPS
Se precisar de um servidor VPS confiável para hospedar seus sites com configuração automatizada do Terraform e Apache, veja as opções disponíveis aqui.