Filtrid ja Lookupid¶
Top 10 Filtrit (Filters)¶
Filtrid muudavad andmeid. Neid kasutatakse süntaksiga {{ muutuja | filtri_nimi }}. Siin on nimekiri kõige kasulikumatest filtritest:
default: Kasutab vaikeväärtust, kui muutuja puudub.{{ db_port | default(5432) }}
mandatory: Peatab playbooki veateatega, kui muutuja on puudu.{{ api_key | mandatory }}
map: Võtab nimekirjast välja ainult kindla atribuudi.{{ users | map(attribute='name') | list }}
join: Ühendab nimekirja üheks stringiks.{{ server_list | join(',') }}
selectattr: Filtreerib objektide nimekirja.{{ services | selectattr('state', 'equalto', 'running') | list }}
combine: Ühendab kaks sõnastikku (dictionary).{{ default_config | combine(user_config, recursive=True) }}
to_nice_yaml: Teisendab muutuja ilusaks YAML tekstiks (hea config failide loomiseks).{{ my_config | to_nice_yaml }}
b64encode: Base64 kodeerimine (vajalik nt Kubernetes Secretitega).{{ 'minu_saladus' | b64encode }}
ternary: Lihtne "if-else" ühel real.{{ is_production | ternary('prod-db', 'dev-db') }}
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').
file: Loeb faili sisu muutujasse (plain text).lookup('file', 'files/id_rsa.pub')
template: Loeb faili ja renderdab selle läbi Jinja2 (nagu template moodul, aga muutujasse).lookup('template', 'templates/user_data.j2')
env: Loeb kontrolleri keskkonnamuutujaid (nt CI/CD torudes).lookup('env', 'CI_COMMIT_SHA')
pipe: Käivitab käsurea käsu ja tagastab väljundi.lookup('pipe', 'date +%Y-%m-%d')
url: Teeb HTTP päringu ja tagastab sisu.lookup('url', 'https://ifconfig.me')
dig: Teeb DNS päringu (vajabdnspythonpakki).lookup('dig', 'db.example.com')
vars: Dünaamiline muutuja lugemine ("muutuja muutuja sees").lookup('vars', 'db_host_' + environment)
inventory_hostnames: Tagastab nimekirja masinatest kindlas grupis.lookup('inventory_hostnames', 'webservers')
password: Genereerib juhusliku parooli ja salvestab selle faili.lookup('password', 'secrets/db.pass length=15')
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') }}"