Tutorial do Ansible - Aprenda a escrever manuais do Ansible



Neste blog do Tutorial do Ansible, você aprenderá como escrever playbooks do Ansible, comandos adhoc e realizar práticas para implantar o Nginx em sua máquina host.

Tutorial Ansible

Espero que você tenha acessado meu blog anterior para aprender e as terminologias mais utilizadas do Ansible. Caso você não tenha feito isso, verifique-o para que você possa obter uma melhor compreensão deste tutorial do Ansible.Você também deve saber que o Ansible é uma parte crucial da como uma ferramenta para gerenciamento de configuração, implantação e orquestração.

Deixe-me dar uma visão geral deste ‘Tutorial Ansible’:





Tutorial do Manual do Ansible | Treinamento DevOps | Edureka

Tutorial do Ansible - Escrevendo manuais do Ansible

Os manuais em Ansible são escritos no formato YAML. É uma linguagem de serialização de dados legível. É comumente usado para arquivos de configuração. Ele também pode ser usado em muitos aplicativos onde os dados estão sendo armazenados.



Para o Ansible, quase todo arquivo YAML começa com uma lista. Cada item da lista é uma lista de pares de chave / valor, comumente chamada de “hash” ou “dicionário”. Portanto, precisamos saber como escrever listas e dicionários em YAML.

Todos os membros de uma lista são linhas que começam no mesmo nível de recuo começando com um “-” (traço e espaço). Estruturas de dados mais complicadas são possíveis, como listas de dicionários ou dicionários mistos cujos valores são listas ou uma combinação de ambos.

por exemplo. Para obter uma lista de departamentos em edureka:



departamentos: - marketing - vendas - soluções - redação de conteúdo - suporte - produto

Agora, deixe-me dar um exemplo de um dicionário:

-EUA -continente: América do Norte -capital: Washington DC -população: 319 milhões

Hosts e usuários:

Para cada jogo em um manual, você pode escolher quais máquinas em sua infraestrutura visar e qual usuário remoto concluir as tarefas. Para incluir hosts no inventário Ansible, usaremos os endereços IP das máquinas host.

Geralmente, os hosts são uma lista de um ou mais grupos ou padrões de host, separados por dois pontos. O usuário remoto é apenas o nome da conta do usuário.

Variáveis:

O Ansible usa variáveis ​​que são definidas anteriormente para permitir mais flexibilidade em manuais e funções. Eles podem ser usados ​​para percorrer um conjunto de valores fornecidos, acessar várias informações como o nome do host de um sistema e substituir certas strings em modelos por valores específicos.

O Ansible já define um rico conjunto de variáveis, individuais para cada sistema. Sempre que o Ansible for executado em um sistema, todos os fatos e informações sobre o sistema são reunidos e definidos como variáveis.

Mas há um regra para nomear variáveis. Os nomes das variáveis ​​devem ser letras, números e sublinhados. As variáveis ​​sempre devem começar com uma letra. Por exemplo. wamp_21, port5 são nomes de variáveis ​​válidos, enquanto 01_port, _server são inválidos.

Tarefas:

As tarefas permitem que você divida pedaços da política de configuração em arquivos menores. A tarefa inclui puxar de outros arquivos. As tarefas no Ansible têm praticamente o significado em inglês.

Ex: Instalar, atualizar etc.

Manipuladores:

Os manipuladores são como tarefas regulares em um manual do Ansible, mas só são executados se a Tarefa contiver uma diretiva de notificação e também indicar que algo mudou. Por exemplo, se um arquivo de configuração for alterado, a tarefa que faz referência ao arquivo de configuração pode notificar um manipulador de reinicialização do serviço.

Deixe-me dar um exemplo de um manual que iniciará o programa do servidor Apache httpd:

----hospedeiros: servidores web de quem: http_port: 80 max_clients: 200 remote_user: raiz tarefas: - nome: certifique-se de que o apache está na versão mais recente yum: nome = httpd estado = mais recente - nome: escreva o arquivo de configuração do apache modelo: src = / srv / httpd.j2 dest = / etc / httpd.conf avisar: - reinicie o apache - nome: verifique se o apache está em execução (e habilite-o na inicialização) serviço: nome = httpd estado = iniciado habilitado = sim manipuladores: - nome: reinicie o apache serviço: nome = httpd estado = reiniciado

Espero que o exemplo o relacione a todas as descrições dos componentes do manual que mencionei acima. Se ainda não está claro para você, não se preocupe, todas as suas dúvidas serão esclarecidas na parte posterior deste blog.

Isso é tudo sobre manuais. Os manuais que serão escritos por você. Mas o Ansible também oferece uma ampla variedade de módulos, que você pode usar.

Tutorial Ansible - Módulos

Módulos em Ansible são idempotentes. Do ponto de vista do serviço RESTful, para que uma operação (ou chamada de serviço) seja idempotente, os clientes podem fazer a mesma chamada repetidamente enquanto produzem o mesmo resultado. Em outras palavras, fazer várias solicitações idênticas tem o mesmo efeito que fazer uma única solicitação.

Existem diferentes tipos de módulos no Ansible

  • Módulos principais
  • módulos extras

Módulos principais

Esses são módulos que a equipe principal da Ansible mantém e sempre serão fornecidos com a própria Ansible. Eles também receberão prioridade um pouco mais alta para todas as solicitações do que nos repositórios “extras”.

def __init __ (self)

A fonte desses módulos é hospedada por Ansible no GitHub no Ansible-modules-core.

Módulos Extras

Esses módulos são fornecidos atualmente com o Ansible, mas podem ser enviados separadamente no futuro. Eles também são mantidos principalmente pela comunidade Ansible. Módulos não essenciais ainda são totalmente utilizáveis, mas podem receber taxas de resposta um pouco mais baixas para problemas e solicitações de pull.

