Flyway & Azure DevOps : IaC com ARM Template

higor

Higor Barbosa

Posted on June 30, 2020

Flyway & Azure DevOps : IaC com ARM Template

E chegamos ao penúltimo artigo dessa serie.

Vamos agora adicionar a criação do nosso banco Azure SQL Database também no Azure DevOps.

E para isso, lembram que um pouco antes de criar o serviço de SQL Database no Azure, tínhamos a opção de baixar o template ARM? Pois bem, utilizaremos ele agora.

Tópicos

IaC e ARM Template

Alt Text

O nosso banco ja esta no nosso pipeline, mas a nossa infraestrutura (o nosso servidor de banco de dados SQL Database) não.

E para isso, precisamos também adicionar a criação do nosso banco de dados ao nosso repositório, versionando e atualizando através de scripts.

E essa tarefa, podemos chamar de IaC, ou simplesmente, Infraestrutura como código.

Temos varias opções no mercado, como Terraform. Mas usarei um recurso do Azure, chamado ARM, Azure Resource Manager.

Adicionado ARM Template ao Repos GIT

Primeiro, vamos descompactar o arquivo que baixamos antes de criação do nosso banco SQL Database no Portal do Azure.

E encontramos esses 2 arquivos: parameters.json e template.json.

Alt Text

Vamos precisar incluir eles no nosso Azure Repos.

Para isso, vamos criar o arquivo parameters.json e adicionar nele o conteúdo do nosso arquivo da pasta descompactada com o mesmo nome.

No parâmetro administratorLoginPassword, voce precisará adicionar a senha a ser aplicada ao banco de dados.

Não é uma boa ideia adicionar senha do seu banco no seu repositório. No próximo artigo dessa serie, iremos substituir a senha por um segredo do Azure Key Vaults.

E podemos commitar ele.

Alt Text

Vamos fazer upload do nosso arquivo template.json.

Portanto, ficaremos com os 2 arquivos na nossa pasta ARM.

Alt Text

Adicionando ARM Template no nosso Release Pipeline

Vamos ir em Pipelines > Releases e editar o nosso pipeline.

E adicionar um novo Stages em Add > New Stage.

Alt Text

E novamente, vamos inserir o o template vazio em Empty Job.

Alt Text

Podemos editar o seu nome para ARM - Create DB.

Alt Text

E vamos editar o agente desse estagio.

Adicionar um nova tarefa. E procurar por ARM.

E será essa que usaremos: ARM Template Deployment.

Alt Text

Precisamos selecionar e autorizar a nossa inscrição no Azure e a nossa inscrição.

A action será Create or update resource group. Precisamos também selecionar o nosso grupo de recursos e a localização que usaremos.

E por fim, precisamos linkar o nosso template com o arquivo dentro da pasta ARM e o mesmo com o arquivo de parâmetros.

Alt Text

Podemos voltar a aba Pipelines e alterar a execucao do estagio Flyway Info & Migrate.

Alt Text

Vamos alterar o gatilho para After stage e selecionar o estágio de ARM - Create DB.

Alt Text

E ficou assim o nosso release pipeline:

Alt Text

Antes de gerar o pipeline, vamos ir no Portal do Azure e excluir o nosso servidor e banco SQL Database.

E para isso, vamos ir no nosso grupo de recursos do Azure, selecionar o nosso SQL database e Sql server e exclui-los.

Alt Text

Vamos confirmar e excluir.

Alt Text

Pronto! Não temos SQL Database no nosso grupo de recursos.

Alt Text

Agora sim, podemos salvar o nosso pipeline e criar um novo release.

Alt Text

E nosso deploy irá iniciar. Primeiro iremos criar o banco SQL Database no Azure, depois passaremos para o estágio do Flyway onde teremos a instalação, a execução do comando de informação e por fim, a migração rodando todos os scripts disponíveis.

Alt Text

E la está. Executou com sucesso como o esperado. ;)

Alt Text

No próximo artigo, iremos adicionar segredo do Azure Key Vaults no nosso Release Pipeline, e assim, iremos atribuir a senha do banco de dados ao serviço do Azure!

:)

💖 💪 🙅 🚩
higor
Higor Barbosa

Posted on June 30, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related