如何包含具有相对路径的任务?

时间:2019-05-24 11:30:12

标签: ansible

我正在尝试包含一个包含任务的文件。但失败如下

  

错误!无法检索文件内容找不到或访问   Ansible控制器上的“ /roles/k8s/tasks/Get_volumes.yaml”。如果你   正在使用模块,并期望文件存在于远程计算机上,请参见   remote_src选项

下面是我的ansible脚本。由于我将仅测试几个任务,因此我在角色文件夹中包含了任务文件。我不确定是否由于角色文件夹而失败。但是我无法解决。

---
- hosts: localhost
  vars:
    local_kubectl: kubectl
    local_array_api_url: https://Mystoragearray:5392/v1
    array_username: admin
    array_password: admin

  tasks: 
    #- import_tasks: /roles/k8s/tasks/GetVolume_token.yaml
    - include_tasks: /roles/k8s/tasks/Get_volumes.yaml

2 个答案:

答案 0 :(得分:2)

  

要包含具有相对路径的任务

相对于剧本基本目录(playbook_dir)放置文件。例如

- include_tasks: Get_volumes.yaml

相同
- include_tasks: "{{ playbook_dir }}/Get_volumes.yaml"

如果在DEFAULT_ROLES_PATH中配置了 / roles ,那么include_role可能是一个更好的选择

- include_role:
    name: k8s
    tasks_from: Get_volumes.yaml

答案 1 :(得分:0)

请再次验证路径。路径“ /roles/k8s/tasks/Get_volumes.yaml”正确吗?它应该类似于“ roles / k8s / tasks / Get_volumes.yaml”。 如果路径是正确的(似乎是从根目录“ /”开始),请向该ansible用户提供必要的权限。