Ansible:仅选择stdout的一部分

时间:2017-04-26 03:52:12

标签: ansible

我写了一个小剧本,如下所示

permissions.yaml

---
- hosts: centos

  tasks:
    - name: Set permissions
      find:
        paths: "/home/portaladmin/cq/author/crx-quickstart/repository/workspaces/crx.default/"
        patterns: "*.tar"
      register: tar_files

    - debug: var=tar_files.files[0].path

我在这里的输出很好

TASK [debug] *******************************************************************
ok: [local] => {
    "tar_files.files[0].path": "/home/portaladmin/cq/author/crx-quickstart/repository/workspaces/crx.default/1.tar"

但我实际上有10个tar文件,作为1.tar到10.tar。我们有什么方法可以获得从.tar到10.tar的所有文件的路径。

我尝试使用- debug: var=tar_files.files[0:].path- debug: var=tar_files.files[0:4].path但是得到的错误就像没有变量但是- debug: var=tar_files.files[0-10].path我在输出中只得到一个名为1.tar的文件。

我们有什么方法可以1.tar10.tar完成路径吗?

1 个答案:

答案 0 :(得分:1)

这样做:

- debug: var=item.path
  with_items: "{{ tar_files.files }}"

你不是在这里处理任何标准输出,而是处理Python对象。 tar_files是一个字典,tar_files.files是一个列表,所以你应该迭代它的元素。