Pular para o conteúdo
Blog
LinkedIn

Aula 3: Seu primeiro apply seguro

Por Deívid Santos · revisado em · 3 min de leitura

Tempo: ~14 min · Pré-requisito: Aula 2 funcionando

Criar os dois primeiros recursos pelo código: um grupo estático de piloto, vazio, e uma categoria de teste. Nenhum deles afeta computadores.

O grupo piloto vira o escopo de tudo o que vem depois. Assim nenhuma mudança nasce atingindo a frota inteira: o pior erro afeta zero máquinas.

Crie um segundo API role com criar, ler, atualizar e apagar só para Categories e Static Computer Groups, e um API client para ele. Guarde no Keychain com nomes diferentes:

Janela do terminal
security add-generic-password -a "$USER" -s mdm-iac-lab-jamf-write-client-id -U -w
security add-generic-password -a "$USER" -s mdm-iac-lab-jamf-write-client-secret -U -w

Amplie também a credencial de leitura com Read Static Computer Groups.

O script usa a credencial de leitura por padrão e a de escrita só com JAMF_CRED=write.

Em piloto.tf:

resource "jamfpro_static_computer_group" "piloto" {
name = "[TESTE-IaC] Piloto"
}
resource "jamfpro_category" "teste" {
name = "[TESTE-IaC] Categoria"
priority = 9
}

O prefixo [TESTE-IaC] avisa qualquer pessoa que abrir o Jamf que aquilo veio do laboratório.

Janela do terminal
../tofu-kc.sh init
../tofu-kc.sh plan -out=plano.tfplan

Esperado: Plan: 2 to add, 0 to change, 0 to destroy. Se aparecer destroy ou change em algo que você não esperava, pare.

Prove que a credencial de leitura não escreve:

Janela do terminal
../tofu-kc.sh apply plano.tfplan

Esperado: erro de permissão e nada criado.

Janela do terminal
JAMF_CRED=write ../tofu-kc.sh apply plano.tfplan

Como você passou o arquivo do plano, o OpenTofu não pergunta de novo: aplica exatamente o que foi lido. Esperado: 2 added.

Rode ../tofu-kc.sh plan. Esperado: “No changes”. O código, o estado e o Jamf estão de acordo.

Troque priority = 9 por 5 no arquivo da pasta onde você roda o tofu. Se editar o arquivo errado, o plan dirá “No changes”. Depois:

Janela do terminal
../tofu-kc.sh plan -out=plano.tfplan
JAMF_CRED=write ../tofu-kc.sh apply plano.tfplan

O plano deve mostrar 1 to change (priority: 9 -> 5).

  • O grupo e a categoria existem no Jamf.
  • O plan depois do apply diz “No changes”.
  • Você sabe explicar por que o apply usa o plano salvo.
Sintoma Causa provável
Erro de permissão no apply com a credencial de escrita Falta privilégio de Categories ou Static Computer Groups
plan falha ao ler o grupo depois de criado Faltou Read Static Computer Groups na leitura
Nome já existe Nomes de categoria e grupo são únicos no Jamf
plan mostra mudança sem você mexer Alguém alterou no console (drift)

Próxima aula: Script e política no piloto