Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Path 使用Ansible获取文件的当前路径_Path_Ansible_Ansible Playbook - Fatal编程技术网

Path 使用Ansible获取文件的当前路径

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,然后它只需要一个脚本文件并运行。假设当我从根路径运行

在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,然后它只需要一个脚本文件并运行。假设当我从根路径运行时,我的意思是/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脚本的开头,它将被成功执行。