๐Ÿง  ๐—”๐—ป๐˜€๐—ถ๐—ฏ๐—น๐—ฒ ๐—™๐—ฎ๐—ฐ๐˜๐˜€: ๐—ง๐—ต๐—ฒ ๐—›๐—ถ๐—ฑ๐—ฑ๐—ฒ๐—ป ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ ๐—•๐—ฒ๐—ต๐—ถ๐—ป๐—ฑ ๐—ฆ๐—บ๐—ฎ๐—ฟ๐˜ ๐—”๐˜‚๐˜๐—ผ๐—บ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐Ÿง 

About Ansible Facts

8/27/20251 min read

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. ๐Ÿ”