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
modemää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.