我有一个分子场景,它创建了3个对接实例,每个实例都具有与相同角色不同的配置。当我将实例IP地址放在它们各自的配置文件中时,这三个实例彼此通信。
我需要测试每个实例的配置文件是否设置了正确的IP地址。
如何从goss访问ansible组和主机变量?
发布于 2019-10-03 14:23:18
由于goss可以使用yaml或json文件中的变量,所以我只是修改了verify.yml示例剧本,以导出这个变量并在goss命令中使用它。
- name: Verify
hosts: all
become: true
vars:
[...]
goss_vars: "{{ goss_test_directory }}/vars"
tasks:
[...]
- name: Register hostvars
copy:
content: "{'hostvars': {{ hostvars }}}"
dest: "{{ goss_vars }}"
- name: Execute Goss tests
command: "{{ goss_bin }} --vars {{ goss_vars }} -g {{ item }} validate --format {{ goss_format }}"
register: test_results
with_items: "{{ test_files.stdout_lines }}"
failed_when: false
[...]然后,goss测试文件中的变量可以作为{{ .Vars.hostvars }}使用。
https://devops.stackexchange.com/questions/9340
复制相似问题