我正在尝试在剧本之间保持自定义事实(set_fact)。
IE 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_facts 10.1.0.7 ”
有人可以指出我正确的方向吗?