如何通过临时命令将多个值传递给 "with_items"?

How to pass multiple values to "with_items" through ad-hoc command?

这里是 ansible-playbook 示例,如果我想通过终端的临时命令传递 {{ item.first }} 和 {{ item.second }} 的值。

我们该怎么做?

提前致谢..

---
- hosts: localhost
  tasks:
  - name: Here we are providing a list which have items containing multiple 
    debug:
      msg: "current first value is {{ item.first }} and second value is {{ item.second }}"
    with_items:
      - { first: lemon, second: carrot }
      - { first: cow, second: goat }

因此,要通过从命令行(或其他任何地方)传递值来循环执行 debug 任务,您需要为任务使用一个变量(例如 with_items: "{{ my_var }}")。

有很多方法可以为变量提供值,但是对于这个特定的需求,我们可以使用--extra-vars

考虑如下剧本myplaybook.yml

- hosts: localhost

  tasks:
    - name: Here we are providing a list which have items containing multiple
      debug:
        msg: "current first value is {{ item.first }} and second value is {{ item.second }}"
      with_items: "{{ my_var }}"

可以 运行 通过将此变量传递到命令行为:

ansible-playbook myplaybook.yml -e '{my_var: [{first: lemon, second: carrot}, {first: cow, second: goat}]}'

请注意可以提供变量的其他方法(上面链接),如果它们比这种方法更有效,请使用它们。