Skip to content

Koodi kvaliteet ja Linting

Ansible on kood. Ja nagu iga koodiga, tekib ka siin aja jooksul "võlga" – halvad praktikad, lohakad vormistused ja potentsiaalsed vead, mis kohe välja ei paista.

Selleks on olemas ansible-lint. See on käsurea tööriist, mis analüüsib sinu playbooke ja rolle ning annab soovitusi, kuidas neid parandada vastavalt kogukonna parimatele praktikatele.

Installimiseks on erinevaid variante: https://docs.ansible.com/projects/lint/installing/#installing

Playbooki kontrollimine

Tõenäoliselt on sinu praegune playbook tehniliselt töötav, aga "kole" linteri silmis.

Complete

Jooksuta linterit oma playbooki vastu:

ansible-lint <playbook>

Verify

Tõenäoliselt saad terve ekraanitäie punaseid hoiatusi. Levinumad vead:

  • [name]: Igal taskil peab olema name: kirjeldus.
  • [fqcn-builtins]: Moodulite nimed peaksid olema pikad (copy -> ansible.builtin.copy).
  • [risky-file-permissions]: Faili loomisel (copy/template) pole mode määratud.

Linteri seadistamine

Mõnikord on linter liiga range. Näiteks nõue kasutada alati täisnimesid (FQCN - nt ansible.builtin.copy) on suurtes projektides hea, aga väikeses laboris tüütu.

Me saame linterit konfigureerida failiga .ansible-lint, mis käib Ansible projektikausta algusesse.

Complete

Loo projekti juurkausta fail nimega .ansible-lint ja lisa sinna järgnev sisu. See ütleb linterile, et ta ignoreeriks täisnimede nõuet.

# .ansible-lint
skip_list:
  - fqcn-builtins

Nüüd jooksuta ansible-lint <playbook> uuesti.

Verify

Hoiatused stiilis Use FQCN for builtin actions peaksid olema kadunud.

Rollide kontrollimine

Linter oskab kontrollida ka ainult rolle, veendudes, et meta/main.yml on korrektne, struktuur on paigas ja nõuded on täidetud.

Complete

Jooksuta linterit oma rollide kausta vastu:

ansible-lint roles/nginx/

CI/CD

Professionaalsetes tiimides on ansible-lint osa automaatsest testimisest (CI/CD). Kui linter annab vea, siis koodi Giti vastu ei võeta. See hoiab koodibaasi puhtana ja loetavana.