Ansible:如何更改Ansible Playbook中的活动目录?

- name: Go to the folder command: chdir=/opt/tools/temp 

当我运行我的剧本时,我得到:

 TASK: [Go to the folder] ***************************** failed: [host] => {"failed": true, "rc": 256} msg: no command given 

任何帮助深表感谢。

Ansible中没有当前目录的概念。 您可以指定特定任务的当前目录,就像您在手册中所做的一样。 唯一缺less的部分是要执行的实际命令。 尝试这个:

 - name: Go to the folder and execute command command: chdir=/opt/tools/temp ls 

如果你需要一个login控制台(比如捆绑器),那么你必须这样做的命令。

command: bash -lc "cd /path/to/folder && bundle install"

这个问题出现在我试图弄清楚为什么'shell'不是我的chdir条目时,我不得不恢复到Ansible 1.9的结果。 所以我会张贴我的解决scheme。

我有

 - name: task name shell: cmd: touch foobar creates: foobar chdir: /usr/lib/foobar 

它与Ansible> 2一起工作,但对于1.9,我不得不改变它。

 - name: task name shell: touch foobar args: creates: foobar chdir: /usr/lib/foobar 

只是想分享。