O que é o Ansible?
Ansible® é um mecanismo open source de automação. Ele ajuda a automatizar o provisionamento, o gerenciamento de configurações, a implantação de aplicações, a orquestração e muitos outros processos de TI.
É possível usar o Ansible para instalar software, automatizar tarefas do dia a dia, provisionar componentes de infraestrutura e rede, melhorar a segurança e a conformidade, aplicar patches em sistemas e orquestrar fluxos de trabalho complexos.
O Red Hat® Ansible Automation Platform foi desenvolvido com os elementos fundamentais da versão comunitária do Ansible. No entanto, nossa solução oferece suporte empresarial por todo o ciclo de vida do software e inclui funcionalidades projetadas para auxiliar as empresas a padronizar, operacionalizar e escalar a automação.
Neste artigo, explicamos os princípios básicos por trás do Ansible da comunidade e do Red Hat Ansible Automation Platform.
Como o Ansible funciona?
Módulos
O Ansible se conecta aos nós (ou hosts) e envia a eles pequenos programas chamados módulos. Os nós são os endpoints de destino (servidores, dispositivos de rede ou qualquer computador) que você quer gerenciar com o Ansible. Os módulos são utilizados para realizar tarefas de automação no Ansible. Esses programas foram desenvolvidos para serem modelos de recursos do estado desejado do sistema. Em seguida, o Ansible executa os módulos e os remove ao terminar.
Sem eles, você dependeria de comandos ad hoc e scripts para realizar suas tarefas. Você pode usar os módulos integrados do Ansible para automatizar tarefas ou escrever os seus próprios módulos novos. Os módulos do Ansible podem ser escritos em qualquer linguagem que retorne JSON, como Ruby, Python ou bash. Os módulos de automação do Windows podem ser escritos até mesmo em Powershell.
Automação sem agentes
O Ansible é uma ferramenta sem agentes, ou seja, não requer instalação de software para gerenciamento dos nós. Ele acessa seu inventário e lê as informações sobre quais máquinas você deseja gerenciar. O Ansible tem um arquivo de inventário padrão, mas você pode criar o seu próprio arquivo e definir quais servidores quer que sejam gerenciados.
Ele usa o protocolo SSH para se conectar aos servidores e executar as tarefas. Por padrão, o Ansible usa chaves SSH com o ssh-agent e seu nome de usuário atual para se conectar a máquinas remotas. Não é preciso ter login de raiz. Acesse com qualquer usuário e execute os comandos su ou sudo.
Após se conectar, o Ansible transfere os módulos exigidos pelo comando ou pelo Ansible Playbook para serem executados na(s) máquina(s) remota(s). Ele usa templates YAML legíveis para os usuários programarem a automação de tarefas repetitivas sem precisar aprender uma linguagem de programação avançada.
Como utilizar o Ansible para comandos ad-hoc
Você também pode usar o Ansible para executar comandos ad-hoc, automatizando uma única tarefa em um ou mais nós gerenciados. Para isso, execute um comando ou chame um módulo usando a linha de comando. Nesse caso, nenhum playbook é usado e os comandos ad-hoc não são reutilizáveis. Essa é uma opção viável para tarefas pontuais. Já para tarefas frequentes ou complexas, é necessário usar um Ansible Playbook.
Ansible Playbooks
Os Ansible Playbooks são usados para orquestrar processos de TI. Um playbook é um arquivo YAML que usa uma extensão .yml ou .yaml contendo uma ou mais plays. Ele é usado para definir o estado desejado de um sistema. Um módulo do Ansible, por sua vez, é um script autônomo que pode ser utilizado dentro do Ansible Playbook.
As plays consistem em um conjunto ordenado de tarefas a serem executadas em hosts selecionados no arquivo de inventário do Ansible. As tarefas são os componentes da play que chamam os módulos do Ansible. Em uma play, as tarefas são executadas na ordem em que são escritas.
Quando o Ansible é executado, ele consegue controlar o estado do sistema. Se examinar o sistema e concluir que a descrição do playbook é incompatível com o estado real do sistema, o Ansible fará as mudanças necessárias para que o sistema corresponda ao playbook.
O Ansible inclui um modo de verificação que permite a validação de playbooks e comandos ad-hoc antes de realizar mudanças de estado em um sistema. Essa função mostra o que o Ansible faria, mas sem efetivamente mudar nada. No Ansible, os manipuladoressó são utilizados para executar uma tarefa específica após uma modificação no sistema. Eles são disparados pelas tarefas e executados uma vez, no final de todas as outras plays do playbook.
As variáveis permitem alterar como os playbooks são executados para gerenciar diferenças entre sistemas, como versões de pacotes ou caminhos de arquivos. Com o Ansible, você pode executar playbooks em sistemas diferentes com um único comando. As variáveis dão conta das variações entre os sistemas. Elas podem ser definidas nos playbooks, no inventário, em arquivos ou funções reutilizáveis ou na linha de comando. Elas seguem a precedência de variáveis, que define a ordem em que uma substituirá a outra.
Ansible Roles são funções que formam um tipo especial de playbook portátil e totalmente autossuficiente, com grupos de tarefas, variáveis, templates de configuração e outros arquivos complementares que são necessários para concluir uma orquestração complexa. Uma coleção pode conter múltiplas funções. Isso facilita o compartilhamento de conteúdo via automation hub e Ansible Galaxy.
As coleções são um formato utilizado para distribuir conteúdo do Ansible. Elas podem incluir playbooks, funções, módulos, plug-ins e documentação agrupados em um pacote. Assim, criadores podem compartilhar e usar outros conteúdos de automação com mais facilidade. Essas coleções são classificadas por domínio de conteúdo e exigem menos preparação prévia para encontrar e montar diferentes funções e módulos.
O Ansible Content Collections funciona da mesma forma, mas foi desenvolvido especificamente para que usuários do Ansible Automation Platform acelerem a automação com conteúdo pronto criado pela Red Hat e nossos parceiros certificados. Essas coleções, que incluem Red Hat Ansible Certified Content e conteúdo validado do Ansible, foram desenvolvidas e testadas com a colaboração de parceiros para termos certeza de que são confiáveis, que priorizam a segurança e são adequadas ao uso empresarial.
Comparativo entre o Ansible e o Red Hat Ansible Automation Platform
Você pode usar, fazer download e modificar o Ansible de forma livre e gratuita. Esse é um projeto que se fortalece com a experiência e a inteligência de seus milhares de colaboradores. A distribuição comunitária do Ansible contém um conjunto avançado de ferramentas de linha de comando com suporte na maioria dos sistemas operacionais que têm o Python instalado. Alguns deles são: Red Hat Enterprise Linux®, Debian, Ubuntu, MacOS, FreeBSD e Microsoft Windows.
O Ansible Automation Platform combina mais de uma dúzia de projetos upstream em uma solução empresarial unificada e com segurança fortalecida. Ele aproveita os componentes básicos do Ansible comunitário para criar uma experiência de automação de ponta a ponta, voltada a equipes multifuncionais. Além disso, oferece uma experiência pronta para uso às equipes de desenvolvimento, engenharia e operações de automação.
Quer obter mais informações sobre as diferenças entre o Ansible e o Red Hat Ansible Automation Platform?
Aprenda a usar o Ansible
Ansible Basics: Automation Technical Overview
Esta série de vídeos sob demanda sobre o Ansible apresenta seu gerenciamento de configuração e automação, provisionamento, implantação e gerenciamento da infraestrutura computacional em ambientes físicos, virtuais e de nuvem.
Red Hat Enterprise Linux Automation with Ansible
Este curso ensinará a automatizar tarefas administrativas do sistema Linux® com a versão mais recente do Red Hat® Ansible Automation Platform. Você aprenderá as técnicas necessárias para usar o Ansible Automation Platform na automação de provisionamento, da configuração, da implantação de aplicações e da orquestração.
Encontre recursos de aprendizado
Conheça os materiais de aprendizado e as ferramentas desenvolvidas para ajudar você a usar o Ansible Automation Platform. Tudo está organizado de acordo com as tarefas a serem concluídas. Esses recursos contêm orientações sobre opções de implantação, instalação, otimização do uso das funcionalidades e casos de uso para novos desafios de automação.
Obtenha experiência hands-on com laboratórios interativos
Os cenários interativos disponibilizam um ambiente pré-configurado do Ansible Automation Platform executado diretamente no navegador. Assim, você aprende como automatizar variados casos de uso de forma individualizada.
IA generativa do jeito Ansible
A Red Hat e a IBM em parceria criaram o Red Hat Ansible Lightspeed with IBM watsonx Code Assistant, um serviço de IA generativa que ajuda equipes a aprender, criar, adotar e manter o conteúdo de automação de forma mais eficiente. Basta fazer uma solicitação de tarefa em linguagem simples e o Ansible Lightspeed interage com os modelos de fundação do IBM watsonx para gerar recomendações de código que você pode usar para criar Ansible Playbooks.
Como usar o Ansible Automation Platform?
Provisionamento
Você pode usar os Ansible Playbooks para descrever o estado desejado da infraestrutura. Depois, configure o Ansible Automation Platform para fazer o provisionamento. Assim, você provisiona os mesmos ambientes sempre da mesma maneira. Essa prática é útil para construir a infraestrutura inteira de um ambiente de TI, desde a criação de novas instâncias em máquinas físicas, virtuais ou em nuvem até a disponibilização de novos serviços, aplicações, hosts de processamento ou outros recursos. Tudo com apenas um fluxo de trabalho.
Gerenciamento de configuração
Ao automatizar o gerenciamento de configurações, você pode agilizar as alterações e implantações, minimizar os erros humanos e conferir previsibilidade e escalabilidade ao gerenciamento do sistema. Manter sistemas computacionais, servidores e programas de software em um estado desejado consistente é o ideal para reduzir os riscos de violações de segurança, degradação de serviços e até mesmo interrupções. E as equipes de TI gastam menos tempo com a aplicação manual de patches e atualizações, podendo se dedicarem mais a projetos de grande impacto.
Automação de rede
A automação de rede usa lógica programável para gerenciar recursos e serviços de rede. Assim, as equipes de operações de rede (NetOps) podem configurar, escalar, proteger e integrar infraestruturas de rede e serviços de aplicação mais rápido do que se essas tarefas fossem executadas manualmente.
Implantação de aplicações
Com a automação da implantação de aplicações, você usa processos coordenados para mover o software entre os ambientes de teste e produção. Isso acelera o ciclo de entrega do software e torna suas aplicações em produção mais confiáveis. Esse tipo de automação é essencial para viabilizar a adoção de práticas de DevOps e gerenciar pipelines de CI/CD.
Automação da segurança
A automação da segurança integra processos, aplicações e infraestrutura de segurança em um único fluxo de trabalho. Ela torna as operações de segurança (SecOps) mais eficientes e reduz inconsistências e erros que levam a violações de segurança e outras ameaças. Com o Ansible Automation Platform, as equipes de segurança podem configurar uma sequência de tarefas que compartilham inventários, playbooks ou permissões para automatizar por completo as investigações e correções.
Orquestração
A automação de uma única tarefa gera benefícios limitados. Por isso, uma solução de automação, como o Ansible Automation Platform, ajuda você a configurar e automatizar de forma fácil fluxos de trabalhos que incluem várias etapas coordenadas entre diversos ambientes distintos, como infraestrutura, dispositivos de rede e ferramentas de segurança. A orquestração também melhora a comunicação entre as diferentes equipes de TI.
Impulsione sua TI com a automação como código
O Ansible Automation Platform costuma ser usado na automação de tarefas de infraestrutura como código (IaC) como a criação, o provisionamento e a implantação da infraestrutura. No entanto, ele também pode ser utilizado para automatizar processos ao longo de todo o ciclo de vida operacional. O Ansible Automation Platform permite que as organizações estendam as práticas de IaC para implementar as abordagens de operação como código e política como código. Uma plataforma de automação unificada com capacidades orientadas por eventos, permite que as organizações estendam as práticas de IaC para implementar as abordagens de Ops como Código e Política como Código.
Por que escolher a Red Hat para a automação?
O Red Hat Ansible Automation Platform oferece todas as ferramentas necessárias para implementar a automação na empresa inteira, incluindo uma solução orientada por eventos, playbooks e analytics. Com ele, você pode centralizar e controlar a infraestrutura de TI usando um dashboard gráfico, controle de acesso baseado em função e muitas outras funcionalidades que reduzem a complexidade operacional.
Com uma subscrição da Red Hat, você tem acesso a conteúdo certificado do nosso robusto ecossistema de parceiros, serviços de gerenciamento hospedados e suporte técnico durante todo o ciclo de vida para que suas equipes criem, gerenciem e escalem a automação por toda a empresa. Além disso, você recebe conhecimento especializado, adquirido por meio do nosso sucesso entre milhares de clientes.
As empresas precisam não apenas da habilidade de criar automação com facilidade, mas também de ser capazes de compartilhar e reutilizar a automação entre projetos e equipes com o nível certo de governança e controle. Com o Ansible Automation Platform, você pode implantar mais rápido novas aplicações e serviços, gerenciar a infraestrutura de TI com mais eficiência e aumentar a produtividade no desenvolvimento de aplicações.
Os recursos integrados do Red Hat Ansible Automation Platform oferecem um acelerador pronto para uso. É o padrão que muitos de nossos fornecedores e parceiros usam para escrever scripts e instalar, configurar e manter suas tecnologias.