Esse repositório contém o deploy de uma aplicação, com terraform, além de gerenciamento de configurações via ansible
- Instalação do terraform (linux)
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
- Caso esteja no linux mint, substitua o trecho
$(lsb_release -cs)
pelo valor deUBUNTU_CODENAME
na saída decat /etc/os-release
, como mostrado aqui, ou referencie-se ao trecho abaixo.
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(sed 's/UBUNTU_CODENAME=//;t;d' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
- Obtenção de um token pessoal de acesso da digital ocean.
- Criação de uma chave ssh para acesso via ansible e adicionar na Digital Ocean.
ssh-keygen
cat ~/.ssh/digital_oceans.pub
- Instalação do ansible
python3 -m venv ./.venv
source ./.venv/bin/activate
pip install ansible
- Criação dos arquivos prod.auto.tfvars e inventory.ini como os exemplos em example.tfvars e example.ini.
Aqui vai ser separado em duas etapas em vista de ser necessário pegar o IP público do Droplet. Além disso, crie um app no spotify, e coloque suas credenciais no inventory.ini. Para o Telegram, envie uma mensagem para @BotFather para registrar o bot e receber o token de autenticação, para depois colocar essa credencial no inventory.ini. Também crie uma conta em Amplitude, vá em configurações e copie a chave para seu projeto e coloque essa credencial no inventory.ini.
cd infra
terraform init
terraform apply
cd ..
source ./.venv/bin/activate
cd infra
# destruir os serviços caso não seja mais necessário
# terraform destroy
ansible-playbook -i inventory.ini install_requirements.yaml
ansible-playbook -i inventory.ini setup_spotify_analytics.yaml
ansible-playbook -i inventory.ini run_spotify_analytics.yaml
ansible-playbook -i inventory.ini run_telegram_bot.yaml
Esse projeto cria máquina virtual na digital ocean, fique a vontade para utilizar o free tier e testar o projeto.
A ideia principal do projeto é integrar o template do telegram com os dados do spotify para poder enviar mensagens a respeito de músicas, playlists, entre outras informações através do bot. Os principais pontos que não permitiram finalizar esta integração no tempo planejado para o final do projeto estão na geração do token do spotify de forma automatizada (não foi possível a implementação feita aqui) que exige um mais complexidade e; mesmo prosseguindo de forma manual, há o erro para obtenção de algumas informações da API do spotify.
No entanto, fique à vontade para continuar esse projeto e integrar os dois repositórios base desse projeto: dbt-spotify e telegram-bot.