"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Primeiros passos com Ansible - O guia para iniciantes: série de ferramentas DevOps do dia a dia

Primeiros passos com Ansible - O guia para iniciantes: série de ferramentas DevOps do dia a dia

Publicado em 2024-11-08
Navegar:556

Getting Started with Ansible - The Beginner’s Guide : Day of days DevOps Tools Series

Bem-vindo ao dia 30 da nossa série "50 ferramentas DevOps em 50 dias"! Hoje vamos explorar o Ansible, uma das ferramentas mais essenciais do kit de ferramentas DevOps. Este blog apresentará os fundamentos do Ansible, detalhando seus principais componentes e mostrando como começar com exemplos simples. Manteremos as coisas simples, tornando este um ponto de partida perfeito para iniciantes.

O que é Ansible?

Ansible é uma ferramenta de automação de código aberto que simplifica tarefas como gerenciamento de configuração, implantação de aplicativos e orquestração. Ele foi projetado para ser simples, mas poderoso, permitindo automatizar tarefas repetitivas e gerenciar sua infraestrutura com mais eficiência.

Principais recursos:

Sem agente: O Ansible não exige a instalação de nenhum agente em sistemas remotos, o que reduz a sobrecarga.
Playbooks YAML legíveis por humanos: Ansible usa YAML (Yet Another Markup Language) para escrever playbooks, que são fáceis de ler e escrever.
Idempotente: Você pode executar o mesmo manual várias vezes sem se preocupar com alterações não intencionais.

Por que usar o Ansible?

Arquitetura sem agente: Como o Ansible não tem agente, não há necessidade de instalar nenhum software extra nos sistemas do cliente, reduzindo despesas gerais e possíveis riscos de segurança.

Sintaxe simples: Ansible usa YAML em seus playbooks, que são fáceis de ler e escrever, tornando-os acessíveis até mesmo para quem é novo na automação.

Idempotência: Ansible garante que o estado desejado seja alcançado independentemente do estado atual. Isso significa que executar um manual várias vezes não causará problemas ou ações duplicadas.

Extenso suporte à comunidade: Com uma comunidade grande e ativa, o Ansible possui diversas funções, módulos e manuais que podem ser reutilizados e personalizados para atender às suas necessidades.

Escalabilidade: Seja gerenciando alguns ou milhares de servidores, o Ansible se adapta bem, tornando-o adequado para organizações de todos os tamanhos.

Componentes principais do Ansible

Inventário: Esta é uma lista de hosts (servidores) que o Ansible gerencia. Os inventários podem ser estáticos (definidos em um arquivo) ou dinâmicos (gerados por um script).

Módulos: Módulos são os cavalos de batalha do Ansible. Eles são executados em hosts remotos para realizar tarefas como instalação de pacotes, cópia de arquivos ou gerenciamento de serviços.

Playbooks: Playbooks são a linguagem de configuração, implantação e orquestração do Ansible. Eles são escritos em YAML e descrevem uma série de tarefas a serem executadas nos hosts.

Funções: As funções permitem dividir playbooks em componentes reutilizáveis, facilitando o gerenciamento e a organização de grandes projetos.

Variáveis: Variáveis ​​são usadas para armazenar valores que podem ser reutilizados em playbooks. Eles fornecem flexibilidade e permitem que você personalize playbooks sem valores codificados.

Handlers: Handlers são tarefas especiais que só são executadas quando acionadas por outras tarefas. Eles são frequentemente usados ​​para coisas como reiniciar serviços.

Configurando o Ansible

Vamos começar instalando o Ansible em seu nó de controle. O processo de instalação é simples e varia um pouco dependendo do seu sistema operacional.

Instalando Ansible no Ubuntu/Debian

sudo apt update
sudo apt install ansible -y

Instalando Ansible no CentOS/RHEL

sudo yum install epel-release -y
sudo yum install ansible -y

Verificando a instalação
Após a instalação, você pode verificar se o Ansible está instalado corretamente executando:

ansible --version

