Ansible

Manipular dados Ansible usando filtros Jinja

Manipular dados Ansible usando filtros Jinja

Em algumas ocasiões, quando você está usando o Ansible para automatizar várias tarefas, pode ser necessário transformar e manipular dados. No Ansible, você pode usar um conjunto de filtros integrados ou criar filtros personalizados para manipular, processar e converter dados. Ansible usa filtros de modelo jinja2 em segundo plano para permitir que os usuários criem filtros para dados específicos.

É importante observar que a modelagem de filtro é realizada no controlador Ansible, e não nos hosts remotos especificados. Isso ajuda a reduzir a quantidade de dados transferidos para o host remoto após o processamento local. Se você não está familiarizado com modelos jinja, Jinja é uma linguagem de modelos simples, intuitiva, rápida e segura para a linguagem de programação Python desenvolvida após o popular framework Python, modelos Django.

Não entraremos em detalhes sobre como funciona a modelagem jinja, embora possa ser uma vantagem adicional para entender como funciona com modelos.

Confira o recurso fornecido abaixo para saber mais sobre Jinja.

https: // linkfy.para / jinjaDocs

Como funcionam os filtros Ansible

Conforme mencionado, o mecanismo de filtragem Ansible se baseia no modelo de modelagem Jinja. Isso permite que os usuários usem esses modelos para inserir dados, processá-los e fornecer uma saída com base nos filtros definidos.

Depois que os dados são transformados e filtrados usando o modelo definido, você pode usá-lo para realizar outras tarefas no Ansible. Você pode aprender mais sobre filtros no Ansible no seguinte site:

https: // linkfy.para / AnsibleFilters

O Ansible tem muitos filtros que são muito úteis e aplicáveis ​​a muitos cenários diferentes. Assim que tiver a saída do filtro, você pode usá-la para realizar outras tarefas, como depurar.

A sintaxe geral para filtrar dados é a seguinte:

|

Usando Filtros Ansible

Agora veremos exemplos de filtros Ansible que podemos usar para realizar várias tarefas.

NOTA: Como mencionado anteriormente, o Ansible tem muitos filtros, portanto, não podemos cobrir todos eles neste artigo. Em vez disso, este tutorial visa fornecer a você os fundamentos do uso de vários filtros Ansible.

Exemplo 1: Filtros de dados de formato Ansible

Os filtros de dados de formato Ansible pegam uma estrutura de dados de saída em um modelo e usam o filtro especificado para renderizá-lo no formato chamado no filtro.

Abaixo está um exemplo de filtro para converter para JSON e YAML:

variável | to_json
variável | to_yaml

Por exemplo, considere o seguinte manual:

- hosts: todas as tarefas:
- shell: cat / tmp / all.json
registrar: resultado
- depurar:
msg: "resultado.stdout | to_nice_yaml "

Executar o manual acima produzirá uma saída para os dados JSON convertidos em YAML. O seguinte é um exemplo de saída:

Você também pode especificar outros filtros, como to_nice_yaml, para obter a saída em um formato legível.

variável | to_nice_json
variável | to_nice_yaml

Usando os filtros de formatação de dados, você pode transformar dados em vários formatos e usá-los para várias tarefas.

Por exemplo, você pode passar strings YAML de vários documentos de análise, como no manual abaixo:

- hosts: todas as tarefas:
- shell: cat / tmp / all.json
registrar: resultado
- depurar:
msg: "resultado.stdout | to_yaml | Lista"

Exemplo 2: Filtro Ansible padrão

O filtro padrão Ansible ajuda a definir valores padrão para variáveis ​​indefinidas. A configuração Ansible padrão falha em variáveis ​​indefinidas. Por exemplo, se você tiver uma variável indefinida, você pode dizer ao Ansible para usar como padrão um valor em vez de gerar um erro.

A sintaxe geral do filtro padrão é a seguinte:

| valor padrão)

Por exemplo:

- hosts: todos
vars:
tarefas:
set_fact:
undef_var: "0_var | padrão (5)"

O manual acima irá definir o valor da variável '0_var' para 5 se não for definido explicitamente, em vez de lançar um erro.

Para definir uma variável, você pode usar o filtro obrigatório. Tudo que você precisa fazer é consultar o exemplo acima e substituir o padrão pelo obrigatório:

0_var | obrigatório

Exemplo 3: Filtros Ansible de depuração

Ao depurar, você pode usar o filtro type_debug para obter informações sobre o tipo de variável. O tipo de variável será em Python, já que o motor é baseado em Python. A sintaxe geral do filtro é a seguinte:

variável | type_debug

Exemplo 4: Filtros Matemáticos

Os filtros matemáticos Ansible permitem que você execute consultas matemáticas. Esses filtros incluem o seguinte:

  1. Filtro de logaritmo - variável | log - especifica a base do logaritmo entre parênteses como variável | log (2)
  2. Filtro de energia - variável | pow (3) - retorna a variável elevada à potência especificada
  3. Filtro absoluto - variável | abs - retorna o valor absoluto para a variável passada
  4. Filtro raiz - variável | root - retorna a raiz quadrada da variável. Para especificar explicitamente a raiz, passe o valor entre parênteses; por exemplo, raiz cúbica variável | raiz (3)

Esses filtros matemáticos podem ser bastante úteis, especialmente ao lidar com grandes quantidades de dados e operações matemáticas instantâneas.

Exemplo 5: Filtros Hash

Os filtros de hash Ansible permitem que você obtenha o hash de uma string ou dados passados. Na maioria dos casos, você não precisará desses filtros, mas eles estão disponíveis para uso se houver necessidade. Esses filtros incluem o seguinte:

  1. Sha1 - var | hash (“sha1”)
  2. Sha256 / sha512 - var | password_hash (“sha256 / 512”)
  3. Md5 - var | hash (“md5”)
  4. Soma de verificação da string - var | checksum

Outros filtros úteis

Como você deve ter notado, o Ansible tem muitos filtros. Alguns filtros Ansible que você pode achar úteis incluem o seguinte:

  • Filtro de divisão de URL - “[Email protegido]: // linuxhint.com: 8080 / index.html?query = linux ”| urlspilt (“hostname”), - retorna “linuxhint.com ”
  • Lista de adesão - lista | join - usado para adicionar uma lista em uma string var
  • Caminho de diretório - path | dirname
  • Expanda um til - path | expanduser

Conclusão

Filtros Ansible são úteis quando você está realizando tarefas de depuração ou precisa de informações específicas sem digitar muito. Como o Ansible oferece suporte a filtros personalizados, esses filtros podem ser especialmente úteis em casos de uso específicos.

Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...
Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...
WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...