PowerShell DSC e Puppet - Por que não é ou / Ou

 

Neste curso Pergunte ao administrador, Discutirei por que Puppet e DSC juntos costumam ser a melhor solução de gerenciamento de configuração em WindowsAmbientes / Linux.

Se você não estiver familiarizado com o Puppet, ele é mais ou menos equivalente ao PowerShell Desired State Configuration (DSC), uma tecnologia do PowerShell integrada às versões modernas do Windows. Tanto o Puppet quanto o DSC são ferramentas de gerenciamento de configuração que permitem aos administradores e desenvolvedores de sistema definir como os servidores devem ser configurados usando uma sintaxe declarativa.

No código padrão do PowerShell, ou Ruby no caso do Puppet, você usa a sintaxe imperativa para executar uma série de instruções para obter a configuração necessária.

  1. Instale este componente.
  2. Configure estas configurações.
  3. Se x for verdadeiro, deixe que z seja igual a y.
  4. Reinicie.

Para instalar e configurar o Active Directory em Windows Servidor usando PowerShell, você precisa saber como instalar as funções e recursos necessários e, em seguida, como configurá-los. Mas, usando a sintaxe declarativa, você indica como deseja que o servidor seja configurado. Ou como você deseja que "pareça". Você não precisa saber as etapas técnicas necessárias para alcançar o resultado desejado. Ou, como diz o Puppet, 'Modelagem em vez de script'.

  1. Certifique-se de que o Active Directory esteja presente com esses parâmetros (...)

Este é um desvio significativo de como os administradores de sistema tradicionalmente configuram Windows Servidor porque as ferramentas disponíveis para Windows não foram projetados com ambientes DevOps em mente.

Diretiva de Grupo vs. Gerenciamento de Configuração Baseada em Texto

A Diretiva de Grupo e o DSC se sobrepõem, mas resolvem problemas diferentes. Você pode construir seu servidor usando DSC. Ou seja, decidir quais funções e recursos devem ser instalados. A Diretiva de Grupo é mais adequada para gerenciar as configurações. Por exemplo, você pode optar por aplicar o modelo de Diretiva de Grupo da linha de base de segurança da Microsoft, que contém centenas de configurações recomendadas. O DSC pode ser usado para aplicar centenas de configurações de segurança, mas os manifestos necessários podem se tornar difíceis de gerenciar.

Para obter mais informações sobre os modelos de Diretiva de Grupo de linha de base de segurança da Microsoft para Windows, Ver Microsoft lança o pacote de ferramentas de conformidade de segurança 1.0 on Petri.

Os arquivos de manifesto declarativo baseado em texto que determinam como os servidores são configurados têm várias vantagens sobre a Diretiva de Grupo. O primeiro é o controle de versão e mudança. A ferramenta Advanced Group Policy Management (AGPM) fornece controle de versão para a Política de Grupo, mas está disponível apenas para clientes da Microsoft com Software Assurance. AGPM faz parte do Microsoft Desktop Optimization Pack (MDOP). Mas os arquivos de texto podem ser verificados em qualquer solução de controle de origem, como o GitHub. Você não está preso a usar uma ferramenta que não está amplamente disponível e apenas oferece suporte Windows.

Por falar nisso, os arquivos de texto não requerem ferramentas especiais para editá-los. Ao contrário dos Objetos de Política de Grupo (GPOs), que foram projetados para gerenciar Windows por meio de APIs, os arquivos de texto podem ser criados, editados e verificados por qualquer pessoa que tenha permissão para lê-los. Os arquivos de texto são especialmente adequados aos princípios do DevOps, que incluem definir tudo em texto simples e que todo o código deve ser documentado e com controle de versão. Você não pode criar scripts de configurações de Política de Grupo, elas precisam ser definidas manualmente na interface do usuário. E há outros argumentos no debate DSC vs Política de Grupo, como o DSC é mais fácil de estender e é idempotente por natureza.

Usando Puppet e DSC Juntos

Se DSC e Puppet são muito semelhantes, por que você usaria os dois? Em cenários onde Linux e Windows coexistir, o Puppet é a escolha lógica porque é mais maduro do que o DSC e tem muito suporte na comunidade de desenvolvedores. Além da capacidade de gerenciar Linux e Windows, O Puppet pode gerenciar dispositivos de rede, como switches Cisco e infraestrutura em nuvem, como máquinas virtuais do Azure. O Puppet tem um módulo DSC do PowerShell compatível que foi rigorosamente testado e permite que você use o Puppet para configurar Windows Servidor usando DSC. Embora o PowerShell DSC possa ser usado para gerenciar o Linux, ele não é respaldado pela enorme biblioteca de módulos disponíveis para o Puppet.

O painel do console Puppet (Crédito de imagem: Russell Smith)

O Painel de Controle do Puppet Console (Crédito de Imagem: Russell Smith)

Quando você faz o download do módulo DSC do PowerShell para o Puppet, você obtém todos os recursos do DSC atualmente disponíveis na Galeria do PowerShell no momento em que o módulo é enviado. Portanto, ao usar Puppet com DSC, você não precisa pegar recursos DSC individualmente e instalá-los em cada cliente. Isso é particularmente benéfico para servidores que não têm acesso à Internet.

O DSC é ótimo, mas o Puppet é uma solução de gerenciamento de configuração mais madura. Ao contrário do DSC, o Puppet fornece um painel que exibe uma visão explícita da conformidade de todo o seu ambiente. Há também a capacidade de gerar relatórios. O recurso DSCEA (DSC Environment Analyzer) da Microsoft cria relatórios de conformidade para o Power BI ou no formato HTML, mas é um complemento que precisa ser configurado separadamente.

Os manifestos de marionetes são mais concisos e inteligentes que os do DSC. Dependências podem ser indicadas usando setas de encadeamento e recursos atualizados quando um recurso dependente é alterado. Os manifestos do Puppet podem ser validados antes de serem executados e as alterações simuladas antes de serem aplicados.

O PowerShell DSC não mantém um registro das alterações feitas nos nós. As informações são registradas sobre o status da operação geral no log de eventos em cada execução, que você pode retirar manualmente. Os resultados podem ser armazenados em um servidor pull da DSC se você escolher usar um. Se você quiser ver as alterações históricas feitas nos nós, o Puppet é uma solução melhor. Você pode visualizar as alterações históricas no console do Puppet com informações detalhadas sobre as alterações feitas e os valores 'alterados de' e 'alterados para'. Se um recurso do DSC não for executado, o erro será exibido no console. Você precisará usar ferramentas de DSC para entender por que ele está falhando, mas você será alertado de que algo está errado. O Puppet também tem melhor gerenciamento central de configurações, funções e permissões.

Se você está no processo de decidir como gerenciar sua infraestrutura, o Puppet deve estar no seu radar. Mesmo que você não precise gerenciar o Linux ou outras infraestruturas que não sejam da Microsoft, o Puppet oferece muitas vantagens sobre uma solução exclusiva do DSC. E se você já estiver familiarizado com o PowerShell DSC, aprender a escrever Manifestos Puppet não é uma grande curva de aprendizado.

A Microsoft tem uma boa introdução ao tópico no Channel 9: Better Together: Configuração do Estado Desejado do PowerShell (DSC) e Puppet. Verifique se você gostaria de saber mais sobre como o PowerShell DSC e o Puppet podem ser usados ​​juntos. Nas próximas semanas, estarei cobrindo alguns dos princípios básicos de como usar o Puppet para gerenciar Windows Servidor em Petri.

O posto PowerShell DSC e Puppet - Por que não é ou / Ou apareceu pela primeira vez em Petri.