ansible yum列出多个属性

时间:2018-06-10 02:20:32

标签: ansible

我正在尝试从yumoutput打印出多个属性,但这只打印出最后一个属性(repo)。如何使用map打印yumoutput的多个属性?

- name: yum updates
  yum:
    list: updates
  register: yumoutput
- debug: 
    msg: "{{yumoutput.results |map(attribute='name') | map(attribute='repo') |list }}"

yumoutput包含以下属性:

{
    "arch": "x86_64",
    "name": "libgcc",
    "release": "3.el6",
    "repo": "epel",
    "version": "4.4.7",
    "yumstate": "available"
}

1 个答案:

答案 0 :(得分:0)

  

如何使用ui->tableView->setModel(scoreModel); //ui->tableView->setEditTriggers(QAbstractItemView::DoubleClicked); ui->tableView->verticalHeader()->hide(); ui->tableView->resizeColumnsToContents(); ui->tableView->resizeRowsToContents(); //ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableView->horizontalHeader()->setStretchLastSection(true); 从yumoutput打印出多个属性?

在这种情况下,您无法使用map

过滤器按顺序工作,因此在map之后,您有一个列表(正式为地图生成器对象),其值仅为map(attribute='name')密钥,且name的信息不可用后续过滤器。

相反,您可以使用JMESPath查询获得所需的结果:

repo

或者如果您只想要嵌套的值列表:

- debug:
    msg: "{{ yumoutput | json_query(my_query) }}"
  vars:
    my_query: "results[].{name: name, repo: repo}"