๐ง ๐๐ป๐๐ถ๐ฏ๐น๐ฒ ๐๐ฎ๐ฐ๐๐: ๐ง๐ต๐ฒ ๐๐ถ๐ฑ๐ฑ๐ฒ๐ป ๐ฃ๐ผ๐๐ฒ๐ฟ ๐๐ฒ๐ต๐ถ๐ป๐ฑ ๐ฆ๐บ๐ฎ๐ฟ๐ ๐๐๐๐ผ๐บ๐ฎ๐๐ถ๐ผ๐ป ๐ง
About Ansible Facts
If you're using Ansible for automation, you're probably writing tasks. But are you making them intelligent?
Thatโs where Facts come in โ dynamic, real-time system data automatically gathered by Ansible from your managed nodes. โ
Hereโs a quick breakdown ๐
๐ ๐ช๐ต๐ฎ๐ ๐๐ฟ๐ฒ ๐๐ฎ๐ฐ๐๐ ๐ถ๐ป ๐๐ป๐๐ถ๐ฏ๐น๐ฒ?
Facts are key-value data collected at the start of a playbook run via the setup module. They include:
๐ญ. ๐ข๐ฆ ๐ณ๐ฎ๐บ๐ถ๐น๐, ๐ฑ๐ถ๐๐๐ฟ๐ผ, ๐ฎ๐ป๐ฑ ๐๐ฒ๐ฟ๐๐ถ๐ผ๐ป
๐ฎ. ๐๐ฃ ๐ฎ๐ฑ๐ฑ๐ฟ๐ฒ๐๐๐ฒ๐ ๐ฎ๐ป๐ฑ ๐ถ๐ป๐๐ฒ๐ฟ๐ณ๐ฎ๐ฐ๐ฒ๐
๐ฏ. ๐๐ผ๐๐๐ป๐ฎ๐บ๐ฒ๐
๐ฐ. ๐๐ถ๐๐ธ ๐๐ฝ๐ฎ๐ฐ๐ฒ, ๐บ๐ฒ๐บ๐ผ๐ฟ๐, ๐๐ฃ๐จ ๐ถ๐ป๐ณ๐ผ
๐ฑ. ๐ก๐ฒ๐๐๐ผ๐ฟ๐ธ ๐ฑ๐ฒ๐๐ฎ๐ถ๐น๐
โ๏ธ ๐ช๐ต๐ ๐ง๐ต๐ฒ๐ ๐ ๐ฎ๐๐๐ฒ๐ฟ
With Facts, you can:
โ๏ธ ๐๐ณ๐ช๐ต๐ฆ ๐ค๐ฐ๐ฏ๐ฅ๐ช๐ต๐ช๐ฐ๐ฏ๐ข๐ญ ๐ต๐ข๐ด๐ฌ๐ด ๐ฃ๐ข๐ด๐ฆ๐ฅ ๐ฐ๐ฏ ๐๐, ๐ฅ๐ช๐ด๐ฌ, ๐ฐ๐ณ ๐ฎ๐ฆ๐ฎ๐ฐ๐ณ๐บ
โ๏ธ ๐๐บ๐ฏ๐ข๐ฎ๐ช๐ค๐ข๐ญ๐ญ๐บ ๐ข๐ด๐ด๐ช๐จ๐ฏ ๐ฑ๐ข๐ค๐ฌ๐ข๐จ๐ฆ๐ด, ๐ฑ๐ข๐ต๐ฉ๐ด, ๐ฐ๐ณ ๐ด๐ฆ๐ต๐ต๐ช๐ฏ๐จ๐ด
โ๏ธ ๐๐ฆ๐ฅ๐ถ๐ค๐ฆ ๐ฉ๐ข๐ณ๐ฅ๐ค๐ฐ๐ฅ๐ช๐ฏ๐จ ๐ข๐ฏ๐ฅ ๐ช๐ฎ๐ฑ๐ณ๐ฐ๐ท๐ฆ ๐ฑ๐ฐ๐ณ๐ต๐ข๐ฃ๐ช๐ญ๐ช๐ต๐บ
โ๏ธ ๐๐ถ๐ต๐ฐ๐ฎ๐ข๐ต๐ช๐ค๐ข๐ญ๐ญ๐บ ๐ข๐ฅ๐ข๐ฑ๐ต ๐ฑ๐ญ๐ข๐บ๐ฃ๐ฐ๐ฐ๐ฌ๐ด ๐ต๐ฐ ๐ฅ๐ช๐ง๐ง๐ฆ๐ณ๐ฆ๐ฏ๐ต ๐ฆ๐ฏ๐ท๐ช๐ณ๐ฐ๐ฏ๐ฎ๐ฆ๐ฏ๐ต๐ด
๐ก ๐ฅ๐ฒ๐ฎ๐น-๐ช๐ผ๐ฟ๐น๐ฑ ๐๐
๐ฎ๐บ๐ฝ๐น๐ฒ๐
๐ ๐ฃ๐ฟ๐ถ๐ป๐ ๐๐ต๐ฒ ๐ข๐ฆ ๐ณ๐ฎ๐บ๐ถ๐น๐:
- ๐ฏ๐ข๐ฎ๐ฆ: ๐๐ฉ๐ฐ๐ธ ๐๐ ๐ง๐ข๐ฎ๐ช๐ญ๐บ
๐ฅ๐ฆ๐ฃ๐ถ๐จ:
๐ท๐ข๐ณ: ๐ข๐ฏ๐ด๐ช๐ฃ๐ญ๐ฆ_๐ง๐ข๐ค๐ต๐ด['๐ฐ๐ด_๐ง๐ข๐ฎ๐ช๐ญ๐บ']
๐ ๐๐ผ๐ป๐ฑ๐ถ๐๐ถ๐ผ๐ป๐ฎ๐น ๐ถ๐ป๐๐๐ฎ๐น๐น๐ฎ๐๐ถ๐ผ๐ป:
- ๐ฏ๐ข๐ฎ๐ฆ: ๐๐ฏ๐ด๐ต๐ข๐ญ๐ญ ๐ธ๐ฆ๐ฃ ๐ด๐ฆ๐ณ๐ท๐ฆ๐ณ ๐ฃ๐ข๐ด๐ฆ๐ฅ ๐ฐ๐ฏ ๐๐
๐ฑ๐ข๐ค๐ฌ๐ข๐จ๐ฆ:
๐ฏ๐ข๐ฎ๐ฆ: "{{ '๐ฉ๐ต๐ต๐ฑ๐ฅ' ๐ช๐ง ๐ข๐ฏ๐ด๐ช๐ฃ๐ญ๐ฆ_๐ง๐ข๐ค๐ต๐ด['๐ฐ๐ด_๐ง๐ข๐ฎ๐ช๐ญ๐บ'] == '๐๐ฆ๐ฅ๐๐ข๐ต' ๐ฆ๐ญ๐ด๐ฆ '๐ฏ๐จ๐ช๐ฏ๐น' }}"
๐ด๐ต๐ข๐ต๐ฆ: ๐ฑ๐ณ๐ฆ๐ด๐ฆ๐ฏ๐ต```
๐ ๐๐ฐ๐ฐ๐ฒ๐๐๐ถ๐ป๐ด ๐๐ฃ ๐ฎ๐ฑ๐ฑ๐ฟ๐ฒ๐๐:
- ๐ฏ๐ข๐ฎ๐ฆ: ๐๐ณ๐ช๐ฏ๐ต ๐ฑ๐ณ๐ช๐ฎ๐ข๐ณ๐บ ๐๐
๐ฅ๐ฆ๐ฃ๐ถ๐จ:
๐ท๐ข๐ณ: ๐ข๐ฏ๐ด๐ช๐ฃ๐ญ๐ฆ_๐ง๐ข๐ค๐ต๐ด['๐ฅ๐ฆ๐ง๐ข๐ถ๐ญ๐ต_๐ช๐ฑ๐ท4']['๐ข๐ฅ๐ฅ๐ณ๐ฆ๐ด๐ด']
๐ ๐ฆ๐ธ๐ถ๐ฝ ๐ฎ ๐๐ฎ๐๐ธ ๐ผ๐ป ๐๐ถ๐ฟ๐๐๐ฎ๐น ๐บ๐ฎ๐ฐ๐ต๐ถ๐ป๐ฒ๐:
- ๐ฏ๐ข๐ฎ๐ฆ: ๐๐ฏ๐ญ๐บ ๐ณ๐ถ๐ฏ ๐ฐ๐ฏ ๐ฑ๐ฉ๐บ๐ด๐ช๐ค๐ข๐ญ ๐ฎ๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด
๐ด๐ฉ๐ฆ๐ญ๐ญ: ๐ฆ๐ค๐ฉ๐ฐ "๐๐ถ๐ฏ๐ฏ๐ช๐ฏ๐จ ๐ฐ๐ฏ ๐ฉ๐ข๐ณ๐ฅ๐ธ๐ข๐ณ๐ฆ"
๐ธ๐ฉ๐ฆ๐ฏ: ๐ข๐ฏ๐ด๐ช๐ฃ๐ญ๐ฆ_๐ง๐ข๐ค๐ต๐ด['๐ท๐ช๐ณ๐ต๐ถ๐ข๐ญ๐ช๐ป๐ข๐ต๐ช๐ฐ๐ฏ_๐ณ๐ฐ๐ญ๐ฆ'] == '๐ฉ๐ฐ๐ด๐ต'
โก ๐ฃ๐ฟ๐ผ ๐ง๐ถ๐ฝ๐
๐ก ๐๐ถ๐๐ฎ๐ฏ๐น๐ฒ ๐ณ๐ฎ๐ฐ๐ ๐ด๐ฎ๐๐ต๐ฒ๐ฟ๐ถ๐ป๐ด ๐ถ๐ณ ๐ป๐ผ๐ ๐ป๐ฒ๐ฒ๐ฑ๐ฒ๐ฑ:
```๐จ๐ข๐ต๐ฉ๐ฆ๐ณ_๐ง๐ข๐ค๐ต๐ด: ๐ง๐ข๐ญ๐ด๐ฆ```
๐ก Use fact caching (Redis, JSON) for large inventories to speed up execution.
๐ก Custom facts can be created in /etc/ansible/facts.d/ as .json or .ini files.
๐ ๐ ๐ผ๐ฟ๐ฒ ๐ผ๐ป ๐๐ป๐๐ถ๐ฏ๐น๐ฒ ๐๐ฎ๐ฐ๐๐ ๐ถ๐ป ๐๐ต๐ฒ ๐ผ๐ณ๐ณ๐ถ๐ฐ๐ถ๐ฎ๐น ๐ฑ๐ผ๐ฐ๐:
๐ https://lnkd.in/guYUCj7W
Facts aren't just metadata โ they're the key to writing context-aware, adaptive, and production-ready playbooks. ๐