Ansible tentativas

Ansible tentativas

Neste artigo, vamos aprender sobre uma das tarefas importantes da Ansible, que é a tarefa de "repetição" que listaremos no manual para executar comandos. Vamos aprender como a tarefa de tentativa funciona em Ansible.

Repetir é uma tarefa Ansible usada para tentar executar qualquer manual problemático repetidamente. O terminal de saída Ansible mostrará os erros nessa falha. Por causa disso, às vezes é difícil entender esses problemas quando tentamos consertá -los usando Ansible. No entanto, o Ansible fornece uma opção de "repetição" que nos permite executar o comando mais de uma vez.

Aceite o cenário quando tivermos uma tarefa em nosso manual de "todos" hosts, alguns dos hosts são direcionados por causa de certas condições de tarefas que sua execução foi bem -sucedida na primeira tentativa depois que o manual foi executado. No entanto, às vezes os hosts restantes serão bem -sucedidos na segunda tentativa da tarefa. Agora, existem vários métodos em que podemos tentar resolver esse problema, mas também às vezes podemos não ter tempo ou controle do sistema para realizar isso.

Representando a tarefa nessa situação pode ser o curso de ação mais simples e eficaz. O manual será reexecionado em um estado de falha de corrida e, por padrão, continuará tentando até que gerem o resultado desejado ou pare de relatar erros. Não podemos afirmar que a opção Ansible. Assim, não podemos usar a tentativa de Ansible para tarefas para as quais não temos como prever ou estimar quanto tempo eles levariam. Portanto, isso não pode ser um substituto para o loop padrão. No entanto, evita a questão severa de um loop infinito, classificando o trabalho após um número predeterminado de tentativas.

Pré -requisitos de tarefas de repetição em Ansible

Exemplos práticos de Ansible são fornecidos nesta sessão. Assumimos que você sempre teve os seguintes pré -requisitos, se pretender acompanhar o uso da opção Ansible Rexy:

  • Antes de podermos utilizar a ferramenta Ansible e implementar a opção de nova tentativa, exigimos aplicativos relacionados à Ansible em seu sistema. Este tutorial faz uso de Ansible 2.12 ou uma versão posterior.
  • Por isso, precisamos de um controlador Ansible para executar os comandos em hosts remotos e os hosts remotos em que gostaríamos de nos concentrar para implementações.

Vamos apenas examinar a ideia da opção de tentativa em profundidade e veja como Ansible a coloca em vigor usando um exemplo.

Exemplo: Representando as tarefas 5 vezes em manuais de Ansible

Antes de implementar o exemplo, uma compreensão completa de uma variedade de tarefas contidas na ferramenta de configuração Ansible é um requisito para qualquer aspirante a mestre ou fornecedor qualificado, como um controlador Ansible para fazer alterações no dispositivo host remoto. Vamos levar o cenário em que tentamos implementar a opção de nova tentativa. Aqui está o exemplo em Ansible que vamos implementar para executar as tarefas do manual várias vezes.

Para começar a implementar os comandos, primeiro, teremos que fazer o manual usando a ferramenta Ansible. Abaixo está a declaração que iremos executar para criar o manual em Ansible.

[root@master Ansible]# Nano experimenta.yml

Depois de escrever o comando acima, as tentativas.O Playbook YML será criado e aberto em um novo terminal Ansible. No manual, sempre definimos primeiro a implementação que vamos implementar no parâmetro "nome". Em seguida, utilizaremos o parâmetro "hosts" para que possamos fornecer o endereço IP ou informações relacionadas do host remoto, através do qual vamos nos conectar. Usaremos "localhost" como servidor remoto de destino neste exemplo.

Usando o componente Ansible "Gathering Facts", coletaremos informações sobre o host local alvo. Esses dados são comumente descritos como "fatos" ou "parâmetros" no software Ansible. Ao utilizar o comando "Setup" específico no software Ansible, podemos coletar as informações do localHost. No entanto, os manuais de Ansible geralmente chamam esse parâmetro de configuração por padrão para realizar o parâmetro de fatos de coleta. Forneceremos o valor "verdadeiro" ou "falso" para coletar os dados do host local. Conforme mostrado abaixo no manual, não queremos obter as informações de localhost alvo, portanto, fornecemos um valor "falso" ao parâmetro Gather_fact.

Depois de declarar os parâmetros que serão necessários para o manual para configurar o dispositivo host local, listaremos as tarefas no manual que queremos implementar na máquina host local. Na lista de tarefas, primeiro forneceremos o nome da tarefa que vamos realizar, que é verificar a validade do arquivo presente ou não na máquina de localhost. Estamos usando o parâmetro de shell Ansible que executa os comandos do shell no dispositivo localhost.

Em Ansible, o parâmetro Shell possui um caminho padrão no qual os comandos /bin /sh executam, mas neste exemplo, demos o “LS -LST /TMP /MyProcess.Caminho pid ”, onde o controlador Ansible fez as alterações no dispositivo de localhost. Em seguida, para monitorar e salvar a saída neste parâmetro Ansible, utilizamos o parâmetro "Register".

Em seguida, usamos o parâmetro "até" usado para tentar novamente as tarefas do manual 5 vezes por 2 segundos. Para definir o intervalo, usamos o parâmetro padrão do Ansible, que é "atraso" e o número de vezes que as tarefas do manual serão executadas estão no parâmetro "Bettes" de Ansible.

Agora, vamos encerrar as tentativas.Playbook YML atingindo Ctrl+X. Agora, queremos executar o manual. Então, usaremos o comando abaixo:

[root@master Ansible]# Ansible-PlayBook Botties.yml

Teremos o resultado abaixo depois de executar o comando acima. Conforme mostrado na saída, o manual é executado 5 vezes com sucesso com um tempo de execução de 2 segundos.

Conclusão

Este artigo abordou como as funções de parâmetros de repetição do Ansible Playbook. Dominamos minuciosamente a teoria dos parâmetros de tentativa. Então, para entender melhor o conceito de tentar novamente, colocamos um exemplo em prática.