Projeto de provisionamento e gerenciamento de instâncias da DigitalOcean através de ferramentas de Infra as a Code
-
Criação de instância (droplet) com acesso via ssh
-
Provisionamento de softwares de segurança (fail2ban, ufw)
-
Provisionamento de docker
O projeto foi desenhado para uso em uma máquina linux com os seguintes softwares instalados:
- Terraform v0.12.18, ou superior;
- Ansible 2.5.1, ou superior;
- git version 2.17.1, ou superior;
Instruções para instalação desses softwares podem ser encontradas AQUI, AQUI e AQUI.
Além disso, crie um conta na Digital Ocean. Caso deseje, use meu link.
Passo 1: Crie um API token na DigitalOcean e salve-o.
Passo 2: Clone e acesse o diretório raiz do projeto.
git clone https://github.com/adelmofilho/Dirty-Deeds-Done-Dirt-Cheap.git
cd Dirty-Deeds-Done-Dirt-Cheap/
Passo 3: Execute o shell script setup.sh
para criar uma chave ssh (exclusiva do projeto) e o arquivo keys.tfvars
, onde você deve inserir o API token criado.
sh setup.sh
vim terraform/env/keys.tfvars
Passo 4: Altere as variáveis de interesse no arquivo project.tfvars
.
vim terraform/env/project.tfvars
Passo 5: Crie sua nova instância executando o shell script create.sh
.
sh create.sh
Durante a criação da instância você será questionado a conectar à instância para executar os playbook em ansible
Are you sure you want to continue connecting (yes/no)?
Responda com yes
e siga apertando enter
.
Nos futuros releases isso não será mais necessário.
Passo 6: Acesse sua nova instância via ssh, execurando o shell script connect.sh
.
sh connect.sh
Passo 7: Caso deseje destruir a instância e a chave ssh salva no DigitalOcean, execute o shell script destroy.sh
sh destroy.sh
Por quê utilizar a DigitalOcean e não outros provedores de cloud como AWS, GCP, Azure?
Menor Preço.