2015-09-23 6 views
5

test2と同様に、2つのサブディレクトリ(/ home/test1/binと/ home/test2/conf)を持つ複数のディレクトリ(test1、test2)を作成します。いただきました問題がここに可能な複数のディレクトリを作成する

An exception occurred during task execution. The full traceback is: 
Traceback (most recent call last): 
    File "/root/ansible/lib/ansible/executor/process/worker.py", line 122, in run 
    executor_result = TaskExecutor(host, task, job_vars, new_play_context, self._new_stdin, self._loader, shared_loader_obj).run() 
    File "/root/ansible/lib/ansible/executor/task_executor.py", line 89, in run 
    items = self._get_loop_items() 
    File "/root/ansible/lib/ansible/executor/task_executor.py", line 179, in _get_loop_items 
    items = self._shared_loader_obj.lookup_loader.get(self._task.loop, loader=self._loader, templar=templar).run(terms=loop_terms, variables=vars_copy) 
    File "/root/ansible/lib/ansible/plugins/lookup/items.py", line 26, in run 
    return self._flatten(terms) 
TypeError: _flatten() takes exactly 2 arguments (1 given) 

fatal: [localhost]: FAILED! => {"failed": true, "stdout": ""} 

:私は次のエラーを取得するしかし

-- 
- 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

は、あなたが問題を与えているあなたのコードの行を表示することができますか?どうやら、ある関数の引数が1つ欠けているようです。 – dasjkdj

+0

@victor私は上記の作業のためのコードを書いていない、私はそれを完了するために、安全なモジュールを使用しています。 – jugal

答えて

14

fileモジュールを1回のタスクで2回使用したためにエラーが発生したと思います。タスクごとに1つのモジュールしか使用しないでください。

場合によっては、nested loopを使用して複数のディレクトリとサブディレクトリを作成する必要があります。

例:

--- 
- hosts: localhost 
    tasks: 
    - name: test 
     file: path=/tmp/{{item.0}}/{{item.1}} state=directory 
     with_nested: 
     - ['test1', 'test2'] 
     - ['bin', 'conf'] 
+0

単一ファイルモジュールを使用しても同じエラーが発生しました。しかしネストされたループコードは魅力的に働いた。簡単な質問 - 私たちはリモートのWindowsマシン上で同じディレクトリ構造を作成することができますか? – jugal

+0

不思議なことに、ファイルモジュールを2回使用することができます(これはバージョン固有のものでしょうか?)しかし、 'with_items'は後者に'不可能な1.9.3'しか適用されません。 –

+0

@miked gitソース(v2。 0)。 Windowsマシンでは、win_fileモジュールを使用することができます。当初、それは私に悪い応答エラーを与えました。だから、私はWindowsノードを再起動しなければならなかった。 – jugal

関連する問題