ArmazenamentoReview.com

O que é Ansible?

Empreendimento  ◇  Software

Ansible é uma ferramenta de automação sem agente escrita em Python. Ele se conecta aos seus clientes via SSH e permite automatizar as tarefas chatas e repetitivas que você não quer fazer. Ele permite que você pegue uma tarefa realizada por um humano que pode levar uma hora para ser executada e a converta em um único comando que seja concluído em minutos. Isso melhora seu desempenho e permite que você comece a trabalhar no próximo grande projeto.

Benefícios do Ansible

O Ansible oferece muitos benefícios, vamos dedicar algum tempo para examinar alguns dos mais importantes. Vou dividir isso em seções, uma para quem não tem ou tem automação mínima e outra para quem já usa uma ferramenta de automação como Salt ou Puppet.

Novo na Automação

Se você é novo em automação, usar uma ferramenta simples pode ajudar na curva de aprendizado. Vejamos alguns motivos pelos quais você deve escolher o Ansible em vez das outras ferramentas disponíveis.

1. Sintaxe simples

Devido à maneira simples de definir tarefas do Ansible, é muito simples começar. Pegue o trecho abaixo como exemplo:

-

– hosts: todos

 tarefas:

  – nome: Instalar o Nginx

   hum:

     nome: nginx

     estado: mais recente

Uma tarefa Ansible completa, equivalente a executar `yum install nginx` em todos os seus hosts.

Você provavelmente já consegue imaginar o que está acontecendo. Está instalando a versão mais recente do servidor web de código aberto Nginx em todos os hosts definidos. Abordaremos a definição de hosts mais adiante. Como todas as tarefas criadas são em YAML, elas são fáceis de ler e de criar. Isso é fundamental ao começar a aprender uma nova ferramenta, pois permite adquirir experiência rapidamente, ao mesmo tempo que desenvolve confiança e compreensão.

2. Dê amor

Como suas automações são arquivos de texto simples, é possível armazená-los no Git (ou outro sistema de repositório de origem), onde eles têm controle de alterações e podem ser verificados e atualizados a partir de uma fonte central.

3. Ordem de Execução Simples

Como as tarefas são executadas na ordem que você definir, você não precisa se preocupar com a ordem de execução. Simplesmente defina as etapas como faria para um ser humano, e o Ansible as executará exatamente nessa ordem todas as vezes, sem ter que se preocupar em perder uma etapa.

4. Sem agente

Ter uma maneira sem agente de gerenciar seus hosts é importante, ainda mais se você ainda não tiver uma maneira de implantar um agente de maneira automatizada. Tentar iniciar um push de automação em um ambiente existente pode ser um pesadelo, especialmente se houver dezenas ou centenas de máquinas que precisam do novo agente.

Aficionado por Automação

Se você já fez alguma automação, talvez usando Bash, Python ou Powershell, pode estar se perguntando o que o Ansible traz para a mesa. Vamos dar uma olhada.

1. Orquestração Simples

Você já tentou atualizar um site usando um script bash? Digamos que você tenha um balanceador de carga da web ou proxy reverso, 5 servidores da web, um balanceador de carga de banco de dados e 2 servidores de banco de dados. Você pode gastar centenas de linhas simplesmente verificando se cada componente foi atualizado com sucesso.

Com o Ansible, você pode definir verificações de integridade, atualizações contínuas e definir seus balanceadores de carga para remover, adicionar e remover nós durante cada etapa da atualização. Você pode ver um exemplo disso na documentação oficial de entrega contínua e atualizações contínuas.

2. Idempotência

Idempotência é a propriedade de certas operações em matemática e ciência da computação em que podem ser aplicadas várias vezes sem alterar o resultado além da aplicação inicial.- Wikipedia Basicamente, o objetivo é executar seu manual uma vez para definir as coisas conforme desejado e, em seguida, continuar executando-o a cada *X* número de horas/dias/semanas para garantir que nada mudou. Se algo mudar, você deve procurar a fonte do *Desvio de configuração* em seu ambiente.

Configuração Driftis onde os servidores na infraestrutura se tornam cada vez mais diferentes com o passar do tempo.- Shadow Soft

