gpt4 book ai didi

templates - for 循环中的 Saltstack 负载支柱

转载 作者:行者123 更新时间:2023-12-02 22:31:22 26 4
gpt4 key购买 nike

我正在开发一个带有 Salt 的自动 proftd 安装,我不会从模板中获取 ftp 用户,但我无法在支柱上工作,我用用户数据初始化了支柱并将其调用到 for 循环中,但你不这样做不在循环中获取支柱用户数据。

当我在minion中进行salt-callpillar.get ftpusers时,响应是:

本地:

这是我的支柱 ftpusers.sls:

ftp-server.ftpusers:
user:
- user: user
- passhash: j2k3hk134123l1234ljh!"·$ser
- uuid: 1001
- guid: 1001
- home: /srv/ftp/user
- shel: /bin/false

这是 for 循环:

{% for users in pillar.get('ftpusers', {}).items() %}

/srv/herma-ftp/.ftpusers:
file.managed:
- user: root
- group: root
- mode: 444
- contents:'{{ user }}:{{ args['passhash'] }}:{{args['uuid'] }}:{{ args['guid'] }}::{{ args['home'] }}:{{ args['shel'] }}'
- require:
- file: /srv/herma-ftp

/srv/herma-ftp/{{user}}:
file.directory:
- user: nobody
- group: nobody
- dir_mode: 775
- makedirs: True
- require:
- file: /srv/herma-ftp
- watch:
- file: /srv/herma-ftp
module.run:
- name: file.set_selinux_context
- path: {{ args['home']}}
- type: public_content_t
- unless:
- stat -c %C {{ args['home'] }} |grep -q public_content_t

{% endfor %}

当我加入小黄人时

salt-call -l debug state.sls herma-ftp-server saltenv=My-enviroment test=True

不要指望这一点,因为无法获取支柱数据。

最佳答案

你的循环也应该是这样的:

{% for user, args in pillar.get('ftpusers', {}).items() %}

此外,file.managedcontents 参数不支持模板化。您需要做的是将 /srv/herma-ftp/.ftpusers 状态移到循环之外,并在文件模板内创建循环。状态的最终布局应如下所示:

/srv/herma-ftp/.ftpusers
file.managed:
source: salt://ftpserver/dot.ftpusers
template: jinja
...
...

{% for user, args in pillar.get('ftpusers', {}).items() %}

/srv/herma-ftp/{{user}}:
file.managed:
...

{% endfor %}

你的ftpserver/dot.ftpusers看起来像:

{% for user, args in pillar.get('ftpusers', {}).items() %}
{{ user }}:{{ args['passhash'] }}:{{args['uuid'] }}:{{ args['guid'] }}::{{ args['home'] }}:{{ args['shel'] }}
{% endfor %}

关于templates - for 循环中的 Saltstack 负载支柱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com