在 ansible blockinfile 模块的块内使用选项卡

在 ansible blockinfile 模块的块内使用选项卡

我想使用 ansible 输出一些以制表符作为分隔符的文本

这是任务片段

- name: Create output file
  blockinfile:
    block: |
      Some text\tmore text
    path: '{{ playbook_dir }}/output.txt'
    create: true

电流输出

# BEGIN ANSIBLE MANAGED BLOCK
Some text\tmore text
# END ANSIBLE MANAGED BLOCK

期望的

# BEGIN ANSIBLE MANAGED BLOCK
Some text   more text
# END ANSIBLE MANAGED BLOCK

答案1

YAML 块保留 TAB。您必须使用不会用空格替换 TAB 的编辑器。我用了在下面的例子中。的价值字符串2是用“0”封闭的空格。的价值字符串3有 2 个选项卡以“0”关闭(此处复制并粘贴当然删除了选项卡)。

- hosts: localhost

  vars:

    str1: |
      01234567890
    str2: |
      0         0
    str3: |
      0         0

  tasks:

    - debug:
        msg:
          str1 {{ str1|length }} {{ str1 }}
          str2 {{ str2|length }} {{ str2 }}
          str3 {{ str3|length }} {{ str3 }}

给出了删节的

  msg: |-
    str1 12 01234567890
    str2 12 0         0
    str3 5 0               0

相关内容