Ansible regex_search para filtrar dados

Ansible regex_search para filtrar dados

Hoje, vamos descobrir outro filtro da ferramenta Ansible, que é o filtro de pesquisa regex. Descobriremos como as funções de pesquisa regex da Ansible. Também exploraremos como a pesquisa regex pode ser útil ao usar o Ansible para encontrar uma string ou personagem correspondente no manual Ansible.

Em Ansible, Reg-ex significa expressão regular e a pesquisa significa encontrar algo. Portanto, o filtro regex_search em Ansible é um tipo de varredura complexa que busca sequências específicas, em vez de palavras e frases específicas. Em vez de criar muitas consultas de pesquisa literais, Regex torna possível encontrar uma string de personagem específica usando expressões regulares. Para recuperar uma sequência específica, Regex trabalha com uma consulta de pesquisa e metacaracters. Os elementos fundamentais de construção da expressão regular são metacharacters. Encontrar algumas seqüências específicas, como números de segurança, números de licença, endereços de páginas da web, endereços de correspondência, números de registro, etc. que se encaixam em sequências específicas podem ser feitas usando expressões regulares.

Parâmetros de regex_search

O parâmetro é um tipo exclusivo de variável empregada por qualquer filtro, plug -in etc. para se relacionar com um bit de dados específico fornecido ao filtro como valor de entrada no Ansible. Esses pedaços de informação indicam os valores dos parâmetros que serão usados ​​para executar ou iniciar o filtro. Abaixo estão os parâmetros necessários e opcionais que vamos usar ao usar o filtro regex_serachh no manual Ansible.

Parâmetros necessários

A seguir, são necessários os parâmetros necessários para que possamos encontrar o padrão em uma string fornecida.

String de entrada: Vamos tomar informações como uma string para que possamos encontrar o padrão contra ela.

Parâmetros opcionais

Estes são os parâmetros que usaremos se houver necessidade ao procurar um padrão específico na sequência de entrada.

String regex: Regex é uma expressão regular que contém uma string e especifica o padrão de correspondência durante a filtragem.

Ignorar caso: É um parâmetro booleano. Se a string de expressão regular for verdadeira, tornará a pesquisa sensível ao caso e, se não for verdadeira, será forçado a ser insensível ao caso.

Multilina: É também um parâmetro booleano da pesquisa regex em Ansible. Se a varredura for verdadeira, a pesquisa sobre terminações de linha e, se for falsa, não pesquisará o final da linha.

Pré -requisitos de Ansible filtro regex_search

Se você quiser continuar na pesquisa regex, assumiremos que você atende aos seguintes pré -requisitos que são fornecidos abaixo:

  • Enquanto queremos trabalhar na ferramenta Ansible e queremos implementar o filtro de pesquisa regex, exigiremos que você deve ter software relacionado a Ansible em seu sistema. Para este tutorial, estamos usando Ansible 2.12 ou uma versão posterior.
  • Para executar o filtro em servidores remotos, precisamos de um controlador e aqui o Ansible Server é o controlador principal que configura o filtro regex no servidor host local.

Vamos nos aprofundar no filtro de pesquisa regex e verificar como o Ansible o coloca em vigor usando algumas situações.

Exemplo 01: Combinando a string "dois" usando o filtro de pesquisa regex

Aqui está o primeiro exemplo em que encontraremos as “duas cordas do documento de amostra que já foi criado e contém algumas cordas. Quando queremos executar filtros em Ansible, precisamos de um manual onde escrevamos as tarefas. Para fazer isso, o seguinte é a declaração que vamos usar para criar o manual em Ansible.

[root@master Ansible]# nano regex_search.yml

Agora, o manual é iniciado no novo terminal da Ansible. Vamos começar a escrever as declarações necessárias no manual para que possamos executar o filtro. Primeiro, escreveremos o nome do dispositivo host, onde queremos configurar o filtro de pesquisa regex. Estamos usando o host local para implementar o filtro. Somente obteremos os dados necessários do host local, para que tenhamos falsa a opção de fato de coleta. Na primeira tarefa, obtivemos alguns dados da amostra.documento txt e depois o armazenou na variável "Out" que foi declarada usando a opção Register do manual. Em seguida, depuramos a tarefa para que possamos pesquisar a string "duas" do conteúdo da variável out e exibi -la no terminal de console Ansible.

- Anfitriões: localhost
Gather_Facts: False
tarefas:
- Nome: Armazene o conteúdo da amostra.txt na variável 'Out'
Concha: amostra de gato.TXT
Registro: Out
- Nome: Exiba o conteúdo da variável 'out', correspondendo a 'dois'
depurar:
msg: "out.stdout | regex_search ('.*dois.*', ignorecase = true) "

A próxima etapa é executar a seguinte linha para obter a frase que possui a string "dois", depois de escrever as tarefas para o manual.

[root@master Ansible]# Ansible-playbook regex_search.yml

A frase da variável out que contém a palavra "dois" é exibida na saída usando o filtro de pesquisa regex, que foi executado com sucesso e pode ser visto com o sinal OK.

Exemplo 2: mostre a string "arquivo" da variável declarada em Ansible

Agora, vamos implementar o 2º cenário em que queremos encontrar os dados da variável declarada em Ansible. Primeiro, abriremos novamente o manual:

[root@master Ansible]# nano regex_searcg.yml

Neste exemplo, declaramos um nome variável "my_var" e depois armazenamos conteúdo na variável. Agora, queremos obter a string específica da variável, então temos que definir a tarefa no manual. Como mostrado, também usamos parâmetros opcionais do filtro regex_search na opção de depuração no final do manual. Esses parâmetros são parâmetro multilina e ignorecase que contém o valor "verdadeiro".

- Anfitriões: localhost
Gather_Facts: False
VARs:
my_var: "Teste o primeiro arquivo \ nTest Second File \ NTest Third File"
tarefas:
- Nome: Exiba o conteúdo da variável 'my_var', combinando 'arquivo'
depurar:
msg: "my_var | regex_findall ('.*arquivo.*', multiline = true, ignorecase = true) "

Agora, executaremos o manual e mostraremos os resultados do manual no terminal:

[root@master Ansible]# Ansible-playbook regex_search.yml

Aqui estão os resultados desejados exibidos abaixo:

Conclusão

Entramos em grandes detalhes sobre o que é um filtro de pesquisa regex em Ansible e como usar o filtro no manual Ansible e o que receberemos em troca. Para entender o filtro de pesquisa do Ansible Regex corretamente, utilizamos alguns casos.