Skip to content

Filtrid ja Lookupid

Top 10 Filtrit (Filters)

Filtrid muudavad andmeid. Neid kasutatakse süntaksiga {{ muutuja | filtri_nimi }}. Siin on nimekiri kõige kasulikumatest filtritest:

  1. default: Kasutab vaikeväärtust, kui muutuja puudub.
    • {{ db_port | default(5432) }}
  2. mandatory: Peatab playbooki veateatega, kui muutuja on puudu.
    • {{ api_key | mandatory }}
  3. map: Võtab nimekirjast välja ainult kindla atribuudi.
    • {{ users | map(attribute='name') | list }}
  4. join: Ühendab nimekirja üheks stringiks.
    • {{ server_list | join(',') }}
  5. selectattr: Filtreerib objektide nimekirja.
    • {{ services | selectattr('state', 'equalto', 'running') | list }}
  6. combine: Ühendab kaks sõnastikku (dictionary).
    • {{ default_config | combine(user_config, recursive=True) }}
  7. to_nice_yaml: Teisendab muutuja ilusaks YAML tekstiks (hea config failide loomiseks).
    • {{ my_config | to_nice_yaml }}
  8. b64encode: Base64 kodeerimine (vajalik nt Kubernetes Secretitega).
    • {{ 'minu_saladus' | b64encode }}
  9. ternary: Lihtne "if-else" ühel real.
    • {{ is_production | ternary('prod-db', 'dev-db') }}
  10. regex_replace: Asendab teksti regulaaravaldise abil.
    • {{ 'server.domain.com' | regex_replace('\.domain\.com$', '') }}

Top 10 Lookupi (Andmepäringud)

Lookupid toovad andmeid kontrolleri masinast Ansible sisse. Süntaks: lookup('nimi', 'argument').

  1. file: Loeb faili sisu muutujasse (plain text).
    • lookup('file', 'files/id_rsa.pub')
  2. template: Loeb faili ja renderdab selle läbi Jinja2 (nagu template moodul, aga muutujasse).
    • lookup('template', 'templates/user_data.j2')
  3. env: Loeb kontrolleri keskkonnamuutujaid (nt CI/CD torudes).
    • lookup('env', 'CI_COMMIT_SHA')
  4. pipe: Käivitab käsurea käsu ja tagastab väljundi.
    • lookup('pipe', 'date +%Y-%m-%d')
  5. url: Teeb HTTP päringu ja tagastab sisu.
    • lookup('url', 'https://ifconfig.me')
  6. dig: Teeb DNS päringu (vajab dnspython pakki).
    • lookup('dig', 'db.example.com')
  7. vars: Dünaamiline muutuja lugemine ("muutuja muutuja sees").
    • lookup('vars', 'db_host_' + environment)
  8. inventory_hostnames: Tagastab nimekirja masinatest kindlas grupis.
    • lookup('inventory_hostnames', 'webservers')
  9. password: Genereerib juhusliku parooli ja salvestab selle faili.
    • lookup('password', 'secrets/db.pass length=15')
  10. community.general.hashi_vault: Loeb saladusi välisest HashiCorp Vault serverist.

Harjutus: Filtrid ja Lookupid

Proovi kombineerida filtreid ja lookupe. Kasuta url lookupi, et küsida Google kodulehe sisu, ja hash filtrit, et leida selle unikaalne räsi (fingerprint).

LISAINFO
- name: Check Google hash
  debug:
    msg: "Google esilehe SHA1 on: {{ lookup('url', 'https://www.google.com') | hash('sha1') }}"