Ansible

Ansible ~fileモジュール~

Ansible Documentationのfileモジュールの内容のメモです。

Ansible Documentation

概要

  • ファイル、シンボリックリンク、ディレクトリの設定や削除をします。他の多くのモジュールはfileモジュールと同じオプションをサポートします。

オプション

頻度 パラメータ 必須 デフォルト値 選択肢 説明
follow no no yes
no
既にファイルが存在する場合置き換えない。(要確認)
force no no yes
no
下記2ケースにおいてシンボリックリンクを強制的に作成する
・シンボリックリンク先のファイルが存在しない
・シンボリックリンク先のファイルが存在している("path"で指定したファイルのリンクを解除し、"src"で指定したファイルへのシンボリックリンクを作成する)。
group no - - chownコマンドで設定できる所有者グループの設定。
mode no - - chmodコマンドで設定できる権限設定。8進数の指定とシンボリックモード(例を参照)での指定が可能。
owner no - - chownコマンドで設定できる所有者ユーザの設定。
path yes - - ファイルパスの指定。
recurse no no yes
no
再帰的にファイル属性を変更するか(state=directoryの場合のみ)。
selevel no s0 - selinuxのレベル。
serole no - - selinuxのロール。
setype no - - selinuxのタイプ。
seuser no - - selinuxのユーザ。
src no - - 実体ファイルのパスを指定(state=linkの場合のみ)。相対パスは設定できない。
state no file file
link
directory
hard
touch
absent
file: ファイルが既に存在する場合に指定。もし存在しない場合、copyモジュールやtemplateモジュールを使用する。
link: シンボリックリンクの場合に指定。
directory: ディレクトリの場合に指定。存在しない場合サブディレクトリとして作成される。権限は上位から継承される。(要確認)
hard: ハードリンクの場合の指定。
touch: pathで指定したファイルが存在しない場合、空ファイルを作成する。既にファイルが存在する場合、タイムスタンプが更新される。
absent: ディレクトリやファイル、シンボリックリンクの削除。

example.yml
- file: path=/etc/foo.conf owner=foo group=foo mode=0644
- file: src=/file/to/link/to dest=/path/to/symlink owner=foo group=foo state=link
- file: src=/tmp/{{ item.path }} dest={{ item.dest }} state=link
  with_items:
    - { path: 'x', dest: 'y' }
    - { path: 'z', dest: 'k' }

# touch a file, using symbolic modes to set the permissions (equivalent to 0644)
- file: path=/etc/foo.conf state=touch mode="u=rw,g=r,o=r"

# touch the same file, but add/remove some permissions
- file: path=/etc/foo.conf state=touch mode="u+rw,g-wx,o-rwx"

参考