Aula 2: Preparar o ambiente
Por Deívid Santos · revisado em · 3 min de leitura
Tempo: ~12 min · Pré-requisito: Aula 1 e uma instância Jamf de laboratório
O que você vai fazer
Seção intitulada “O que você vai fazer”- Instalar o OpenTofu.
- Criar uma credencial só de leitura no Jamf.
- Guardar a credencial no Keychain, sem arquivo e sem histórico.
- Rodar
init,validate,plane provar que a autenticação funciona.
1. Instalar o OpenTofu
Seção intitulada “1. Instalar o OpenTofu”brew updatebrew install opentofutofu -versionO OpenTofu é um fork aberto do Terraform. Os comandos são os mesmos, só que o executável se chama tofu.
2. Credencial de leitura no Jamf
Seção intitulada “2. Credencial de leitura no Jamf”Em Settings → System → API roles and clients (confirme o nome do menu na sua versão):
- Crie um API role só com privilégios de leitura, mais Read Categories para o teste.
- Crie um API client com esse role. Guarde o Client ID e o Client Secret (o secret costuma aparecer uma única vez).
- Defina Access Token Lifetime de 3600 segundos.
3. Guardar no Keychain
Seção intitulada “3. Guardar no Keychain”Com -w no final o macOS pede o valor, em vez de ele aparecer na linha de comando e no histórico:
security add-generic-password -a "$USER" -s mdm-iac-lab-jamf-url -U -wsecurity add-generic-password -a "$USER" -s mdm-iac-lab-jamf-client-id -U -wsecurity add-generic-password -a "$USER" -s mdm-iac-lab-jamf-client-secret -U -wA URL vai com https:// e sem barra no final. O script tofu-kc.sh do repositório lê esses três itens e chama o tofu.
4. Os arquivos e o primeiro plan
Seção intitulada “4. Os arquivos e o primeiro plan”Copie provider.tf e variables.tf da pasta exemplos/jamf/00-conectar/ para uma pasta de trabalho fora do repositório:
terraform { required_providers { jamfpro = { source = "deploymenttheory/jamfpro" version = "~> 0.42.0" } }}
provider "jamfpro" { jamfpro_instance_fqdn = var.jamf_url auth_method = "oauth2" client_id = var.jamf_client_id client_secret = var.jamf_client_secret}../tofu-kc.sh init../tofu-kc.sh validate../tofu-kc.sh planO plan vai dizer “No changes”, mas isso não prova a autenticação: sem nenhum recurso na configuração, o provider nem chega a falar com o Jamf.
5. Provar que autentica
Seção intitulada “5. Provar que autentica”Crie verifica.tf lendo uma categoria que já exista:
data "jamfpro_category" "teste" { name = "NOME-EXATO-DE-UMA-CATEGORIA-EXISTENTE"}Rode ../tofu-kc.sh plan. O esperado:
data.jamfpro_category.teste: Read complete after 0s [id=...]No changes. Your infrastructure matches the configuration.Apague o verifica.tf depois.
Checkpoint
Seção intitulada “Checkpoint”-
tofu -versionmostra a versão. - O
plancomverifica.tftermina em segundos comRead complete. - Nenhum segredo apareceu em arquivo ou no histórico do terminal.
Se der erro
Seção intitulada “Se der erro”| Sintoma | Causa provável |
|---|---|
401 Unauthorized em ~10 s |
Client ID ou Secret errado. A mensagem é a mesma para os dois |
unsupported protocol scheme "" |
URL sem https:// |
Still reading... por minutos |
A categoria não existe. Confira o nome |
No category assigned não funciona |
É rótulo da interface, não uma categoria consultável |
Próxima aula: Seu primeiro apply seguro