Ir para seção

Ansible x Puppet: o que você precisa saber

Copiar URL

O Ansible e o Puppet são ferramentas open source de automação de TI criadas pela comunidade. Ambos simplificam as operações de TI e o trabalho do DevOps automatizando tarefas rotineiras. Isso inclui a configuração e o provisionamento de sistemas, a implantação de softwares e o gerenciamento de atualizações em uma grande variedade de dispositivos de endpoint ou servidores.

O Ansible é conhecido pela facilidade de uso, graças à sua abordagem mais flexível e sem agente. A ferramenta não exige a instalação de softwares extras nos destinos que serão automatizados. Em comparação, as ferramentas open source Puppet Enterprise e Puppet costumam adotar uma abordagem baseada em agente, que exige a instalação de software em cada máquina. O Ansible e o Puppet têm abordagens diferentes com relação à própria automação. O Ansible utiliza uma linguagem legível nos arquivos de configuração e na automação de procedimentos (definição das etapas que serão executadas em ordem). Por outro lado, o Puppet usa uma linguagem específica do domínio (requer conhecimento sobre a linguagem de programação Ruby) e a automação declarativa (definição do estado desejado).

Neste artigo, você vai descobrir todas as semelhanças e as diferenças entre os dois.

Onde o Ansible e o Puppet se encaixam no cenário geral das ferramentas de automação de TI? O Ansible, Puppet, Salt e Chef são quatro das ferramentas de automação de TI open source mais usadas. Todas essas quatro ferramentas estão disponíveis em versões empresariais, vendidas por diferentes empresas:

  • O Red Hat® Ansible® Automation Platform tem o suporte da Red Hat.
  • O Puppet Enterprise, Puppet Bolt e outras soluções têm o suporte da Perforce.
  • O VMware Aria Automation (Salt) tem o suporte da VMware.
  • O Chef Enterprise Automation Stack tem o suporte da Progress.

Ansible

O Ansible é uma aplicação de software para a automação de TI. Ele é open source, baseado em linha de comando e escrito em Python. Com o Ansible, você configura sistemas, implanta softwares e orquestra fluxos de trabalho avançados para dar suporte à implementação de aplicações, atualizações de sistema e muito mais. O Red Hat Ansible Automation Platform é uma solução disponível por subscrição e baseada no Ansible, com inúmeras funcionalidades empresariais.

Os pontos fortes do Ansible vêm da comunidade. Seu principal repositório no GitHub conta com milhares de colaboradores, sendo que dezenas de milhares de outros repositórios também dependem dele (dados do último trimestre de 2022). Há uma famosa conferência de usuários da ferramenta, a AnsibleFest, que acontece todo ano, além dos encontros Ansible Meetups que são realizados com frequência ao redor do mundo. Essa comunidade empolgada de usuários se traduz em um grande pool de conhecimento sobre o Ansible, com os colaboradores mantendo a ferramenta integrada a outros projetos de software muito usados. Os usuários do Ansible têm acesso a centenas de módulos e plugins que ajudam a ampliar os recursos da ferramenta.

O Ansible foi criado pensando na simplicidade e facilidade de uso. Ele também prioriza a segurança e a confiabilidade, com o mínimo de componentes variáveis. O Ansible usa o OpenSSH no transporte (com outros transportes e modos de pull como alternativa) e uma linguagem legível (YAML) nos Ansible Playbooks. Os playbooks são criados para acelerar o início dos trabalhos sem exigir um grande volume de treinamentos.

O Ansible usa os conceitos de um nó de controle (onde ele é executado) e de nós gerenciados (os endpoints que são automatizados). Isso pode incluir servidores Linux® ou Windows, dispositivos de rede e muitas outras plataformas bare-metal, virtuais, de nuvem pública e em containers. Como o Ansible não tem agente, ele pode se comunicar com uma grande quantidade de endpoints sem exigir a instalação de uma aplicação ou serviço no nó gerenciado. Por exemplo, vários roteadores e switches de rede são sistemas fechados que muitas vezes não aceitam a instalação de agentes de software neles. 

O Ansible usa uma abordagem de programação procedimental (ou crucial), que tenta preservar a configuração de uma infraestrutura de TI definindo as etapas para alcançar um estado desejado.

Puppet

O Puppet é uma aplicação open source de automação de TI escrita em Ruby. Ele é oferecido como uma série de opções de solução, incluindo o Puppet Enterprise. Uma das principais vantagens do Puppet é a escalabilidade. Ele adota uma abordagem baseada em modelos com a execução imperativa de tarefas e foi criado para automatizar infraestruturas híbridas em larga escala.

O Puppet conta com uma comunidade open source ativa, mas tem menos colaboradores e projetos que dependem dele em comparação com o Ansible (de acordo com os insights do GitHub do último trimestre de 2022). As contribuições para o repositório principal da ferramenta diminuíram drasticamente.

O Puppet também foi criado para funcionar diferente do Ansible. Normalmente, o Puppet é executado como uma solução baseada em agente e exige um software extra em todos os dispositivos que ele gerencia. Ainda assim, a ferramenta também inclui recursos sem agente.

O Puppet segue o conceito da programação declarativa, ou seja, o usuário define o estado desejado das máquinas que serão gerenciadas. Ele usa linguagens específicas do domínio (DSLs) na definição dessas configurações. Depois, o Puppet automatiza as etapas necessárias para colocar os sistemas nos estados desejados. Para isso, é usado um servidor primário (onde ficam armazenados os estados definidos) e um agente do Puppet (executado no sistema que você especifica).

