目錄
- 1. 常見的快取外掛及其儲存位置
- 2. 如何查詢快取的變數
- 總結
透過
facts_cache
快取的變數通常儲存在由 Ansible 配置檔案中指定的位置,具體位置取決於你使用的快取外掛。下面是幾個常見的快取外掛和它們的儲存方式,以及如何查詢這些快取變數。
1. 常見的快取外掛及其儲存位置
-
jsonfile
外掛:- 儲存位置:快取變數會被儲存為 JSON 檔案,通常存放在你指定的檔案路徑中。你可以在
ansible.cfg
檔案中配置fact_caching_connection
來指定快取檔案的目錄。 - 配置示例:
[defaults] fact_caching = jsonfile fact_caching_connection = /path/to/cache/dir fact_caching_timeout = 86400 # 快取過期時間(秒)
- 儲存方式:在指定的目錄下,每個主機的 facts 會以 JSON 檔案形式儲存,每個檔名通常對應於主機名。
- 儲存位置:快取變數會被儲存為 JSON 檔案,通常存放在你指定的檔案路徑中。你可以在
-
redis
外掛:- 儲存位置:快取變數儲存在 Redis 資料庫中。
- 配置示例:
[defaults] fact_caching = redis fact_caching_connection = localhost:6379 fact_caching_timeout = 86400
- 儲存方式:Redis 資料庫中,每個主機的 facts 會儲存為鍵值對,鍵名通常是主機名,值是對應的 facts 資料。
-
memcached
外掛:- 儲存位置:快取變數儲存在 Memcached 中。
- 配置示例:
[defaults] fact_caching = memcached fact_caching_connection = 127.0.0.1:11211 fact_caching_timeout = 86400
- 儲存方式:類似於 Redis,Memcached 中每個主機的 facts 儲存為鍵值對。
2. 如何查詢快取的變數
-
檢視快取檔案(適用於
jsonfile
外掛):- 如果使用的是
jsonfile
外掛,你可以直接在指定的快取目錄下找到主機名對應的 JSON 檔案,開啟它檢視快取的變數。 - 示例:
cat /path/to/cache/dir/hostname.json
- 這個 JSON 檔案將包含主機的所有 cached facts,包括你使用
set_facts
設定的變數。
- 如果使用的是
-
透過命令查詢 Redis 或 Memcached 中的快取:
- Redis:你可以使用
redis-cli
連線到 Redis 資料庫,然後使用命令檢視快取內容。redis-cli KEYS * GET hostname
- Memcached:你可以使用
memcached-tool
或其他 Memcached 客戶端工具查詢快取。echo "get hostname" | nc localhost 11211
- Redis:你可以使用
-
透過 Playbook 查詢快取的變數:
- 你可以編寫一個簡單的 Playbook 來載入並檢視快取的變數。
- 示例:
--- - name: 載入並檢視快取的 facts hosts: all tasks: - name: 顯示快取的變數 debug: var: ansible_facts
總結
- 儲存位置:快取的變數儲存位置取決於你使用的快取外掛,如
jsonfile
外掛會將變數儲存在指定目錄下的 JSON 檔案中,而redis
和memcached
則將變數儲存在各自的資料庫中。 - 查詢方式:可以直接訪問儲存目錄或資料庫來查詢快取的變數,也可以透過 Ansible Playbook 來載入和檢視這些快取的變數。