Path 使用Ansible获取文件的当前路径
在Ansible中,我需要自动获取文件的父目录或当前路径,在某些chef框架中,我们有chef::config,它将自动获取文件路径Path 使用Ansible获取文件的当前路径,path,ansible,ansible-playbook,Path,Ansible,Ansible Playbook,在Ansible中,我需要自动获取文件的父目录或当前路径,在某些chef框架中,我们有chef::config,它将自动获取文件路径 e.g: /tasks/main.yml: name: execute cmd command: python file.py 如果我的“file.py”在tasks文件夹中,我只需要从该路径执行我的playbook,如:/home/playbook/roles/sample/tasks,然后它只需要一个脚本文件并运行。假设当我从根路径运行
e.g:
/tasks/main.yml:
name: execute cmd
command: python file.py
如果我的“file.py”在tasks文件夹中,我只需要从该路径执行我的playbook,如:/home/playbook/roles/sample/tasks,然后它只需要一个脚本文件并运行。假设当我从根路径运行时,我的意思是/home/playbook/path,它显示“没有这样的文件或目录”
我尝试过查找(env,HOME),它只需要/HOME,但与该文件路径无关
e.g:
/tasks/main.yml:
name: execute cmd
command: python file.py
那么采取当前文件路径如何给出答案
谢谢回复评论
script
模块将首先复制文件,然后运行它。如果使用角色,应将脚本放入roles/my_role/files
文件夹
评论的答案
script
模块将首先复制文件,然后运行它。如果使用角色,应将脚本放入roles/my_role/files
文件夹
我怀疑你想做错事。你想要实现什么?Ansible应在远程主机上运行任务。如果您需要在那里执行脚本,您应该提前复制它或使用
script
module。因此,script module会自动获取我的python脚本文件的路径并运行它???script
module会先复制文件,然后运行它。如果您使用角色,您应该将脚本放入roles/my_role/files
文件夹。谢谢Suvorov…..我怀疑您试图做错事。你想要实现什么?Ansible应在远程主机上运行任务。如果您需要在那里执行脚本,您应该提前复制它或使用script
module。因此,script module会自动获取我的python脚本文件的路径并运行它???script
module会先复制文件,然后运行它。如果您使用角色,您应该将脚本放入roles/my_role/files
文件夹。谢谢Suvorov…..它可以工作脚本模块只处理shell脚本,这个问题是关于python脚本的。@smiller171您可以执行任意脚本,只要指定正确的shebang。只需添加#/usr/bin/env python
到py脚本的开头,它将被成功执行。脚本模块只处理shell脚本,这个问题是关于python脚本的。@smiller171只要指定正确的shebang,就可以执行任意脚本。只需添加#/将usr/bin/env python
添加到py脚本的开头,它将被成功执行。