O que é diferente / melhor sobre o DSC em relação ao script “regular”?

7

Eu assisti a um vídeo na ITPro.tv sobre DSC de configuração de estado desejado do PowerShell . Eles o introduzem e efetivamente executam um script. No entanto, esta foi sua primeira introdução (real) de scripts também, então eu não peguei a diferença entre o DSC e o script regular. Já fiz alguns roteiros regulares antes, e talvez eles simplesmente não tenham um ótimo exemplo; Parecia que um script regular poderia instalar um papel / recurso e copiar alguns arquivos muito bem. Eu não vi o benefício para DSC em comparação com apenas um script. Além de uma máquina ser capaz de pesquisar por algum tipo de mudança, que eles não cobriram na prática, apenas em teoria.

Quais são os benefícios do DSC em relação aos scripts tradicionais? por exemplo, "instalar função, copiar arquivo"?

  • Com o PowerShell, você pode se conectar a máquinas remotas e pedir que elas façam coisas, portanto, isso não é exclusivo do DSC.
  • Com o DSC, parece que você está fazendo algum tipo de compilação para fazer um arquivo mof, e então o executa a partir do shell após o script, o que parece ser uma etapa desnecessária.
  • A Visão geral do MSDN é como uma visão geral do PowerShell, e não vejo características diferenciadoras.
por YetAnotherRandomUser 15.08.2016 / 21:01

2 respostas

6

Como você disse, você pode fazer praticamente tudo que faria com o DSC, com o código direto do powershell.

Mas, o DSC é tudo sobre gerenciamento de configuração.

O gerenciamento de configuração é sobre padrões e práticas de uso de código e vários sistemas para garantir que um sistema esteja em um estado específico. Ref 1 2

Uma coisa importante sobre o gerenciamento de configurações é a idempotência. O que significa que o código que descreve seu sistema no sistema de gerenciamento de configuração será verificado e executado periodicamente em seu sistema. Muitos dos scripts básicos não são bem projetados, e farão a coisa correta na primeira vez que você usá-lo para configurar um sistema, mas na próxima vez eles irão cometer erros, duplicar coisas e assim por diante. Os sistemas de gerenciamento de configurações idealmente abstrairão uma grande parte do código de teste e verificação de estado que você precisa adicionar manualmente em um script para tornar seu script idempotente.

Outra coisa importante sobre o DSC e muitos outros sistemas de gerenciamento de configuração é sobre como tornar recursos reutilizáveis que realmente fazem o trabalho que pode ser compartilhado com qualquer pessoa e todos no mundo. Dessa forma, sua "configuração" real deve ser apenas alguns detalhes específicos específicos do seu ambiente. Isso também significa que você precisa escrever muito menos código, já que pode reutilizar as coisas que foram usadas e examinadas por muitas outras pessoas.

Eu incluí alguns links acima, mas existem muitos sites bons que você pode encontrar na Internet sobre a teoria dos sistemas de gerenciamento de configuração. A teoria geral se aplica a todos os sistemas de gerenciamento de configuração (fantoche, chef, dsc, ansible, etc). Certamente vale a pena aprender, e vale a pena usar na maioria dos ambientes.

    
por 16.08.2016 / 01:57
1

Sugiro que você dê uma olhada em link .

Eu venho fazendo devops como um lead de projeto em C # desde antes de ser chamado. Eu escrevi dezenas desses "configurar um compartilhamento" e "criar um aplicativo no IIS" e "verificar se o IIS Rewrite está instalado" tipo de scripts. Eu geralmente sou solicitado a fazer isso por alguém que pensa "É só uma linha de código para fazer X". Mas e se a coisa já existe? E se as etapas 1,3 já existirem, mas 2,4 não, ou a etapa 2 (digamos, um pool de aplicativos do IIS) não estiver configurada exatamente da mesma maneira da última vez?

Sim, o DSC exige que você nomeie todas as "partes" do script. O que parece tedioso no começo. Mas se você não nomear, o mecanismo e os provedores de DSC não poderão informar a parte do script que está demorando muito ou qual parte do script está falhando.

Se você estiver fazendo pastas, IIS, implantação de aplicativos ou recursos do Windows, é altamente recomendável investir alguns dias no aprendizado de DSC.

    
por 07.12.2017 / 16:00