Ansible + Test Kitchen:将数组数据传递到相关模块

Ansible + Test Kitchen: passing Array data into dependent module

我正在尝试设置 Ansible + Test Kitchen 来测试 Sonatype Nexus 的 Galaxy 模块。为此,我需要依赖 geerlingguy.java 并且我想通过传递数组 java_packages: ['java-1.8.0-openjdk'].

来覆盖默认的 Java 版本

role dependencies 的文档说明:

Role dependencies allow you to automatically pull in other roles when using a role. Role dependencies are stored in the meta/main.yml file contained within the role directory. This file should contain a list of roles and parameters to insert before the specified role, such as the following in an example roles/myapp/meta/main.yml

后面是如何传递标量数据的示例,但后面没有数组或散列数据的示例。

我试过这两种方法:

---
dependencies:
  - { role: geerlingguy.java,
      java_packages: ['java-1.8.0-openjdk'] }

也都在一条线上:

---
dependencies:
  - { role: geerlingguy.java, java_packages: ['java-1.8.0-openjdk'] }

在这种情况下,java_packages 似乎被忽略,使用默认值 Java 1.7.0。

我也试过这个:

---
dependencies:
  - { role: geerlingguy.java,
      java_packages: 
        - java-1.8.0-openjdk }

这会导致出现语法错误。

是否可以像我在使用 Test Kitchen 时尝试做的那样传入数组数据?

我能够以另一种方式实现它,使用 .kitchen.yml 中的 extra_vars:

  extra_vars:
    java_packages: ['java-1.8.0-openjdk']