ディレクトリ my_dir 内のすべてのファイルを削除する 2 つの方法を試しています。これは、別のファイルから管理されるパラメータです。私のワークフローは、最初にディレクトリを作成し、次にそのディレクトリにファイルをコピーしてから、そこにあるすべてのファイルを削除します。だからここに loop_control を使った私の最初の解決策があります:
---
# tasks file for deploy_files
- name: Create model directory
file:
path: "{{ my_dir }}"
state: directory
owner: "{{ my_daemon_name }}"
group: "{{ my_daemon_name }}"
mode: u=rwx,g=rX,o=rX
- name: Copy models
copy:
src: "{{ files_src_dir }}"
dest: "{{ my_dir }}"
owner: "{{ my_daemon_name }}"
group: "{{ my_daemon_name }}"
mode: u=rw,g=r,o=r
- name: Get directory listing
find:
path: "{{ my_dir }}"
file_type: any
hidden: yes
register: directory_content_result
- name: Remove directory content
file:
path: "{{ item.path }}"
state: absent
owner: "{{ my_daemon_name }}"
group: "{{ my_daemon_name }}"
mode: u=rw,g=r,o=r
with_items: "{{ directory_content_result.files }}"
loop_control:
label: "{{ item.path }}"
そして、これは loop_control を使用しない 2 番目のソリューションです。
---
# tasks file for deploy_files
- name: Create model directory
file:
path: "{{ my_dir }}"
state: directory
owner: "{{ my_daemon_name }}"
group: "{{ my_daemon_name }}"
mode: u=rwx,g=rX,o=rX
- name: Copy models
copy:
src: "{{ files_src_dir }}"
dest: "{{ my_dir }}"
owner: "{{ my_daemon_name }}"
group: "{{ my_daemon_name }}"
mode: u=rw,g=r,o=r
- name: Find files in directory
find:
path: "{{ my_dir }}"
register: files_to_delete
- name: Remove files in directory
file:
path: "{{ item.path }}"
state: absent
owner: "{{ my_daemon_name }}"
group: "{{ my_daemon_name }}"
mode: u=rwx,g=rX,o=rX
with_items: "{{ files_to_delete.files }}"
スクリプトを実行したときと同じように機能するものはありません。
エラー: 次のタスクのため、冪等性テストに失敗しました。
私のタスク Create model directory と Copy models は、既にテスト済みなので、完全に正常に動作することに注意してください。ファイルを削除する最後の 2 つのタスクを追加したときにのみ、スクリプトが失敗しました。誰かが私がここで間違ったことを手伝ってくれませんか? ありがとうございました。