Puppet (software) - Puppet (software)
| Desenvolvedor (s) | Fantoche |
|---|---|
| lançamento inicial | 2005 |
| Versão estável | 7.10.0 / 16 de agosto de 2021
|
| Repositório | |
| Escrito em | C ++ e Clojure de 4.0, Ruby |
| Sistema operacional | Linux , semelhante ao Unix , Microsoft Windows |
| Modelo | |
| Licença | Puppet de código aberto: Apache para> 2.7.0, GPL para versões anteriores. Puppet Enterprise: proprietária |
| Local na rede Internet | fantoche |
Na computação , o Puppet é uma ferramenta de gerenciamento de configuração de software que inclui sua própria linguagem declarativa para descrever a configuração do sistema . É uma solução orientada por modelo que requer conhecimento de programação limitado para ser usada.
A Puppet é produzida pela Puppet, Inc, fundada por Luke Kanies em 2005. O produto principal da Puppet, a Puppet Enterprise, é uma versão com suporte comercial de seu produto de código aberto. O software de automação da Puppet usa a linguagem declarativa da Puppet para gerenciar vários estágios do ciclo de vida da infraestrutura de TI , incluindo o provisionamento , patching , configuração e gerenciamento de sistema operacional e componentes de aplicativos em data centers corporativos e infraestruturas em nuvem .
O Puppet usa um modelo de núcleo aberto ; sua versão de software livre foi lançada sob a versão 2 da GNU General Public License (GPL) até a versão 2.7.0, e versões posteriores usam a Licença Apache , enquanto a Puppet Enterprise usa uma licença proprietária.
Construído como um software de plataforma cruzada , o Puppet e o Puppet Enterprise operam em vários sistemas semelhantes ao Unix (incluindo Linux , assim como Solaris , BSD , Mac OS X , AIX , HP-UX ) e tem suporte para Microsoft Windows . O próprio Puppet é escrito em Ruby , enquanto o Facter é escrito em C ++ e o Puppet Server e o Puppet DB são escritos em Clojure .
Projeto
O Puppet é projetado para gerenciar a configuração de sistemas tipo Unix e Microsoft Windows de forma declarativa. O usuário descreve os recursos do sistema e seu estado, usando a linguagem declarativa do Puppet ou uma Ruby DSL ( linguagem de domínio específico ). Essas informações são armazenadas em arquivos chamados "Manifestos de fantoches". O Puppet descobre as informações do sistema por meio de um utilitário chamado Facter e compila os manifestos do Puppet em um catálogo específico do sistema contendo recursos e dependências de recursos, que são aplicados aos sistemas de destino. Quaisquer ações realizadas pelo Puppet são então relatadas.
O Puppet consiste em uma linguagem declarativa customizada para descrever a configuração do sistema, que pode ser aplicada diretamente no sistema ou compilada em um catálogo e distribuída ao sistema de destino via paradigma cliente-servidor (usando uma API REST ), e o agente usa o sistema provedores específicos para impor o recurso especificado nos manifestos. A camada de abstração de recursos permite que os administradores descrevam a configuração em termos de alto nível, como usuários, serviços e pacotes, sem a necessidade de especificar comandos específicos do sistema operacional (como rpm, yum, apt).
O Puppet é orientado a modelos , exigindo conhecimento de programação limitado para ser usado.
O Puppet vem em duas versões, Puppet Enterprise e Open Source Puppet. Além de fornecer funcionalidades do Open Source Puppet, o Puppet Enterprise também fornece GUI , API e ferramentas de linha de comando para gerenciamento de nós.
Arquitetura
O Puppet geralmente segue a arquitetura cliente-servidor . O cliente é conhecido como agente e o servidor é conhecido como mestre. Para teste e configuração simples, ele também pode ser usado como um aplicativo autônomo executado a partir da linha de comando.
O Puppet Server é instalado em um ou mais servidores e o Puppet Agent é instalado em todas as máquinas que o usuário deseja gerenciar. Os agentes Puppet comunicam-se com o servidor e buscam instruções de configuração. O Agente então aplica a configuração no sistema e envia um relatório de status ao servidor. Os dispositivos podem executar o Puppet Agent como um daemon , que pode ser acionado periodicamente como um cron job ou pode ser executado manualmente sempre que necessário.
A linguagem de programação Puppet é uma linguagem declarativa que descreve o estado de um sistema de computador em termos de "recursos", que representam a rede subjacente e as construções do sistema operacional. O usuário reúne recursos em manifestos que descrevem o estado desejado do sistema. Esses manifestos são armazenados no servidor e compilados em instruções de configuração para agentes mediante solicitação.
Sintaxe do recurso Puppet:
type { 'title':
attribute => value
}
Recurso de exemplo que representa um usuário Unix :
user { 'harry':
ensure => present,
uid => '1000',
shell => '/bin/bash',
home => '/var/tmp'
}
O Puppet permite que os usuários configurem sistemas de forma independente de plataforma, representando os conceitos do sistema operacional como dados estruturados. Em vez de especificar os comandos exatos para executar uma ação do sistema, o usuário cria um recurso, que o Puppet então traduz em instruções específicas do sistema que são enviadas para a máquina que está sendo configurada. Por exemplo, se um usuário deseja instalar um pacote em três nós diferentes, cada um executando um sistema operacional diferente, ele pode simplesmente declarar um recurso, e o Puppet determinará quais comandos precisam ser executados com base nos dados obtidos do Facter, um programa que coleta dados sobre o sistema em que está sendo executado, incluindo seu sistema operacional, endereço IP e algumas informações de hardware. Os provedores no nó usam fatos do Facter e outros detalhes do sistema para traduzir os tipos de recursos no catálogo em instruções de máquina que irão realmente configurar o nó.
Uma corrida de bonecos normal tem os seguintes estágios:
- Um agente envia fatos do Facter para o mestre.
- O Puppet constrói um gráfico da lista de recursos e suas interdependências, representando a ordem em que precisam ser configurados, para cada cliente. O mestre envia o catálogo apropriado para cada nó do agente.
- O estado real do sistema é então configurado de acordo com o estado desejado descrito no arquivo de manifesto. Se o sistema já estiver no estado desejado, o Puppet não fará nenhuma alteração, tornando as transações idempotentes .
- Por fim, o agente envia um relatório ao mestre, detalhando quais alterações foram feitas e os erros ocorridos.
Fornecedor
| Modelo | Privado |
|---|---|
| Indústria | Software de computador |
| Fundado | 2005 |
| Quartel general | Portland, Oregon , EUA |
Pessoas chave |
Luke Kanies (fundador) , Yvonne Wassenaar (CEO) , Andrew Shafer |
| Produtos | Puppet, Puppet Enterprise e Puppet Forge |
| Local na rede Internet | fantoche |
O fornecedor da Puppet, Puppet, Inc, é uma empresa privada de software de automação de tecnologia da informação (TI) com sede em Portland, Oregon .
Em 2005, a Puppet foi fundada pelo ex-CEO Luke Kanies. Em 29 de janeiro de 2019, Yvonne Wassenaar substituiu Sanjay Mirchandani como CEO. Wassenaar ocupou cargos importantes de liderança na Airware, New Relic e VMware.
Em fevereiro de 2011, a Puppet lançou seu primeiro produto comercial, a Puppet Enterprise, construída com base no código-fonte aberto e fornecendo aos usuários comerciais uma usabilidade aprimorada, bem como alguns componentes comerciais. Em setembro de 2011, a empresa lançou o Puppet Enterprise 2.0, que introduziu a integração com o MCollective, adquirido pela Puppet em 2010, bem como provisionamento para máquinas virtuais diretamente no Amazon EC2 e VMware . Em junho de 2013, a Puppet lançou o Puppet Enterprise 3.0, que apresenta um mecanismo de orquestração reescrito que facilitará a implementação automatizada de alterações em vários sites e nuvens.
A Puppet adquiriu a infraestrutura de automação da Distelli em setembro de 2017. A Puppet mudou a marca do Distelli's VM Dashboard (um produto de integração / entrega contínua ) como Puppet Pipelines para aplicativos e K8S Dashboard como Puppet Pipelines para contêineres. Os produtos foram disponibilizados em geral em outubro de 2017.
A Puppet lançou a Puppet Discovery, uma ferramenta para descobrir e manipular recursos em redes híbridas, em maio de 2018. É o terceiro produto corporativo autônomo da Puppet.
Em junho de 2018, a Puppet arrecadou US $ 42 milhões para um total de US $ 150 milhões em financiamento. A rodada foi liderada pela Cisco e incluiu Kleiner Perkins, True Ventures, EDBI e VMware.
A Puppet é parceira e possui integrações de tecnologia com VMware , Amazon Web Services , Cisco , OpenStack , Microsoft Azure , Eucalyptus , Rightscale e Zenoss.