我想用Saltstack在我的nginx代理上部署很多文件 . 我的代理将在 /etc/nginx/sites-available/[WEBSERVER]
中为我拥有的每个网络服务器托管一个配置文件 .
所以在我的所有支柱文件中,对于每一个带有纹理 role:webserver
的小兵,我都说如下:
proxy:
hostname: NAME OF THE WEBSERVER
dns_suffixe: TEST1.FR
在我的第二个小兵,我有相同的不同的 Value ,等等 .
所以在公式中我使用该代码来匹配支柱的值:
{% for proxy, args in salt['pillar.get']('proxy').iteritems() %}
/etc/nginx/sites-available/{{hostname}}:
file.managed:
- source: salt://proxy-ext/files/default.jinja
- target: /etc/nginx/sites-available/{{hostname}}
- template: jinja
- user: root
- group: root
- mode: 640
{% endfor %}
我使用相同的var {{hostname}}
和 {{dns_suffixe}
管理文件 default.jinja
.
但这不起作用 . 我还是Salt的新手,我不确定这是做我想做的最好的方法 . 是否有可能找回我在网络服务器的支柱文件中写的所有支柱 Value ?即使关键:值总是如下?
proxy:
hostname: NAME
我正在使用Salt 2017.我的 top.sls
文件定义明确 . 欢迎大家回答!我完全卡住了 . 帮助:3
编辑
我会尝试不同地改写,以便更清楚 . 该操纵的目标是自动上载许多网站 . 所以我有一个带有nginx代理的小兵 . 当我运行我的代理公式时,我希望Salt分析我的minions并匹配webserver grain . 在我的所有网络服务器上,都有一个公式/支柱来部署应用程序,在同一支柱上,我有 proxy.hostname:value
和 proxy.cert:value
,如上所述 . 所有Web服务器支柱的值都不同 .
因此,当我运行我的代理公式时,它匹配我的minions,我想要取回 proxy.hostname:value
中的每个值,另一个是在我的nginx代理上为所有web服务器部署好的配置文件 .
(我的default.jinja是上传网站的nginx配置文件的模板)
那么有可能通过所有支柱值的一种jinja循环来获取这些值吗?就像我上面写的一样?我不太确定我尝试使用的方法 . 对不起有误,我希望现在更清楚了 .
1 回答
您希望将context参数用于
file.managed
,然后您可以访问模板中的变量之后,您可以在模板中引用主机名和dns_suffix,就好像它们是在本地定义的一样 .