获取相对路径的任务文件的目录

Ros*_*oss 7 ansible

在我的剧本中,我运行一个执行脚本的local_action并存储该值以供将来使用:

- local_action: command python release.py
  register: release_url
Run Code Online (Sandbox Code Playgroud)

这很有效,直到我将我的剧本移动到子目录中.事实证明,该命令从您当前的工作目录(您运行ansible)运行,因此路径需要如下所示:

- local_action: command python roles/ghost/release.py
Run Code Online (Sandbox Code Playgroud)

我有一个目录结构如下:

  • group_vars /
  • 角色/
    • 鬼/
      • 任务/
        • main.yml
      • 模板/
      • release.py
  • site.yml

但是,角色/ ghost文件夹名称可以更改(并且硬编码这将不允许您从另一个目录运行该playbook).

如何获取tasks/main.yml的目录路径(发出local_action命令),所以我可以给它一个相对路径?

小智 2

您可以将release.py脚本放在roles/ghost/files/中,然后将其与local_action一起使用吗

- name: local scrpt 
  local_action: script release.py
Run Code Online (Sandbox Code Playgroud)

这样你可能不需要获取目录路径

这参考了目录布局部分中的操作http://www.ansibleworks.com/docs/playbooks_best_practices.html