使用ansible打印YAML文件中缩进的变量值
我正在使用Ansible生成一个行为配置文件。此配置文件是YAML文件。我使用的Jinja2模板如下:使用ansible打印YAML文件中缩进的变量值,yaml,ansible,ansible-template,Yaml,Ansible,Ansible Template,我正在使用Ansible生成一个行为配置文件。此配置文件是YAML文件。我使用的Jinja2模板如下: default: paths: features: '../all/tests/features' filters: tags: "~@api&&~@drush" extensions: Behat\MinkExtension\Extension: files_path: '{{ project_docroot }}/sites/al
default:
paths:
features: '../all/tests/features'
filters:
tags: "~@api&&~@drush"
extensions:
Behat\MinkExtension\Extension:
files_path: '{{ project_docroot }}/sites/all/tests/files'
files_path: '{{ project_docroot }}'
goutte: ~
selenium2: ~
base_url: '{{ base_url }}'
Drupal\DrupalExtension\Extension:
blackbox: ~
drush_driver: "drush"
drush:
root: "{{ project_docroot }}"
api_driver: "drupal"
drupal:
drupal_root: "{{ project_docroot }}"
region_map:
{{ project_behat_region_map }}
selectors:
{{ project_behat_selectors }}
以及以下定义的变量:
project_behat_region_map: |
content: "#content"
footer: "#footer"
header: "#header"
header bottom: "#header-bottom"
navigation: "#navigation"
highlighted: "#highlighted"
help: "#help"
bottom: "#bottom"
project_behat_selectors: |
message_selector: '.messages'
error_message_selector: '.messages.error'
success_message_selector: '.messages.status'
warning_message_selector: '.messages.warning'
如您所见,变量值是缩进的,但粘贴到Jinja2模板时,缩进丢失:
default:
paths:
features: '../all/tests/features'
filters:
tags: "~@api&&~@drush"
extensions:
Behat\MinkExtension\Extension:
files_path: '/var/www//bacteriemias/docroot/sites/all/tests/files'
files_path: '/var/www//bacteriemias/docroot'
goutte: ~
selenium2: ~
base_url: 'http://bacteriemias.me'
Drupal\DrupalExtension\Extension:
blackbox: ~
drush_driver: "drush"
drush:
root: "/var/www//bacteriemias/docroot"
api_driver: "drupal"
drupal:
drupal_root: "/var/www//bacteriemias/docroot"
region_map:
content: "#content"
footer: "#footer"
header: "#header"
header bottom: "#header-bottom"
navigation: "#navigation"
highlighted: "#highlighted"
help: "#help"
bottom: "#bottom"
selectors:
message_selector: '.messages'
error_message_selector: '.messages.error'
success_message_selector: '.messages.status'
warning_message_selector: '.messages.warning'
这不是有效的YAML。如何在Jinja2中打印带有缩进的变量?事实证明,可以使用 缩进(s,宽度=4,缩进优先=False) 返回已通过的文件的副本 字符串,每行缩进4个空格。第一行不是 缩进的。如果要更改空格数或缩进 第一行也可以将其他参数传递给过滤器: {{mytext |缩进(2,真)} 缩进两个空格,第一行也缩进 因此,我的情况是:
default:
paths:
features: '../all/tests/features'
filters:
tags: "~@api&&~@drush"
extensions:
Behat\MinkExtension\Extension:
files_path: '{{ project_docroot }}/sites/all/tests/files'
files_path: '{{ project_docroot }}'
goutte: ~
selenium2: ~
base_url: '{{ base_url }}'
Drupal\DrupalExtension\Extension:
blackbox: ~
drush_driver: "drush"
drush:
root: "{{ project_docroot }}"
api_driver: "drupal"
drupal:
drupal_root: "{{ project_docroot }}"
region_map:
{{ project_behat_region_map | indent( width=8, indentfirst=True) }}
selectors:
{{ project_behat_selectors | indent( width=8, indentfirst=True) }}