fbpx

Nesse artigo irei apresentar um modelo de IaC focada em WordPress na DigitalOcean. O objetivo é automatizar desde a criação do droplet, configuração de DNS e também implementação dos serviços para que nosso site WordPress seja configurado.

Requisitos

  • Terraform baixado na máquina local
  • Credenciais API DigitalOcean

Link Download do Terraform: https://www.terraform.io/downloads.html

Configurando Stack: Hospedagem na DigitalOcean

Apesar de nossa Stack possuir todo um modelo de automação, ainda assim é necessário configurar alguns arquivos para que ele reconheça seu domínio, senhas do banco de dados e isso falaremos mais tarde.

Se você pretende realizar o deploy diretamente do seu computador, continue lendo esse artigo. Caso queira aprender realizar o deploy diretamente pelo GitHub Actions confira o vídeo no final da página.

Clonando a Stack / Download do projeto

Para fazer o download do projeto em arquivo .zip basta acessar a URL abaixo:

https://github.com/alejunio/terraform-ansible-wordpress-digitalocean/archive/refs/heads/main.zip

Caso tenha acesso a um terminal com o git instalado na máquina, basta executar o comando abaixo:

git clone https://github.com/alejunio/terraform-ansible-wordpress-digitalocean.git projeto

Configurando Variáveis Terraform

Acesse o diretório onde está armazenado os arquivos do nosso projeto, através do último comando criamos a pasta projeto.

Uma vez que você logou/entrou no diretório do projeto, verá diversos arquivos, mas não se assuste! O que iremos editar é o variable.tf ;

// Token de acesso via API - DIGITAL OCEAN
variable "do_token" {
  description = "API KEY"
  default     = "insira-aqui"
}

// Habilitando ou Desabilitando Backups / True para habilitar
variable "do_backups" {
  description = "Backups"
  default     = "false"
}

// Dominio DNS
variable "dns_domain" {
  default     = "exemplo.com"
}

Você deve inserir o seu domínio na variável dns_domain , e o token de API da DigitalOcean na variável do_token.

Caso queira habilitar o backup automático do servidor, altere a diretiva default =”false” para default=”true” na variável do_backups.

Feito isso, temos 50% feito.

Configurando Variáveis Ansible

Você também deve editar o arquivo de variáveis dentro da pasta ansible. O caminho para o arquivo é:  /projeto/ansible/vars/vars.yml

# Var - MySQL
db_user: user
db_user_password: 654321
db_name: db-default
mysql_root_password: senharoot

# Var - Nginx e Site
dominio_site: exemplo.com.br
diretorio_site: /var/www/{{ dominio_site }}/public_html
email: [email protected]

# Var - SSL
diretorio_ssl: /etc/letsencrypt/{{ dominio_site }}

Edite todas as variáveis do MySQL, domínio do seu site e email. Assim que ajustar isso, podemos executar nossa Stack.

Configurando Chave SSH

Vamos aproveitar e também configurar nossa chave SSH, que inclusive servirá não só para o terraform conectar no nosso Droplet para instalar os serviços do WordPress como também teremos nossa chave para acesso SSH no servidor.

Você deve gerar um par de chaves SSH e armazenar no diretório ssh do seu projeto, tanto a pública quanto a privada. Pois o terraform vai utilizar tanto a pública quanto a privada para se conectar e também organizar sua futura conexão via SSH no droplet.

Site: https://www.ssh.com/ssh/putty/windows/puttygen/

ssh 0101

Abra o arquivo main.tf e corrija o nome da chave pública, digite o nome da chave que você salvou na sua máquina.

ssh 0102

E para finalizar, abra o arquivo server-configure.tf , e troque o nome também da chave privada para o nome da chave privada que você salvou.

terrraform 10112

Uma vez que configurou todos os passos anteriores, já podemos lançar nossa stack.

Deploy da Stack

Agora que já temos nossos arquivos configurados, então podemos dar início ao deploy do projeto para que nosso servidor wordpress seja criado.

Abra um terminal via shell ou até mesmo o CMD do Windows, e acesse a pasta do projeto onde está armazenado os arquivos. Assim que realizar isso, diretamente pelo terminal execute o comando abaixo responsável por baixar todos os plugins da nossa stack:

terraform init

E em seguida execute o comando abaixo para que a implantação comece propriamente dito.

terraform apply -auto-approve 

Ao final do processo, você verá uma mensagem como essa abaixo e já poderá acessar seu site para dar início a instalação básica do WordPress:

terrraform 1011

 

Conclusão: Stack Terraform Hospedagem WordPress DigitalOcean (IaC)

Esse modelo IaC para hospedagem WordPress pode ser utilizado tanto em ambiente de desenvolvimento quanto em produção, e ao longo do tempo irei realizar novos ajustes.

Links

 

Click to rate this post!
[Total: 1 Average: 5]

Escreva um comentário