【发布时间】:2017-11-23 18:09:00
【问题描述】:
我正在尝试在剧本之间保持自定义事实 (set_fact)。
即provision something.yaml -> email.yaml
我已经为redis配置了缓存:
fact_caching = redis
fact_caching_timeout = 86400
fact_caching_connection = localhost:6379:0
我可以看到存储在 redis("ansible_facts10.1.0.7) 中的事实:
127.0.0.1:6379> keys *
1) "ansible_cache_keys"
2) "ansible_factslocalhost"
3) "ansible_facts10.1.0.7"
我无法理解的是如何将自定义事实用于另一场比赛?
我的问题是,如果我需要使用 redis 查找,那么使用事实缓存是没有意义的,因为我可以通过 redis 任务自己将 set_facts 写入 redis。
有没有办法在不使用以下内容的情况下自动查找 redis 缓存中的变量:
- name: query redis for somekey
debug: msg="{{ lookup('redis_kv', 'redis://localhost:6379,somekey') }} is value in Redis for somekey"
目前,我缓存事实的 redis 中的键需要某种硬编码,因为它是以主机文件中的 IP 命名的,即“ansible_facts10.1.0.7”
有人能指出正确的方向吗?
【问题讨论】:
标签: ansible ansible-facts