lealdouglas / strife

Using Terraform to create resource exploratory envs for cloud data platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Strife Terraform Setup

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 projeto
  • Storage 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.

Conteúdo

Requisitos

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.

Usando repositório

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.

Estrutura do repositório

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.

Configurar service principal

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:

  1. selecione o recurso, diretorio padrao (active directory)
  2. selecione no canto esquerdo, Roles and administrators
  3. busque por "Global Administrator"
  4. clique em Add assignments
  5. busque pelo seu SPN
  6. clique em add

Custos do projeto

O projeto é criado em seu ambiente azure, todo piloto ficou em torno de: R$0,00

Sobre Projeto

Este projeto Terraform foi desenvolvido para atender o projeto final dougsll-datamaster feito por Douglas leal.

About

Using Terraform to create resource exploratory envs for cloud data platform

License:MIT License


Languages

Language:HCL 100.0%