【问题标题】:Ansible read_csv module:How to provide pathAnsible read_csv 模块:如何提供路径
【发布时间】:2020-10-16 00:23:47
【问题描述】:

我有一个如下的 csv 文件

Hostname,Permission,User,Group,file
lbserver1,-rw-------,root,root,/tmp/dir1/4
lbserver2,drwx------,root,root,/tmp/dir1
lbserver3,-rw-------,root,root,/tmp/dir2/8

我需要使用路径作为键。我的剧本如下

  - name: read csv
    read_csv:
     path: "/tmp/test.csv"
     key: file
    register: file_details
  - name: test
    debug:
     msg: "{{file_details.dict./tmp/dir2/5.Permission}}"

我得到错误

"msg": "模板化字符串时出现模板错误:预期名称或数字。字符串:{{file_details.dict./tmp/dir2/5'.Permission}}"

我为路径提供了引号和转义字符,但仍然没有运气。请指教。

【问题讨论】:

    标签: csv ansible


    【解决方案1】:

    您可以像下面这样更改代码:

        - name: test
          debug:
            msg: "{{ file_details.dict['/tmp/dir2/5'].Permission }}"
    

    但是,如果密钥不存在(在您的示例中就是这种情况),则会引发错误。在这种情况下,您可以使用一些default

        - name: test
          debug:
            msg: "{{ file_details.dict['/tmp/dir2/5'].Permission | default('undefined') }}"
    

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      • 2019-04-17
      相关资源
      最近更新 更多