【モジュールの使い方】File
機能
ファイルやシンボリックリンク、ディレクトリを作成、削除、属性変更が出来るモジュール
以下のような操作ができます。
+ 指定したファイル/ディレクトリのパーミッション変更
+ 空ファイルの作成
+ ディレクトリの新規作成
+ ハードリンク/シンボリックリンクの作成/変更
使用例
- ディレクトリ作成
- file: path=/usr/local/nginx state=directory mode=0755
ディレクトリの中身すべてのオーナーをroot:rootに変更
- file: path=/usr/local/nginx state=directory owner=root group=root recurse=yes
ディレクトリのシンボリックリンクを作成
- file: src=/usr/local/nginx state=link
主なパラメータ
パラメータ | 必須 | デフォルト値 | 選択肢 | 説明 |
---|---|---|---|---|
path | ○ | 対象のファイル、ディレクトリを指定 パラメータ名は「dest」か「name」でも可能 |
||
state | file | file link directory hard touch absent |
file:ファイルを指定 link:シンボリックリンクを指定 directory:ディレクトリを指定 hard:ハードリンクを指定 touch:指定したファイルが存在しない場合、空ファイルを作成する absent:ファイル、シンボリックリンク、ディレクトリを削除 |
|
owner | - | - | - | 所有ユーザを指定 |
group | - | - | - | 所有グループを指定 |
mode | - | - | - | パーミションを指定 |
src | - | - | - | リンク元を指定、state=linkの時のみ有効 |
recurse | - | no | yes/no | ディレクトリの中身全てを対象にするかどうか。state=directoryの時のみ有効 |
全パラメータ
パラメータ | 必須 | デフォルト値 | 説明 |
---|---|---|---|
access_time | none | ファイルのアクセス時間を設定する必要がある場合 変更が必要な場合:デフォルトの時間形式 YYYYMMDDHHMM.SS これは preserve がstate=[file,directory,link,hard]のデフォルトであり、state=touchのデフォルトであることを意味します。 |
|
access_time_format | “%Y%m%d%H%M.%S” | access_timeとともに使用する場合、使用する必要がある時間形式を示します。 デフォルトのPython形式に基づいています(time.strftimeドキュメントを参照) |
|
attributes | 結果のファイルシステムオブジェクトが持つべき属性 サポートされているフラグを取得するには、ターゲットシステムのchattrのマニュアルページを参照 この文字列には、lsattrによって表示されるものと同じ順序で属性が含まれている必要があります。 = 演算子がデフォルトとして想定されますそれ以外の場合は、 + または- 演算子を文字列に含める必要があります。 |
||
follow | yes | このフラグは、ファイルシステムリンクが存在する場合従います。 Ansible2.5以前はデフォルトは no でした。 |
|
force | no | 次の2つの場合に、シンボリックリンクを強制的に作成します。 ソースファイルが存在しない(但し、後で表示される) ファイルの宛先が存在する(パスファイルのリンクを解除し、代わりにsrcファイルへのシンボリックリンクを作成する必要がある。) |
|
group | 所有グループを指定 | ||
mode | パーミションを指定 | ||
modification_time | none | このパラメータは、時刻を設定しファイルの変更時刻を変更します 変更が不要な場合:デフォルトの時間形式「YYYYMMDDHHMM.SS」を利用し現在時刻で登録 これはpreserveがstate=[file,directory,link,hard]のデフォルトであり、state=touchのデフォルトであることを意味します。 |
|
modification_time_format | “%Y%m%d%H%M.%S” | modify_timeを使用した場合、時間形式をこのパラメータで指定可能 | |
owner | 所有ユーザを指定 | ||
path | 対象のファイル、ディレクトリを指定 パラメータ名は「dest」か「name」でも可能 |
||
recurse | no | ディレクトリの中身全てを対象にするかどうか。state=directoryの時のみ有効 | |
selevel | SELinuxファイルシステムオブジェクトコンテキストのlevel部分 これはMLS/MCS属性であり、 range とも呼ばれます。_default に設定すると、可能場合はポリシーのlevel 部分が使用されます |
||
serole | SELinuxファイルシステムオブジェクトコンテキストのrole部分_default に設定すると、可能な場合はポリシーのrole 部分が使用されます |
||
settype | SELinuxファイルシステムオブジェクトコンテキストのtype部分_default に設定すると、可能な場合はポリシーのtype 部分が使用されます |
||
seuser | SELinuxファイルシステムオブジェクトコンテキストのuser部分 デフォルトでは、該当する場合は system policy を使用します_default に設定すると、可能な場合はポリシーのuser 部分が使用されます |
||
src | リンク元を指定、state=linkの時のみ有効 | ||
state | file | file:ファイルを指定 link:シンボリックリンクを指定 directory:ディレクトリを指定 hard:ハードリンクを指定 touch:指定したファイルが存在しない場合、空ファイルを作成する absent:ファイル、シンボリックリンク、ディレクトリを削除 |
|
unsafe_writes | no | ターゲットファイルシステムオブジェクトからのデータの破損や一貫性のない読み取りを防ぐために、アトミック操作をいつ使用するかに影響を与えます。 デフォルトでは、このモジュールはアトミック操作を使用して、ターゲットファイルシステムオブジェクトからのデータのは沿うんや一貫性のない読み取りを防ぎますが、システムが構成されているのか、これを防ぐ方法で壊れている場合があります 1つの例は、Dockerにマウントされたファイルシステムオブジェクトです。 これは、コンテナ内からアトミックに更新することは出来ず、安全でない方法でのみ書き込むことができます。 このオプションを使用すると、アトミック操作が失敗した時にAnsibleがファイルシステムオブジェクトを更新する安全ではないメソッドにフォールバックできます (但し、Ansibleに安全でない書き込みの実行を強制することはありません) 重要!安全でない書き込みは競合状態の影響を受け、データの破損につながる可能性があります。 |
アトミック操作 他からの割り込みがない状態にすること
戻り値
Key | Type | Returned | 説明 | 例 |
---|---|---|---|---|
dest | String | 成功した場合 state=touch state=hard state=link |
引数「path」に指定されたファイル/パス | /path/to/file.txt |
path | String | 成功した場合 state=absent state=directory state=file |
引数「path」に指定されたファイル/パス | /path/to/file.txt|/path/to/file.txt |
ドキュメント
【Ansible Documentation】Module File