# Learn 104 * 104: Best practices - Going into IaC + Use git to track your tree - D.R.Y. + Things are quite easily moving - Code structure + Profile and Class * Role and profiles key lookup + Hierarchies * Foreman + Use environnements, site, locatation ... + Common keys vs dedicated keys * The profile key, default placeholder + The resource modele * It's like a puppet resource, a catalog of items to apply * It's possible to use this model with ansible, and it change radically the way Ansible can be used then. See integration. - Debugging + Use the explain mode * And trace mode + Use GNU tools * tree * grep -Rw . * git status -sb - With ansible. + Use a strict naming scheme, apply your Ansible usual name schema into Kheops + You can put some jinja variable into Kheops, Ansible will be able to replace and understand them during the runtime + Dynamic inventories and ENC + Apply products + Apply roles/profiles pattern + Use resource based roles => See my collection, it just works