我需要在SaltStack状态文件中获取docker0网络接口的默认网关IP地址。 .sls可能看起来像这样
include:
- docker
postgresql:
docker.running:
- container: postgresql
- port_bindings:
"5432/tcp":
HostIp: {{ grains['ip_interfaces']['docker0'][0]}}
HostPort: "5432"
这在我运行state.highstate
之前配置docker时有效,但是,当SaltStack呈现此模板时,实际上并未配置docker,因此docker0
网络接口暂时不可用。因此,将引发关键错误。
我知道在大多数情况下,docker0默认网关将为172.17.42.1
,我可以直接将其设置为此值。但是,如果我遇到这样的另一种情况怎么办?有没有办法懒洋洋地渲染模板,我认为这就像
lazy_render: True
这样它只会在执行之前呈现。 SaltStack中有这样的东西吗?或者你们有这个问题的其他解决方案吗?
答案 0 :(得分:1)
我认为您应该等待docker状态执行或其他一些条件。
e.g。
include:
- docker
postgresql:
docker.running:
- container: postgresql
- port_bindings:
"5432/tcp":
HostIp: {{ grains['ip_interfaces']['docker0'][0]}}
HostPort: "5432"
- require:
- sls: docker
希望有帮助