ansible-playbook 获取另一个yml文件的返回结果
时间: 2023-10-08 13:03:47 浏览: 40
要获取另一个 YAML 文件的返回结果,需要使用 Ansible 的 `include_tasks` 模块或 `import_tasks` 模块。这两个模块都可以将另一个 YAML 文件中的任务导入到当前的 Playbook 中。
使用 `include_tasks` 模块时,可以将另一个 YAML 文件中的任务作为一个任务列表导入到当前 Playbook 中。然后可以使用 `register` 关键字将任务的执行结果保存到一个变量中,例如:
```
- include_tasks: tasks/another.yml
register: result
```
此时,`result` 变量将包含导入任务列表的执行结果。可以使用 `debug` 模块来查看结果,例如:
```
- debug:
var: result
```
使用 `import_tasks` 模块时,可以将另一个 YAML 文件中的任务作为一个独立的 Playbook 导入到当前 Playbook 中。可以使用 `include` 模块将另一个 Playbook 导入到当前 Playbook 中,例如:
```
- include: tasks/another.yml
vars:
some_variable: some_value
```
在另一个 Playbook 中,可以使用 `set_fact` 模块将执行结果保存到一个事实(fact)中,例如:
```
- name: Some task
command: some_command
register: command_result
- set_fact:
some_fact: "{{ command_result.stdout }}"
```
然后在当前 Playbook 中可以使用 `vars` 关键字来引用该事实,例如:
```
- debug:
var: some_fact
```
希望这些信息能对你有所帮助!