Como funcionam os filtros Ansible?

Como funcionam os filtros Ansible?
Uma das partes principais de qualquer estrutura ou software de gerenciamento é a maneira como lida e processa dados. Considerando a direção em que o mundo da tecnologia da informação está indo, é justo dizer que os dados são rei. Enormes quantidades de dados estão sendo geradas diariamente para serem usadas para diferentes fins. Assim, gerenciamento e processamento de dados muito importantes.

Software como Ansible é necessário para lidar com enormes quantidades de dados. Observando as facilitações que esses tipos de aplicativos devem fornecer, seus recursos de processamento de dados devem ser de primeira linha.

Sempre que precisamos processar, formatar ou manipular dados em Ansible, usamos filtros. Existem dois conjuntos de filtros disponíveis em Ansible. Um conjunto são os filtros de modelo Jinja2 e o outro conjunto é dos filtros personalizados feitos pelos usuários.

No entanto, em segundo plano, todos os filtros são derivados do modelo Jinja2, que funciona de uma maneira que os dados que estão sendo inseridos nos filtros são primeiro convertidos em expressões de modelo para que os filtros possam ser aplicados a eles.

Outro ponto importante a ser observado é que todos os filtros são aplicados localmente, o que significa que nenhuma filtragem pode ser feita usando hosts remotos. Então, toda a manipulação e processamento ocorrem na máquina de controle Ansible.

Se você deseja aprender sobre os filtros disponíveis em Ansible e como eles são usados, você encontrou o artigo certo, pois o guiaremos sobre como esses filtros funcionam e como você pode criar manuais de Ansible para processar dados da maneira que deseja que seu sistema para.

Como os filtros funcionam?

O trabalho por trás dos filtros de dados é simples. Você fornece alguns filtros pré-desenvolvidos alguns dados ou informações como entrada; O filtro analisa os dados de acordo com os comandos fornecidos no manual e as condições que você definiu. Depois que os dados forem analisados, você receberá a saída personalizada que desejou dos dados que teve.

Diferentes tipos de filtros executam diferentes tipos de filtragem nos dados. Como mencionado anteriormente, todos eles trabalham com base no modelo Jinja2 e há uma lista de todos os filtros disponíveis. Você pode ver essa lista clicando neste link.

Existem inúmeras vantagens no uso de filtros à medida que aprimoram bastante as capacidades do Ansible. Você também pode usar filtros para depuração em certos casos.

Como implementar filtros em Ansible?

A sintaxe básica de qualquer filtro Ansible é dada por:

|

Outro ponto importante a ser observado é que a transformação de dados em segundo plano é feita usando o Python. Caso um certo tipo de modelo não esteja disponível com Python, o filtro pode não fornecer a saída correta. Então, você precisa ter cuidado ao usar alguns filtros.

Até agora você aprendeu o básico dos filtros Ansible. Para esclarecer outras perguntas, vamos dar uma olhada em alguns exemplos de filtragem e diferentes tipos de filtros.

Exemplos

- Nome: Gere vários nomes de host arbitrários
Ansible.construídas em.depurar:
msg: "['abc', 'xyz'] | produto (['com']) | map ('junção', '.') | juntar(',') "

Além disso, gostaríamos de mencionar aqui que, para executar um manual, o seguinte comando teria que ser executado usando o terminal Linux:

Livro de teste Ansible-PlayBook.yml

Neste exemplo, usamos o filtro de "produto". O filtro de produto é usado para implementar a multiplicação cartesiana. O filtro "Produto" é um pouco um análogo de usar para loops em linguagens de programação tradicionais. A saída que você receberá executando esse código seria.

"msg": "ABC.com, xyz.com "

Veja como você pode obter combinações para conjuntos de dois números.

- Nome: Dê -me combinações para conjuntos de dois
Ansible.construídas em.depurar:
msg: "[10,20,30,40,50] | Ansible.construídas em.Combinações (2) | lista "

Usamos o filtro de "combinação" para obter combinações de dois números de um determinado conjunto. Os 2 especificados nos parênteses instruem a fazer combinações de 2 e a palavra -chave "lista" fornecerá a saída na forma de uma lista.

- Nome: Maiores Permutações (Matérias de Ordem)
Ansible.construídas em.depurar:
msg: "[0,2,4,6,8] | Ansible.construídas em.Permutações | lista "
- Nome: Permutações de conjuntos de três
Ansible.construídas em.depurar:
msg: "[1,3,5,7,9] | Ansible.construídas em.Permutações (3) | lista "

Há o fornecimento de um filtro de "permutação" também. Este filtro nos dá permutações de um determinado conjunto de variáveis ​​ou dados. No exemplo acima, receberemos as maiores permutações do conjunto de números pares e permutações de conjuntos de três dos números ímpares.

"['A', 'B', 'C'] | Random"

Este exemplo usa o filtro "aleatório" para gerar um número aleatório de um determinado conjunto de dados.

51 | Random (STEP = 10)

Este exemplo também usou o filtro "aleatório" para gerar um número aleatório entre 0 e 50. Também damos a condição de que o tamanho da etapa deve ser 10, então, a saída que você obterá seria um número que é um múltiplo de 10.

['a', 'b', 'c', 'd', 'e'] | Shuffle

O filtro "Shuffle" pode ser usado para embaralhar o conjunto de dados para produzir uma saída na qual o dado será embaralhado e depois mostrado a você.

['val': 1, 'val': 2, 'val': 3, 'val': 4] | min (attribute = 'val')

Finalmente, usamos o filtro "min" que comparará os dois números de entrada que damos como entrada e fornecerá o menor número como saída.

['val': 1, 'val': 2] | max (atributo = 'val')

Da mesma forma, aqui usamos o filtro "max" para obter o número máximo de um determinado conjunto de dados.

Então, esses foram os exemplos de alguns dos filtros disponíveis em Ansible. Existem muitos outros filtros que você pode processar e formatar dados.

Conclusão

Neste artigo, analisamos os filtros Ansible. Estabelecemos por que precisamos de filtros na análise de dados e analisamos alguns filtros fornecidos pelo plug-in. Esperamos que pudéssemos ajudá -lo a entender por que os filtros são importantes e, mais importante, agora você entende como pode usá -los para seu benefício. Sinta -se à vontade para deixar qualquer dúvida na seção de comentários.