首页 > 解决方案 > 带有库存变量的 vars_files 中的动态文件名

问题描述

以下是简单的剧本

- name: Create VM and associated resources
  hosts: linux
  connection: local
  vars_files:
    - vars_files/{{ env_name }}_vars.yml
    - vars_files/base_vars.yml
  roles:
    - linux

我的库存文件是 TEST.yml

all:
  vars:
    env_name: TEST
linux:
  hosts:
    TEST-SERVER:
      ansible_host: 10.10.10.10

当我运行 playbook ansible-playbook -vvv plabook_test.yml 时,我收到以下错误。

由于未定义的变量,跳过 vars_file 'vars_files/{{ env_name }}_vars.yml'

知道如何在文件名中使用库存中的变量吗?

任何帮助是极大的赞赏。

谢谢,

标签: ansible

解决方案


由于关键“主机”,库存文件错误

all:
  vars:
    env_name: TEST
linux:
  host:
    TEST-SERVER:
      ansible_host: 10.10.10.10

你应该看到警告

[警告]:跳过组(linux)中的意外键(主机),只有“vars”、“children”和“hosts”有效

修复库存

all:
  vars:
    env_name: TEST
linux:
  hosts:
    TEST-SERVER:
      ansible_host: 10.10.10.10

推荐阅读