如何解决无法使用 Salstack 状态文件编译数据
我正在尝试使用 Salt 状态文件来配置网络设备。我将简要描述我当前的设置: 我有 pillar ntp.sls 文件保存为 /etc/salt/pillar/ntp.sls ,它看起来像这样:
ntp.servers:
- 11.1.1.1
- 2.2.2.2
然后我将 Jinja 模板保存为 /etc/salt/states/ntp/templates/ntp.jinja,如下所示:
{%- for server in servers %}
ntp {{ server }}
{%- endfor %}
最后我将状态文件另存为 /etc/salt/states/ntp/init.sls 如下:
ntp_example:
netconfig.managed:
- template_name: salt://ntp/templates/ntp.jinja
- debug: true
- servers: {{ salt.pillar.get('ntp.servers') }}
我在尝试运行命令时遇到以下错误:sudo salt sw state.sls ntp,其中 sw 是代理 minion,所以这里是错误:
sw:
Data failed to compile:
ID ntp.servers in SLS ntp is not a dictionary
从支柱获取数据的命令正在运行,命令:sudo salt sw pillar.get ntp.servers 输出:
sw:
- 11.1.1.1
- 2.2.2.2
任何建议可能是错误的以及如何解决它? 谢谢
解决方法
我认为您应该在 /etc/salt/pillar/ntp.sls
中声明如下内容:
ntp-servers:
- 11.1.1.1
- 2.2.2.2
然后加载这些值:
- servers: {{ salt.pillar.get('ntp-servers') }}
.
是 SaltStack 中的目录分隔符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。