这是我的剧本 main.yml。我想在 import_playbook 模块中使用 playbook_name 变量。但我无法访问它。有什么办法可以访问这个变量吗?
---
- hosts: localhost
connection: local
tasks:
- name: Get playbook_name
shell: <command>
register: playbook_name
ignore_errors: yes
become: yes
- debug: var=hostvars['localhost']['playbook_name']
ignore_errors: True
- name: Include playbook based on playbook_name
import_playbook: "{{ hostvars['localhost']['playbook_name']['response'] }}"
答案 0 :(得分:0)
我建议在您的清单下创建一个新文件,例如 inventory/internal_vars
,然后将您的变量放入其中。然后,您可以使用 vars_files
手册中的 main.yml
模块将该文件作为变量导入,如下所示:
- hosts: localhost
connection: local
vars_files:
- inventory/internal_vars
tasks:
- name: Get playbook_name
shell: <command>
register: playbook_name
ignore_errors: yes
become: yes
注意:文件的路径必须是从您的剧本到库存/internal_vars 文件的相对路径。上面的代码假设剧本和清单文件夹位于基本级别文件夹中。