SaltStack延迟变量计算时,呈现模板



我需要在我的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有这样的东西吗?或者你们有其他解决办法吗?

我认为你应该等待docker状态执行或其他条件。

include:
    - docker
postgresql:
    docker.running:
        - container: postgresql 
        - port_bindings:
            "5432/tcp":
                HostIp: {{ grains['ip_interfaces']['docker0'][0]}}
                HostPort: "5432"
        - require:
          - sls: docker

最新更新