loops - 在这种情况下如何循环数组?
问题描述
我的剧本中有以下变量:
frontends:
- domain01.fr
- domain02.fr
- domain03.fr
- domain04.fr
我需要能够通过 Ansible 剧本步骤在文件中写入以下内容:
tcp://domain01.fr:11211,tcp://domain02.fr:11211,tcp://domain03.fr:11211,tcp://domain04.fr:11211
我想出了以下解决方案,但我对此并不满意。
- name: Setting up Apache (2/2)
lineinfile:
path: /etc/opt/rh/rh-php56/php.ini
regexp: '^session.save_path ='
line: "session.save_path = 'tcp://{{ frontends | join(':11211,tcp://') }}'"
我不能硬写lineinfile
方法中的域,因为它依赖很多,而且在某些情况下我只有 2 个域而不是 4 个域。
是否有可能有以下内容:
- name: Setting up Apache (2/2)
lineinfile:
path: /etc/opt/rh/rh-php56/php.ini
regexp: '^session.save_path ='
line: "session.save_path = '{% for frontend in frontends %} tcp://{% frontend %}:11211,{% endfor %}'"
先感谢您
解决方案
是的。这是可能的。下面的行
regexp: '^session.save_path ='
line: >-
session.save_path ={% for frontend in frontends %}
tcp://{{ frontend }}:11211{% if not loop.last %},{% endif %}{% endfor %}
给
session.save_path = tcp://domain01.fr:11211, tcp://domain02.fr:11211, tcp://domain03.fr:11211, tcp://domain04.fr:11211
推荐阅读
- python - Pandas 方括号链接与单括号中的双索引
- python - 如何在 Python 脚本中通过 CMDline 传递参数
- python - 如何在 Chatterbot 烧瓶应用程序中发送可点击的链接和邮件
- elasticsearch - 带有数字标记的弹性搜索映射
- .net - SQL Server 忽略连接字符串参数
- scala - 发现 scala 类型不匹配 Future[A] 预期 Future[B]
- sql - SQL 计数未完成的行
- r - 如何在 R 中沿着距离矩阵绘制树状图?
- java - 在 void 异步方法之外获取字符串的值?
- html - Rmarkdown 到 Windows 上的 html:DT::datatable 未呈现(怀疑 pandoc 问题)