Strife é um projeto Terraform que implanta recursos necessários para explorar um ambiente de plataforma de dados na azure. Seu objetivo principal está associado ao projeto final dougsll-datamaster, no qual tem como objetivo entregar uma plataforma de dados simplificada para uso eficiente. Serão implantados os recursos abaixo:
Resource Group
- Grupo de recurso do projetoStorage account Gen2 - Raw
- Storage account para incluir os arquivos de entrada.Workspace Databricks
- Workspace para explorar os dados e ambiente.Account Databricks
- unity catalog e usuarios sincronizados na workspace.Metastore Databricks
- Metastore para gestao do unity catalog associado com a workspace criada.Storage Account Gen2 - Layers
- Storage account para uso das camadas: bronze, silver e gold.
- Requisitos
- Usando repositório
- Estrutura do repositório
- Configurar service principal
- Custos do projeto
- Sobre Projeto
Para executar o terraform, é necessário ter uma conta
na azure com apenas uma subscricao
ativa, além disso, é importante ter um service principal
, usuário de servico, para se autenticacao no uso das actions, az login
.
Com isso, Informe as variaveis de ambiente:
ARM_TENANT_ID
- Tenant da subscricao.ARM_SUBSCRIPTION_ID
- Subscricao no qual os recursos serao criados.ARM_CLIENT_ID
- ID da aplicacao do service principal principal.ARM_CLIENT_SECRET
- Secret da aplicacao do service principal principal.
Consulte como configurar service principal para criar seu usuário de aplicacao.
Existem duas maneiras de usar este repositório:
- Use repos template final dougsll-datamaster, no qual utiliza desse repositório para criar o ambiente exploratório.
- Reutilize módulos deste repositório como referência para seu projeto individuall.
O repositório está organizado da seguinte forma:
lakehouse
- Implementacao dos recursos base para criar o ambiente de exploratório de dados na azure.lakehouse\modules
- Criacao de usuário e grupo no aad.azureadb-uc
- Configuracao do unity catalog e sincronizacao dos usuarios aad para account databricks.azureadb-uc\modules
- Configuracao do metastore e external object do unity catalog.cicd-pipelines
- Action para implementar terraform em seu ambiente azure.
Utilize o comando az ad sp create-for-rbac -n spnstrifedtm --role Contributor --scopes /subscriptions/00000000-0000-0000-0000-000000000000
para configurar um usuário de servico na subscricao desejada. Altere 00000000-0000-0000-0000-000000000000 pelo ID da sua subscricao, ao executar o comando, copie o output em seu bloco de notas. Use appId para ARM_SUBSCRIPTION_ID; Use password para ARM_CLIENT_SECRET. Saiba mais: az-ad-sp-create-for-rbac
IMPORTANTE: para conseguir configurar unity catalog e criar usuarios/grupos no aad, o SPN criado precisa ser Global Administrator, para isso:
- selecione o recurso, diretorio padrao (active directory)
- selecione no canto esquerdo, Roles and administrators
- busque por "Global Administrator"
- clique em Add assignments
- busque pelo seu SPN
- clique em add
O projeto é criado em seu ambiente azure, todo piloto ficou em torno de: R$0,00
Este projeto Terraform foi desenvolvido para atender o projeto final dougsll-datamaster feito por Douglas leal.