linux 需要在“与项目”下的内容是在单独的文件,并包括在主剧本

j0pj023g  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(79)

我需要在“with_items:“下的内容是在一个单独的文件,包括/调用他们在主剧本,以及如何使语法包括在整个剧本的内容。
with_items内容

with_items:
        - { vm_id: 101, vm_name: vm1, vm_cores: 2, vm_sockets: 1, vm_memory: 2048, vm_storage: 20G }
        - { vm_id: 102, vm_name: vm2, vm_cores: 2, vm_sockets: 1, vm_memory: 2048, vm_storage: 20G }

字符串
我试着创建一个新文件为“list.yaml”

vars:
  list: vars/list.yaml


包括列表.yaml喜欢下面

with_items: "{{ list }}"


并使用了类似内容的示例

cpu: "{{ item.vm_cores }}"


我是不是错过了什么

aemubtdh

aemubtdh1#

鉴于文件

shell> cat list.yaml
- {vm_id: 101, vm_name: vm1, vm_cores: 2, vm_sockets: 1, vm_memory: 2048, vm_storage: 20G}
- {vm_id: 102, vm_name: vm2, vm_cores: 2, vm_sockets: 1, vm_memory: 2048, vm_storage: 20G}

字符串
使用 filelookup插件

- debug:
        msg: "cpu: {{ item.vm_cores }}"
      loop: "{{ lookup('file', 'list.yaml')|from_yaml }}"


gives(abridged)

msg: 'cpu: 2'
  msg: 'cpu: 2'


用于测试的完整剧本示例

- hosts: localhost

  tasks:

    - debug:
        msg: "cpu: {{ item.vm_cores }}"
      loop: "{{ lookup('file', 'list.yaml')|from_yaml }}"

相关问题