Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 在可循环播放器中注册循环中的变量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_944_0@

概述

我有两个可以完成的任务如下 tasks: - sHell: ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d' register: var1 - debug: var=var1 - sHell: ethtool -i {{ item }} | grep bus-info | cut -b 16-22 with_items: var1.st
我有两个可以完成的任务如下
tasks:
 - sHell: ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'
   register: var1
 - debug: var=var1

 - sHell: ethtool -i {{ item }} | grep bus-info | cut -b 16-22
   with_items: var1.stdout_lines
   register: var2
 - debug: var=var2

用于获取机器(linuX)中的接口列表,并获取每个接口的总线地址.在同一本书中,我还有一个以上的任务

- name: Binding thE interfaces
   sHell: echo {{ item.item }}
   with_flattened: var2.results
   register: var3

我期望从var2迭代值,然后打印总线编号.

var2.results如下

"var2": {
    "changed": true,"msg": "All items completed","results": [
        {
            "changed": true,"cmd": "ethtool -i br0: | grep bus-info | cut -b 16-22","delta": "0:00:00.005778","end": "2015-04-14 20:29:47.122203","invocation": {
                "module_args": "ethtool -i br0: | grep bus-info | cut -b 16-22","module_name": "sHell"
            },"item": "br0:","rc": 0,"start": "2015-04-14 20:29:47.116425","stderr": "","stdout": "","warnings": []
        },{
            "changed": true,"cmd": "ethtool -i enp13s0: | grep bus-info | cut -b 16-22","delta": "0:00:00.005862","end": "2015-04-14 20:29:47.359749","invocation": {
                "module_args": "ethtool -i enp13s0: | grep bus-info | cut -b 16-22","item": "enp13s0:","start": "2015-04-14 20:29:47.353887","stdout": "0d:00.0","cmd": "ethtool -i enp14s0: | grep bus-info | cut -b 16-22","delta": "0:00:00.005805","end": "2015-04-14 20:29:47.576674","invocation": {
                "module_args": "ethtool -i enp14s0: | grep bus-info | cut -b 16-22","item": "enp14s0:","start": "2015-04-14 20:29:47.570869","stdout": "0e:00.0","cmd": "ethtool -i enp15s0: | grep bus-info | cut -b 16-22","delta": "0:00:00.005873","end": "2015-04-14 20:29:47.875058","invocation": {
                "module_args": "ethtool -i enp15s0: | grep bus-info | cut -b 16-22","item": "enp15s0:","start": "2015-04-14 20:29:47.869185","stdout": "0f:00.0","cmd": "ethtool -i enp5s0f1: | grep bus-info | cut -b 16-22","delta": "0:00:00.005870","end": "2015-04-14 20:29:48.112027","invocation": {
                "module_args": "ethtool -i enp5s0f1: | grep bus-info | cut -b 16-22","item": "enp5s0f1:","start": "2015-04-14 20:29:48.106157","stdout": "05:00.1","cmd": "ethtool -i enp5s0f2: | grep bus-info | cut -b 16-22","delta": "0:00:00.005863","end": "2015-04-14 20:29:48.355733","invocation": {
                "module_args": "ethtool -i enp5s0f2: | grep bus-info | cut -b 16-22","item": "enp5s0f2:","start": "2015-04-14 20:29:48.349870","stdout": "05:00.2","cmd": "ethtool -i enp5s0f3: | grep bus-info | cut -b 16-22","delta": "0:00:00.005829","end": "2015-04-14 20:29:48.591244","invocation": {
                "module_args": "ethtool -i enp5s0f3: | grep bus-info | cut -b 16-22","item": "enp5s0f3:","start": "2015-04-14 20:29:48.585415","stdout": "05:00.3","cmd": "ethtool -i enp9s0f0: | grep bus-info | cut -b 16-22","delta": "0:00:00.005943","end": "2015-04-14 20:29:48.910992","invocation": {
                "module_args": "ethtool -i enp9s0f0: | grep bus-info | cut -b 16-22","item": "enp9s0f0:","start": "2015-04-14 20:29:48.905049","stdout": "09:00.0","cmd": "ethtool -i enp9s0f1: | grep bus-info | cut -b 16-22","end": "2015-04-14 20:29:49.143706","invocation": {
                "module_args": "ethtool -i enp9s0f1: | grep bus-info | cut -b 16-22","item": "enp9s0f1:","start": "2015-04-14 20:29:49.137843","stdout": "09:00.1","cmd": "ethtool -i lo: | grep bus-info | cut -b 16-22","delta": "0:00:00.005856","end": "2015-04-14 20:29:49.386044","invocation": {
                "module_args": "ethtool -i lo: | grep bus-info | cut -b 16-22","item": "lo:","start": "2015-04-14 20:29:49.380188","stderr": "CAnnot get driver information: Operation not supported","cmd": "ethtool -i virbr0: | grep bus-info | cut -b 16-22","delta": "0:00:00.005859","end": "2015-04-14 20:29:49.632356","invocation": {
                "module_args": "ethtool -i virbr0: | grep bus-info | cut -b 16-22","item": "virbr0:","start": "2015-04-14 20:29:49.626497","cmd": "ethtool -i virbr0-nic: | grep bus-info | cut -b 16-22","delta": "0:00:00.024850","end": "2015-04-14 20:29:49.901539","invocation": {
                "module_args": "ethtool -i virbr0-nic: | grep bus-info | cut -b 16-22","item": "virbr0-nic:","start": "2015-04-14 20:29:49.876689","warnings": []
        }
    ]

我的目标是获取上面每个项目中的stdout的值,例如(“stdout”:“09:00.0”).我试着给些东西

- name: Binding thE interfaces
       sHell: echo {{ item.item.stdout}}
       with_flattened: var2.results
#       with_indexed_items: var2.results
       register: var3

但这并不是正确地给出了stdout中的总线值.在第二个变量和索引列表中,给出下面给出的任务中列出变量值变量的帮助.我试图避免直接的索引编号,如项目[0],因为接口的数量是动态的,直接索引可能会导致意想不到的结果.

谢谢

解决方法

这是你要找的:
- hosts: localhost
  tags: s21
  gather_facts: no
  vars:
    images:
      - foo
      - bar
  tasks:
    - sHell: "echo result-{{item}}"
      register: "r"
      with_items: "{{images}}"

    - debug: var=r

    - debug: msg="item.item={{item.item}},item.stdout={{item.stdout}},item.changed={{item.changeD}}"
      with_items: "{{r.results}}"

    - debug: msg="Gets printed only if this item changed - {{item}}"
      when: "{{item.changed == truE}}"
      with_items: "{{r.results}}"

资料来源:Register variables in with_items loop in Ansible playbook

大佬总结

以上是大佬教程为你收集整理的linux – 在可循环播放器中注册循环中的变量全部内容,希望文章能够帮你解决linux – 在可循环播放器中注册循环中的变量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。