0

这是 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 }
4

1 回答 1

0

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}]}'

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

于 2021-12-27T14:31:11.327 回答