Ansible で空のファイルを作成するには、ansible.builtin.file モジュール の state
パラメーターに touch
を指定します。
Linux の touch
コマンドに相当する動きをするので、ファイルがなければ空のファイルを作成し、ファイルが存在する場合はタイムスタンプを更新する、という振る舞いになります。
空のファイルを作成する
tasks:
- name: Create file
ansible.builtin.file:
path: ~/sample.txt
state: touch
上記のようにすると、path
で指定したファイルを作成します。
ファイルが既に存在する場合は、ファイルの中身は変更せずに、タイムスタンプを更新します。
つまり、このタスクはすでにファイルが存在する場合も実行されます(changed
になる)。
タイムスタンプを更新しない
- name: Create empty file
ansible.builtin.file:
path: ~/sample.txt
state: touch
access_time: preserve
modification_time: preserve
ファイルがすでに存在する場合に、タイムスタンプを更新しないようにするには、access_time
および modification_time
パラメーターに preserve
を指定します(両方とも指定する必要があります)。
この指定により、ファイルがすでに存在している場合は、このタスクはスキップされるようになります。
関連記事
- Ansible タスク例: Docker と Docker Compose をインストールする
- Ansible タスク例: 任意のコマンドを実行する (ansible.builtin.command/shell)
- Ansible タスク例: 空のディレクトリを作成する (ansible.builtin.file)
- Ansible で VPS を設定するための準備
- Ansible で SSH サーバーをセキュアにする (ansible.builtin.lineinfile, ansible.builtin.service)
- Ansible タスク例: APT パッケージをインストールする (ansible.builtin.apt)
- Ansible タスク例: UFW でファイアウォールを設定する (community.general.ufw)