Arquitetura baseada em agente: descreve um modelo de automação e infraestrutura que exige a execução de componentes de software específicos (chamados de agentes) no inventário que será gerenciado. Você precisa instalar o agente e todas as dependências dele em cada nó de destino, o que exige mais regras e verificações de segurança. Essas exigências podem ser um problema na hora de automatizar objetos em que o agente está indisponível ou não pode ser executado. Além disso, as organizações também precisam cuidar do agente como parte do ciclo de vida do suporte à manutenção.

Arquitetura sem agente: usada pelo Ansible, descreve uma maneira de automatizar e gerenciar dispositivos de TI sem precisar instalar agentes nos ambientes gerenciados. O software de controle é vinculado a máquinas remotas por meio de conexões SSH seguras e padrão. Além disso, o gerenciamento dessas máquinas começa sem um processo de configuração demorado. Com essa arquitetura, você não precisa manter um sistema de implantação de agentes depois de realizar o provisionamento e a configuração.

A programação declarativa é um método de escrever códigos para descrever o resultado desejado do programa, em vez de detalhar como fazê-lo. O foco é o estado final definido por meio de uma linguagem declarativa, e não comandos e etapas específicos necessários para chegar lá. 

A programação procedimental, ou imperativa, é um método de escrever códigos para oferecer ao computador uma lista de instruções (um guia detalhado) para a conclusão de uma tarefa. O foco é o processo, e não o estado final. Para a sua linguagem de automação, o Ansible usa YAML, uma linguagem de serialização de dados legível. A sintaxe YAML é interpretada e executada de maneira processual, o que significa que o fluxo de trabalho de automação é executado na sequência em que foi gravado.

Para escolher uma solução de automação, você precisa considerar não só as funcionalidades disponíveis nos softwares atuais, mas também o panorama em longo prazo da plataforma. O Ansible se destaca por sua comunidade open source altamente ativa e pelo suporte empresarial da Red Hat.

As organizações também costumam usar várias soluções de automação. O Ansible pode ser conectado a um amplo ecossistema de integrações e usado com várias outras ferramentas de gerenciamento de configurações e automação, assim como um orquestrador de automações. É possível usar o Ansible para automatizar sistemas em hiperescaladores de nuvem pública, como a Amazon Web Services (AWS), o Microsoft Azure, o Google Cloud Platform e muito mais.

Em comparação com o Puppet, o Ansible é a opção ideal para os usuários que podem reutilizar as especialidades e conhecimentos existentes, além de priorizar a facilidade de uso e uma solução de automação sem agente. O Ansible também conta com uma ampla comunidade de colaboradores, é muito adotado e bastante reconhecido por sua capacidade de integração com outras ferramentas.

Tendo como base o open source, o Red Hat Ansible Automation Platform é uma solução reforçada, testada e disponível por subscrições pagas que oferece suporte ao ciclo de vida completo das organizações. A base dele é o projeto upstream Ansible, que se beneficia da experiência e inteligência dos seus milhares de colaboradores no mundo todo. 

O Ansible Automation Platform inclui vários componentes upstream, mais de 130 Red Hat Ansible Certified Content Collections de mais de 60 parceiros e ferramentas de retorno sobre o investimento (ROI) como serviço que orientam a instalação, a configuração e o suporte da automação na sua organização. A solução cria uma experiência de automação completa voltada a equipes multifuncionais, além de oferecer uma experiência pronta para uso às equipes de desenvolvimento, engenharia e operações de automação.

As funcionalidades do Red Hat Ansible Automation Platform, como o Red Hat Insights e automation analytics, oferecem informações acessíveis sobre o desempenho da sua automação, viabilizando a medição do impacto e o monitoramento ou a resolução de problemas com maior precisão. Com a automation mesh, você pode escalar a capacidade de controle e execução de maneira independente, disponibilizando a automação mais próxima aos endpoints necessários, com pouco ou nenhum downtime. Assim, você tem uma experiência de automação consistente em diversos ambientes, incluindo data center, nuvem e locais de edge.

Como uma solução sem agente e fácil de usar para a automação da TI, o Ansible sai na frente dos concorrentes graças à sua simplicidade e sua sólida comunidade de usuários.

Leia mais

Artigo

Noções básicas do Ansible

O Ansible automatiza processos de TI como provisionamento e gerenciamento de configuração. Conheça as noções básicas do Ansible com esta introdução aos principais conceitos.

Artigo

O que é gerenciamento de processos de negócios?

Gerenciamento de processos de negócios (BPM) é a prática de modelar, analisar e otimizar processos de ponta a ponta para alcançar os objetivos estratégicos.

Artigo

Por que escolher a Red Hat para a automação?

O Red Hat Ansible Automation Platform oferece todas as ferramentas necessárias para compartilhar a automação entre as equipes e implementá-la por toda a empresa.

Leia mais sobre automação

Soluções Red Hat

Os consultores estratégicos da Red Hat fornecem uma visão geral da sua organização, analisam os desafios e ajudam a superá-los com soluções abrangentes e econômicas.

Uma plataforma com suporte completo para implementar a automação em escala, de ponta a ponta.

Conteúdo adicional

Treinamentos Red Hat

Treinamento gratuito

Ansible Essentials: Simplicity in Automation Technical Overview

Treinamento gratuito

Red Hat Ansible Automation for SAP