Escrevendo seu primeiro manual do Ansible

Vamos criar um manual simples para instalar o Nginx em um servidor remoto. Começaremos definindo nosso inventário.

Etapa 1: Crie um arquivo de inventário
Crie um arquivo chamado hosts:

[webservers]
34.42.111.35
34.42.111.66

Este arquivo de inventário define um grupo chamado servidores web contendo dois servidores.

Etapa 2: Escreva o manual
A seguir, escreveremos um manual para instalar e iniciar o Nginx nesses servidores.

Crie um arquivo chamado nginx_setup.yml:

---
- name: Install Nginx on web servers
  hosts: webservers
  become: yes

  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

    - name: Start Nginx service
      service:
        name: nginx
        state: started
        enabled: true

Compreendendo o manual

nome: uma descrição legível do que o manual ou tarefa faz.
hosts: Especifica o grupo de hosts (do inventário) onde o playbook deve ser executado.
become: Indica que o Ansible deve usar privilégios elevados (como sudo).
tasks: Lista as etapas que o Ansible executará. Aqui, estamos instalando o Nginx e garantindo que o serviço seja iniciado e habilitado na inicialização.

Etapa 3: execute o manual
Para executar o playbook, execute o seguinte comando:

ansible-playbook -i hosts nginx_setup.yml

Este comando diz ao Ansible para executar as tarefas em nginx_setup.yml nos hosts definidos no arquivo de inventário de hosts.

Cenário da vida real: automatizando a instalação de pacotes

Considere um cenário em que você precisa instalar um conjunto de pacotes em vários servidores. Fazer isso manualmente seria demorado e sujeito a erros. Com Ansible, você pode automatizar essa tarefa facilmente.

Aqui está um manual simples para instalar vários pacotes:

---
- name: Install essential packages
  hosts: all
  become: yes

  tasks:
    - name: Install packages
      apt:
        name:
          - git
          - curl
          - htop
        state: present

Neste manual, o Ansible instala git, curl e htop em todos os servidores listados no inventário. O módulo apt garante que cada pacote seja instalado.

Exemplo da vida real: simplificando o gerenciamento de usuários

Imagine que você precisa criar um novo usuário em vários servidores e atribuí-los a grupos específicos. Executar manualmente esta tarefa em cada servidor seria entediante. Com o Ansible, é muito fácil.

Veja como você pode fazer isso:

---
- name: Create a new user
  hosts: all
  become: yes

  tasks:
    - name: Create user "devuser"
      user:
        name: devuser
        state: present
        groups: sudo

Este manual cria um novo usuário devuser em todos os servidores gerenciados e os adiciona ao grupo sudo.

Benefícios de usar Ansible

Consistência: Ansible garante que seus sistemas sejam configurados de forma consistente, reduzindo o risco de desvios de configuração.
Eficiência: Automatizar tarefas repetitivas libera tempo para trabalhos mais críticos.
Escalabilidade: Seja gerenciando um punhado de servidores ou milhares, o Ansible pode ser dimensionado sem esforço.
Flexibilidade: A abordagem modular do Ansible permite que você personalize e estenda sua funcionalidade conforme necessário.

Conclusão

Ansible é uma ferramenta poderosa, mas fácil de usar, que pode simplificar drasticamente o gerenciamento de sua infraestrutura. Com apenas algumas linhas de código, você pode automatizar tarefas complexas, garantindo consistência e confiabilidade em todo o seu ambiente. Esteja você configurando servidores, implantando aplicativos ou gerenciando configurações, o Ansible pode ajudá-lo a fazer isso com mais eficiência.

Amanhã, nos aprofundaremos em tópicos mais avançados do Ansible, explorando recursos que podem levar sua automação para o próximo nível. Fique atento!

? Certifique-se de me seguir no LinkedIn para obter as atualizações mais recentes: Shiivam Agnihotri

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/shivam_agnihotri/getting-started-with-ansible-the-beginners-guide-day-30-of-50-days-devops-tools-series-1iae?1 Qualquer violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3