在Ansible中获取父目录?

Pit*_*kos 15 yaml path ansible

有没有办法在Ansible中评估相对路径?

tasks:
  - name: Run docker containers
    include: tasks/dockerup.yml src_code='..'
Run Code Online (Sandbox Code Playgroud)

基本上我有兴趣将源代码路径传递给我的任务.碰巧源代码是父路径,{{ansible_inventory}}但似乎没有任何东西可以实现开箱即用.

----进一步信息----

项目结构:

myproj
  app
  deploy
    deploy.yml
Run Code Online (Sandbox Code Playgroud)

所以我试图访问app距离deploy.yml.

udo*_*dan 31

我只是看了一下源代码,发现了一个我不知道的过滤器.忘记以前的字符串操作,就是这么简单:

{{ inventory_dir | dirname }}
Run Code Online (Sandbox Code Playgroud)

其他有用的滤镜


上一个答案:

这应该这样做:

{{ inventory_dir.split("/")[0:-1]|join("/") }}
Run Code Online (Sandbox Code Playgroud)

上一个答案:

{{ inventory_dir }}想做什么?

同样可用的inventory_dir是包含Ansible库存主机文件的目录的路径名

或者,如果您的意思是"父目录",那么您的任务所在角色的路径{{ role_path }}可能会成功.

最后,role_path将返回当前角色的路径名(自1.8起).这只适用于角色.

来自http://docs.ansible.com/ansible/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts

  • 还有`| 目录名 | dirname` 语法似乎适用于祖父母目录。 (3认同)