190

以下のコードは、Web ディレクトリ内で取得した最初のファイルのみを削除します。Web ディレクトリ内のすべてのファイルとフォルダーを削除し、Web ディレクトリを保持したいと考えています。どうやってやるの?

- name: remove web dir contents
    file: path='/home/mydata/web/{{ item }}' state=absent
    with_fileglob:
      - /home/mydata/web/*

注:rm -rfコマンドとシェルを使用してみましたが、機能しません。おそらく私はそれらを間違って使用しています。

正しい方向への助けをいただければ幸いです。

ansible 2.1.0.0 を使用しています

4

18 に答える 18

89

シェルモジュールの使用(べき等も):

- shell: /bin/rm -rf /home/mydata/web/*

ドット/隠しファイルがある場合:

- shell: /bin/rm -rf /home/mydata/web/* /home/mydata/web/.*

作成日と所有者/権限を気にしない場合の最もクリーンなソリューション:

- file: path=/home/mydata/web state=absent
- file: path=/home/mydata/web state=directory
于 2016-07-05T10:54:14.263 に答える
18

以下のコマンドを試してください。動作するはずです

- shell: ls -1 /some/dir
  register: contents

- file: path=/some/dir/{{ item }} state=absent
  with_items: {{ contents.stdout_lines }}
于 2016-07-05T12:04:00.873 に答える
4

ファイルグロブを使用しても機能します。投稿したコードに構文エラーがあります。私はこれを変更してテストしましたが、これは機能するはずです。

- name: remove web dir contents
  file:
    path: "{{ item }}"
    state: absent
  with_fileglob:
    - "/home/mydata/web/*"
于 2016-07-06T09:14:33.700 に答える
-6

以下は私のために働いた、

- name: Ansible delete html directory
  file:
   path: /var/www/html
   state: directory
于 2017-09-25T12:33:10.743 に答える