我希望通过从ansible .yml vars文件传入变量来在我的给定服务器上创建多个目录。我目前正在尝试使用Jinja模板传递目录名称。 vars文件看起来像这样;
BTG-VELOCITY:
type: PBSTP
accept: 1010
GFAM:
type: PBSTP
connect: 1010
ONEZERO2:
type: TRADESTREAM
GUANFABANK:
type: FXSIM
MAINBANK:
type: FXSIM
TYPOBANK:
type: TRADESTREAM
TEST-BANK:
type: PBSTP
connect: 32620
accept: 33620
我希望为列出的每个客户名称创建一个目录。理想情况下,我最终会在给定文件夹中为每个' TYPOBANK' MAINBANK'等等 我现在尝试这种方式的方式如下在我的剧本中;
- include_vars:
file: /home/vagrant/stunnelSimAnsPractice/roles/ns16/vars/customers.yml
name: customers
- file:
path: /home/vagrant/stunnelSimAnsPractice/roles/ns16/sessions/{%for cust, config in customers.items() %}{{cust}}{% endfor %}
state: directory
但是这会输出一个目录,其中所有客户名称都已组合在一起,如下所示。有关如何为每个客户创建单个目录的任何建议?谢谢
├── sessions
│ └── GFAMTEST-BANKBTG-VELOCITYTYPOBANKMAINBANKGUANFABANKONEZERO2
答案 0 :(得分:1)
您无法在Ansible中的单个参数内循环。
使用loops作为Ansible的目的是:
- file:
path: /home/vagrant/stunnelSimAnsPractice/roles/ns16/sessions/{{ item }}
state: directory
with_items: ### and here you need to put the list containing the directory names
遗憾的是,您没有提供变量的完整定义,因此您需要自定义代码以满足您的需求。