Este repositório contém a automação do deploy do site da Vaga Lume feito com Ansible para um servidor rodando apache.
Existe somente um script de deploy, e o que muda é o endereço onde irá ser realizada a implantação, da sua máquina local até o servidor de produção.
Essa automação foi criada para ser usada com GoCD.
É necessário instalar o Ansible no seu computador para utilizar as automações aqui definidas. Para isso, você pode seguir as instruções encontradas na documentação oficial.
O Ansible é um mecanismo de automação de TI que possui diversos usos:
- gestão da configuração dos seus servidores
- implantação automática de aplicações
- orquestração de serviços
- provisionamento em nuvem
- etc
Se você quiser testar o deploy localmente, irá precisar do Docker instalado. Para isso, siga os passos definidos na documentação oficial na sua máquina.
O Docker é um jeito de criar aplicações dentro de containers, onde todas as dependências já estão instaladas na imagem. Nós criamos uma imagem com o apache já instalado, assim não é necessário instalá-lo na sua máquina.
Fizemos uma imagem de docker com apache e ssh justamente para fazer esse deploy localmente. Ela está definida em associacao-vagalume/apache-rsync e pode ser encontrada no Docker Hub.
Preparação:
-
Baixe a imagem de docker
docker pull pevangelista/apache-rsycn
-
Crie um par de chaves ssh, caso não tenha
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
Adicione a seguinte linha no seu arquivo de hosts:
127.0.0.1 development
-
Tenha o conteúdo do site localizado em
../_site
-
Garanta que o site possua o arquivo
../_site/VERSAO.txt
Para fazer o deploy localmente, siga os seguintes passos:
-
Crie um container de docker temporário
docker run --rm -d \ -p 8080:80 -p 2222:22 \ -e SSH_PUBKEY="$(cat ~/.ssh/id_rsa.pub)" \ --name development pevangelista/apache-rsync
-
Execute o playbook ansible, onde
<VERSAO>
é o conteúdo do arquivo../_site/VERSAO.txt
GO_PIPELINE_LABEL=<VERSAO> ansible-playbook playbook_deploy.yml
-
Acesse o site em http://development:8080
Este repositório define os seguintes servidores:
- development - Um servidor local com acesso ssh na porta 2222 e
usuário
ssh_user
- acceptance - O servidor que está disponível na pipeline do Go,
acessível na porta padrão com usuário
ssh_user
- staging - O servidor de staging da Vaga Lume, com a configuração protegida por senha
- production - O servidor de produção da Vaga Lume, com a configuracão protegida por senha.
Para ter acesso a staging e produção, será necessário configurar o acesso por meio de chave diretamente.
Se nenhum inventory for definido, o ansible irá utilizar development
por padrão. Para escolher outro inventory, execute o comando acima
adicionando a opção -i inventory_<ambiente>
.