3. Armazenamento de segredos integrado

O armazenamento de segredos integrado do Ansible, chamado Ansible Vault, permite que você armazene dados confidenciais, como senhas, chaves de API ou até mesmo chaves privadas de maneira segura, com o restante de sua base de código, no controle de origem. Isso é inédito em Bash ou Python, geralmente exigindo ferramentas de terceiros, como um cofre de senha habilitado para API.

4. Expansibilidade

O Ansible pode ser expandido facilmente para módulos Windows e Linux, bem como para se comunicar com ferramentas de terceiros. Isso significa que, se você deseja automatizar algo, é provável que já exista um módulo de comunidade que você possa usar ou crie ou adapte um módulo existente para atender às suas necessidades.

Você pode encontrar informações sobre como desenvolver seus próprios módulos com a documentação oficial ou pode conferir os módulos da comunidade do Ansible Galaxy.

Introdução ao Ansible

Instalação do Ansible

Começar é tão simples quanto instalar o Ansible em sua estação de trabalho ou servidor. Vou mostrar os comandos RedHat/CentOS, mas você pode ver outras etapas de instalação na documentação oficial.

`sudo yum instalar ansible`

É isso! Você tem um nó de controle Ansible totalmente funcional instalado e pronto para começar.

Estoque

O Ansible precisa saber com quais máquinas conversar e executar seus playbooks. Então, vamos ver como configurar um inventário básico. O arquivo de inventário padrão está disponível em `/etc/ansible/hosts` no Linux. Se você der uma olhada nesse arquivo, verá que ele está em um formato semelhante ao INI e provavelmente se parece com isto:

mail.exemplo.com

[servidores da web]

foo.exemplo.com

bar.exemplo.com

[servidores de banco de dados]

um.exemplo.com

dois.exemplo.com

três.exemplo.com

Conforme explicado na documentação, os títulos entre colchetes são nomes de grupos, que permitem classificar os sistemas em grupos arbitrários. Eu recomendaria que você levasse algum tempo e configurasse seu arquivo de inventário, pois é importante para o Ansible saber em quais hosts você deseja executar tarefas.

Criando um manual

Um playbook é uma coleção de tarefas que devem ser executadas em seus hosts. Você pode criar um playbook tão simples quanto um único arquivo com uma reprodução ou muitos arquivos com várias condicionais e importações de outros playbooks. Vamos começar com um manual simples que instala, inicia e adiciona regras de firewall para nginx em nossos servidores web. Em nosso arquivo hosts, podemos ter algo assim:

[servidores da web]

web01.exemplo.com

web02.exemplo.com

e em nosso arquivo `nginx-install.yaml`, temos o seguinte:

-

– hosts: servidores web

 tarefas:

  – nome: Instalar o Nginx

   hum:

     nome: nginx

     estado: mais recente

  – nome: Inicie o Nginx

   serviço:

     nome: nginx

     estado: iniciado

  – nome: Permitir porta 80 através do firewalld

   firewalld:

     port: 80/tcp # Como alternativa, você pode usar a sintaxe "service: http"

     permanente: sim

     estado: ativado

Visão geral do host Ansible conectando-se aos seus servidores da Web e instalando o NGINX. Para executar este playbook, simplesmente execute `ansible-playbook nginx-install.yaml` e o Ansible instalará o Nginx em qualquer host em seu grupo de servidores da web. Este é um playbook simples com uma única peça, porém, é um bom exemplo da facilidade com que o Ansible pode ser utilizado em seu ambiente.

Conclusão

Como você pode ver, o Ansible é uma ferramenta de automação muito flexível e fácil de usar que pode funcionar em qualquer ambiente. Com sua curva de aprendizado fácil e capacidade de crescer de acordo com suas necessidades, o Ansible é uma das melhores ferramentas de automação para implantação de infraestrutura em um ambiente gerenciado por DevOps completo.

-Justin Gauthier

@justinsane454

Envolva-se com a StorageReview

Newsletter | YouTube | Podcast iTunes / Spotify | Instagram | Twitter | TikTok | Feed RSS

Autor convidado