命令不能在“at_item”中执行完整的剧本

我是新手,并且正在尝试用最简单的方法为MongoDB备份写一个基本的手册。 这是我想要做的:

--- - hosts: mongo tasks: - name: Mongo Dump command: mongodump --out mdb_backup/mongodb_backup/ - name: MongoDb Backup command: "{{item}} chdir=~/mdb_backup/mongodb_backup/" with_items: - pwd - git add - git commit -m "Updates" - git push origin master 

而我的错误是:

 "warnings": ["Consider using git module rather than running git"]} [WARNING]: Consider using git module rather than running git 

我有关于安全的git模块的想法,但我不知道如何在我的场景中使用它。 有没有人可以帮忙?

这只是一个警告,您的代码仍然应该工作。

这个警告有时候很麻烦,因为Ansible只检查一些简单的string,所提到的Ansible模块(在这种情况下是git)缺less这样做所需的function。 这里也是这种情况。 git模块只能克隆/签出存储库,但不能添加文件,提交或推送。 所以你在这里没有做错什么。

要摆脱警告,你可以简单地这样做:

 with_items: - pwd - `which git` add - `which git` commit -m "Updates" - `which git` push origin master 

现在Ansible看到which而不是git作为命令。