Atualmente, estou usando o recurso CertificateDSC CertReq para gerar uma solicitação de certificado em uma configuração DSC. Eu sou muito novo no DSC, estou verificando usando uma abordagem push e meu fluxo de trabalho consiste em gerar o mof e executar Start-DscConfiguration
ou Update-DscConfiguration
depois.
Sempre que executo a configuração do DSC ou atualizo, um novo certificado está sendo solicitado à CA. Obviamente essa não é realmente a minha intenção. Como você adicionaria um bloco DSC do PowerShell que é avaliado no nó e verificaria dinamicamente sempre que um bloco de recursos precisasse ser aplicado?
A ideia é ter um bloco que verifique um certificado adequado e gere algum tipo de sinalizador que seja avaliado antes do bloco CertReq.
Em pseudo código seria semelhante ao seguinte. Fazer isso em um DSC não parece funcionar.
Configration X {
Import-DscResource -ModuleName CertificateDSC
if((Get-ChildItem Cert:\LocalMachine\My | Where $condition).count -gt 0){
CertReq psCert {
# Data
}
}
}
Então, primeiro, a ideia de que você deseja fazer uma verificação condicional antes de executar o recurso é contrária à ideia de usar o DSC de forma idempotente. Esse código é executado durante o tempo de compilação para gerar o MOF, mas está congelado nesse ponto (como você descobriu).
Eu olhei o código para este módulo DSC e a partir disso posso dizer que ele já está fazendo essa verificação para saber se deve ou não fazer uma nova solicitação.
O que você deve fazer então é apenas usar
CertReq
com os parâmetros necessários, e o módulo deve lidar com todas as condicionais.Se ainda estiver gerando solicitações duplicadas nesse ponto, edite sua pergunta para incluir esses detalhes e/ou depure a execução do DSC você mesmo .