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 

任何帮助深表感谢。

3 Solutions collect form web for “Ansible:如何更改Ansible Playbook中的活动目录?”

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 

只是想分享。

  • 什么用户将Ansible运行我的命令?
  • Ansible:同时部署在多个主机上
  • SSH代理转发与Ansible
  • 如何在一个完整的剧本中只运行一个任务?
  • Ansible SSH私钥在源代码pipe理?
  • Ansible创造一个virtualenv
  • 什么是简单的方法来自动创build不存在的目录
  • 如果没有安装软件包,如何使Ansible执行一个shell脚本
  • 如何获取Ansible主机文件中定义的当前机器的主机名?
  • 如何使用Ansible等待服务器重启?
  • 如何自动安装Ansible Galaxyangular色?