我想为test2创建具有2个子目录(/ home / test1 / bin和/ home / test2 / conf)的多个目录(test1,test2)。我的剧本看起来像这样:
public boolean isGenymotionEmulator(String buildManufacturer) {
return buildManufacturer != null &&
(buildManufacturer.contains("Genymotion") || buildManufacturer.equals("unknown"));
}
public boolean buildModelContainsEmulatorHints(String buildModel) {
return buildModel.startsWith("sdk")
|| "google_sdk".equals(buildModel)
|| buildModel.contains("Emulator")
|| buildModel.contains("Android SDK");
}
但是我收到以下错误:
--
- hosts: localhost
tasks:
- name: Create directory
file: path=/home/{{item}}/bin state=directory
file: path=/home/{{item}}/conf state=directory
with_items:
- test1
- test2
这是什么问题?我使用最新的git checkout。有没有更好的方法来解决这个问题?
答案 0 :(得分:13)
我认为由于您在1个任务中使用file
模块2次而引发错误。每个任务只能使用1个模块。
在您的情况下,您应该使用nested loop来创建多个目录和子目录。
示例:
---
- hosts: localhost
tasks:
- name: test
file: path=/tmp/{{item.0}}/{{item.1}} state=directory
with_nested:
- ['test1', 'test2']
- ['bin', 'conf']