Módulos “extras” populares podem ser promovidos a módulos principais com o tempo.

A fonte para esses módulos é hospedada por Ansible no GitHub em Ansible-modules-extras.

Por exemplo: um dos módulos extras nos Módulos de Gerenciamento Remoto é o módulo ipmi_power, que é um gerenciador de energia para as máquinas remotas. Requer python 2.6 ou posterior e pyghmi para ser executado.

Você pode usar este módulo escrevendo um comando ad hoc como o que escrevi abaixo:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Tutorial Ansible - valores de retorno

Os módulos Ansible normalmente retornam uma estrutura de dados que pode ser registrada em uma variável ou vista diretamente na saída do programa Ansible. Cada módulo pode, opcionalmente, documentar seus próprios valores de retorno exclusivos.

Alguns exemplos de valores de retorno são:

  • alterado: retorna com um valor booleano sempre que a tarefa faz qualquer alteração.
  • falhou: retorna um valor booleano, se a tarefa falhar
  • msg: retorna uma string com uma mensagem genérica retransmitida ao usuário.

Tutorial Ansible - Comandos AdHoc

Os comandos adhoc são comandos simples de uma linha para realizar alguma ação. A execução de módulos com comandos Ansible são comandos ad hoc.

Por exemplo:

ansible host -m netscaler -a 'nsc_host = nsc.example.com usuário = apiuser senha = apipass' 

O comando adhoc acima usa o módulo netscaler para desabilitar o servidor. Existem centenas de módulos disponíveis no Ansible, de onde você pode consultar e escrever comandos ad hoc.

Bem, chega de todas as explicações teóricas, deixe-me explicar a você Ansible com algumas mãos.

Tutorial Ansible - Prático

Vou escrever um manual para instalar o Nginx em meu nó / máquina host.

Vamos começar :)

Passo 1: Conecte-se aos seus hosts usando SSH. Para isso, você precisa gerar uma chave SSH pública.

Use o comando abaixo:

ssh-keygen

Gerar chave Ssh - Tutorial Ansible - Edureka

Como você pode ver no instantâneo acima, o comando ssh-keygen gerou uma chave SSH pública.

Passo 2: Sua próxima tarefa é copiar a chave SSH pública em seus hosts. Para fazer isso, use o comando abaixo:

goto command c ++

ssh-copy-id -i root @

O instantâneo acima mostra a chave SSH sendo copiada para os hosts.

Etapa 3: Liste os endereços IP de seus hosts / nós em seu inventário.

Use o seguinte comando:

vi / etc / ansible / hosts

Isso abrirá um editor vi onde você pode listar os endereços IP de seus hosts. Este agora é seu inventário.

Passo 4: Vamos fazer ping para garantir que uma conexão foi estabelecida.

O instantâneo acima confirma que a conexão foi feita entre a máquina de controle e o host.

Etapa 5: Vamos agora escrever um manual para instalar o Nginx na máquina host. Você pode escrever seu manual no editor vi. Para isso, basta criar sua cartilha, usando o comando:

vi

O instantâneo abaixo mostra meu manual para instalar o Nginx escrito no formato YAML.

As tarefas de um manual são definidas em YAML como uma lista de dicionários e executadas de cima para baixo. Se tivermos vários hosts, cada tarefa será tentada para cada host antes de passar para o próximo. Cada tarefa é definida como um dicionário que pode ter várias chaves, como “nome” ou “sudo” que significam o nome da tarefa e se ela requer privilégios de sudo.

Uma variável porta do servidor está definido que escuta na porta TCP 8080 para solicitações recebidas.

Aqui, a primeira tarefa é obter o pacote necessário para a instalação do Nginx e depois instalá-lo.Internamente, o Ansible verificará se o diretório existe e o criará se não existir, caso contrário, não fará nada.

A próxima tarefa é configurar o Nginx.No Nginx, os contextos contêm detalhes de configuração.

Aqui, o modelo é um arquivo que você pode implantar em hosts. No entanto, os arquivos de modelo também incluem algumas variáveis ​​de referência que são extraídas de variáveis ​​definidas como parte de um manual do Ansible ou de fatos coletados dos hosts. Fatos contendo os detalhes da configuração estão sendo retirados de um diretório de origem e copiados para um diretório de destino.

Os manipuladores aqui definem a ação a ser executada somente na notificação de tarefas ou mudanças de estado. Neste manual, definimos, notificar: reiniciar o manipulador Nginx que reiniciará o Nginx assim que os arquivos e modelos forem copiados para os hosts.

Agora, salve o arquivo e saia.

Etapa 6: Agora vamos executar este manual, usando o comando abaixo:

ansible-playbook .yml

Podemos ver na imagem acima que nossa tarefa é executar o Nginx sendo instalado.

Etapa 7: Vamos verificar se o Nginx está instalado na minha máquina host. Use o comando abaixo:

ps waux | grep nginx

Você pode ver na captura de tela acima, que diferentes IDs de processo 3555 e 103316 estão sendo executados, o que garante que o Nginx seja executado em suas máquinas host.

Parabéns! Você implantou com êxito o Nginx em seu host usando os manuais da Ansible. Espero que você tenha gostado de ler este blog do Tutorial do Ansible. Por favor, deixe-me saber se você tiver alguma dúvida na seção de comentários abaixo.

Se você encontrou este “ Tutorial Ansible ' relevante, Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso Edureka DevOps Certification Training ajuda os alunos a ganhar experiência em vários processos e ferramentas DevOps, como Puppet, Jenkins, Ansible, Nagios e Git, para automatizar várias etapas no SDLC.