O que é Ansible?
Ansible é uma ferramenta de software que fornece automação simples, mas poderosa, para suporte de computador de plataforma cruzada. Ela é destinada principalmente a profissionais de TI, que a usam para implantação de aplicativos, atualizações em estações de trabalho e servidores, provisionamento em nuvem, gerenciamento de configuração, orquestração intra-serviço e quase tudo que um administrador de sistemas faz semanal ou diariamente. Ansible não depende do software do agente e não tem infraestrutura de segurança adicional, portanto, é fácil de implantar.
Como o Ansible envolve automação, ele requer instruções para realizar cada trabalho. Com tudo escrito em forma de script simples, é fácil fazer o controle de versão. O resultado prático disso é uma grande contribuição para o movimento da “infraestrutura como código” em TI: a ideia de que a manutenção da infraestrutura do servidor e do cliente pode e deve ser tratada da mesma forma que o desenvolvimento de software, com repositórios de auto documentação, comprovados, e soluções executáveis capazes de administrar uma organização independentemente das mudanças de equipe.
Embora o Ansible possa estar na vanguarda da automação, administração de sistemas e DevOps, ele também é útil para usuários comuns. O Ansible permite que você configure não apenas um computador, mas potencialmente toda uma rede de computadores de uma vez, e seu uso não requer habilidades de programação. As instruções escritas para o Ansible podem ser lidas por humanos. Quer você seja totalmente novo em computadores ou um especialista, os arquivos Ansible são fáceis de entender.
Como funciona o Ansible
No Ansible, existem duas categorias de computadores: o nó de controle e os nós gerenciados. O nó de controle é um computador que executa o Ansible. Deve haver pelo menos um nó de controle, embora também possa existir um nó de controle de backup. Um nó gerenciado é qualquer dispositivo gerenciado pelo nó de controle.
O Ansible funciona conectando-se a nós (clientes, servidores ou o que quer que você esteja configurando) em uma rede e, em seguida, envia um pequeno programa chamado módulo Ansible para esse nó. O Ansible executa esses módulos por SSH e os remove quando concluído. O único requisito para essa interação é que o nó de controle Ansible tenha acesso de login aos nós gerenciados. As chaves SSH são a forma mais comum de fornecer acesso, mas outras formas de autenticação também são suportadas.
O que o Ansible faz
O termo módulos Ansible parece complexo, mas a maior parte da complexidade é tratada pelo Ansible e não pelo usuário. Um módulo Ansible é escrito para ser um modelo do estado desejado de um sistema, o que significa que cada módulo define o que deve ser verdadeiro em qualquer nó gerenciado. Por exemplo, se um administrador de sistemas decidir que todas as estações de trabalho em uma organização devem ter o LibreOffice versão XZ instalado, então cabe ao módulo de empacotamento do Ansible determinar se cada nó tem o LibreOffice XZ nele. Se o Ansible encontrar um nó gerenciado com o LibreOffice XY instalado, ele detecta o sistema operacional e executa a rotina necessária para atualizá-lo para o LibreOffice XZ. Dessa forma, cada estação de trabalho em uma organização pode ser atualizada durante a noite com o software suportado pelo departamento de TI.
Porém, manter a infraestrutura envolve mais do que apenas verificar as versões do software. Quando as pessoas falam sobre o uso do Ansible, o que elas realmente estão se referindo é o uso dos módulos do Ansible, porque essas são as partes do Ansible que executam tarefas específicas. Se você precisar automatizar algo em vários computadores, dê uma olhada nos módulos do Ansible para encontrar aquele que lida com a tarefa que você precisa realizar e, em seguida, instale o Ansible para que possa configurar e chamar esse módulo. Se você for um programador, também pode escrever os seus próprios módulos personalizados para executar tarefas especializadas. Se o seu módulo é geralmente útil, você também pode enviá-lo ao projeto Ansible para inclusão para que outras pessoas possam se beneficiar do seu trabalho.
Manuais da Ansible
Embora os módulos forneçam os meios para realizar uma tarefa, a maneira como você os usa é por meio de um manual do Ansible. Um manual é um arquivo de configuração escrito em YAML que fornece instruções sobre o que precisa ser feito para colocar um nó gerenciado no estado desejado. Os manuais devem ser simples, legíveis e auto documentáveis. Eles também são idempotentes, o que significa que um manual pode ser executado em um sistema a qualquer momento sem ter um efeito negativo sobre ele. Se um manual for executado em um sistema que já está configurado corretamente e em seu estado desejado, esse sistema ainda deve ser configurado corretamente após a execução de um manual.
Um manual pode ser muito simples, como este que instala, como um usuário privilegiado, o servidor Apache HTTP em qualquer nó do grupo de servidores da web de um departamento de TI:
—
nome: servidor Apache instalado
hosts: servidores da web
tornar-se: sim
Os manuais também podem ser muito complexos, com condicionais e variáveis. No entanto, como a maior parte do trabalho real é feita por módulos Ansible, os manuais permanecem breves, legíveis e claros, embora possam orquestrar redes inteiras de nós gerenciados.
Fonte: https://opensource.com/resources/what-ansible