首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ansible -如何使用with_items中的寄存器名称

Ansible -如何使用with_items中的寄存器名称
EN

Stack Overflow用户
提问于 2016-07-20 05:21:57
回答 1查看 723关注 0票数 0

在我目前的攻略中,我有如下内容:

代码语言:javascript
运行
复制
- name: Copy cov-analysis-linux64-8.0.0.tgz
  copy: src=/home/devops/chroot/cov-analysis-linux64-8.0.0.tgz                     dest=/var/tmp/cov-analysis.tgz owner=devops
  register: coverity

- name: Copy fortidev-2.02.chroot.tar.bz2
  copy: src=/home/devops/chroot/fortidev-2.02.chroot.tar.bz2
  dest=/var/tmp/fortidev2.chroot.tar.bz2 owner=devops
  register: fortidev2

这个列表变得越来越长,为了代码的可读性,我想使用with_items来实现。我已经将其更新为类似以下内容:

代码语言:javascript
运行
复制
- name: copy chroot tarball to the servers
  copy: src={{ item.src }} dest={{ item.dest }} owner=devops
  register: "{{ item.register }}"
  with_items:
    - { src: /home/devops/chroot/cov-analysis-linux64-8.0.0.tgz, 
        dest: /var/tmp/cov-analysis.tgz,
        register: coverity
      }
    - { src: /home/devops/chroot/fortidev-2.02.chroot.tar.bz2,
        dest: /var/tmp/fortidev2.chroot.tar.bz2,
        register: fortidev2
      }
    - { src: /home/devops/chroot/fmdev-6.0.tar.xz,
        dest: /var/tmp/fmdev6.tar.xz,
        register: fmdev6
      }

现在的问题是,当我想在后续任务中引用其中一个寄存器时,它找不到变量。引用它的代码是:

代码语言:javascript
运行
复制
- name: umount fortidev2 /proc|/dev|/tmp|/cov-analysis 
  command: umount {{ item }}
  become: yes
  when: fortidev2.changed
  with_items:
          - /home/devops/fortidev2/proc
          - /home/devops/fortidev2/dev
          - /home/devops/fortidev2/tmp
  ignore_errors: yes

错误为{" failed ":true,"msg":“条件检查‘fortidev2.change’失败。错误是:计算条件(fortidev2.change)时出错:未定义'fortidev2‘\n\n错误似乎出现在fortidev2.change的第70行,第3列,但也可能在\n文件中的其他位置,具体取决于确切的语法问题。\n\n在删除文件夹之前,问题行出现在先卸载分析和分析\n- be:\n\n#:umount /proc /proc| /dev |/tmp|/cov-/dev\n^be:\n\n#\n“}

EN

回答 1

Stack Overflow用户

发布于 2016-07-20 07:07:03

试试这个:

代码语言:javascript
运行
复制
- name: copy chroot tarball to the servers
  copy: src={{ item.src }} dest={{ item.dest }} owner=devops
  register: tarballs
  with_items:
    - { src: /home/devops/chroot/cov-analysis-linux64-8.0.0.tgz, 
        dest: /var/tmp/cov-analysis.tgz,
        name: coverity
      }
    - { src: /home/devops/chroot/fortidev-2.02.chroot.tar.bz2,
        dest: /var/tmp/fortidev2.chroot.tar.bz2,
        name: fortidev2
      }
    - { src: /home/devops/chroot/fmdev-6.0.tar.xz,
        dest: /var/tmp/fmdev6.tar.xz,
        name: fmdev6
      }

- name: umount fortidev2 /proc|/dev|/tmp|/cov-analysis 
  command: umount {{ item }}
  become: yes
  when: tarballs.results | selectattr('item.name','equalto','fortidev2') | join('',attribute='changed') | bool
  with_items:
    - /home/devops/fortidev2/proc
    - /home/devops/fortidev2/dev
    - /home/devops/fortidev2/tmp
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38468763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档