AnsibleのModule:file
お疲れ様です。伊藤です。
引き続きAnsibleのModuleについて記載していきます。前回よく使うModuleとして順番的にはcronになるのですが、よく使いそうな順に公開していきたいと思いますので次はfileです。こちらも公式のHP情報から翻訳した内容をお届けします。
説明文は下記になります。
ファイル、シンボリックリンク、およびディレクトリの属性を設定するか、ファイル/シンボリックリンク/ディレクトリを削除します。他のモジュールの多くは、コピー、テンプレート、アセンブルなど、ファイルモジュールと同じオプションをサポートしています。
ファイルを削除したり作成したり権限を変えれる、mkdir + touch + chmod + rmってところですかね。こちらも使い方や機能は難しくないのですが、オプションが大量にあります。
オプションはこちらです。
パラメータ | 必須 | デフォルト | 選択肢 | 備考 |
---|---|---|---|---|
attributes | no | None | ファイルまたはディレクトリに必要な属性。 サポートされているフラグを取得するには、ターゲットシステムの chattr のマニュアルページを参照してください。 この文字列には、 lsattr で表示されているものと同じ順序で属性を含める必要があります。 | |
follow | no | no | yes no | このフラグは、存在する場合、ファイルシステムのリンクが続くことを示します。 |
force | no | no | yes no | シンボリックリンクの作成を強制するのは2つの場合です:ソースファイルは存在しませんが(後で表示されます)。 送信先が存在し、ファイルである(したがって、 "path"ファイルのリンクを解除し、その代わりに "src"ファイルへのシンボリックリンクを作成する必要があります)。 |
group | no | chown に供給されるような、ファイル/ディレクトリを所有すべきグループの名前。 | ||
mode | no | ファイルまたはディレクトリをモードにする必要があります。 / usr / bin / chmod でモードが実際には0644のような8進数であることを覚えている人のために。 先行ゼロを離れると、予期しない結果が生じる可能性があります。 バージョン1.8では、モードはシンボリックモード(たとえば、 u + rwx または u = rw、g = r、o = r )として指定できます。 | ||
owner | no | chown に供給されるファイル/ディレクトリを所有するユーザーの名前。 | ||
path | yes | 管理されているファイルへのパス。 エイリアス: dest 、名前 | ||
recurse | no | no | yes no | 指定されたファイル属性を再帰的に設定します(state = directoryにのみ適用) |
selevel | no | s0 | SELinuxファイルコンテキストのレベル部分。 これは、MLS / MCS属性であり、 range と呼ばれることもあります。 _default 機能は seuser のように機能します。 | |
serole | no | SELinuxファイルコンテキストの役割部分、 _default 機能は seuser のように機能します。 | ||
setype | no | SELinuxファイルコンテキストのタイプ部分、 _default 機能は seuser のように機能します。 | ||
seuser | no | SELinuxファイルコンテキストのユーザ部分。 該当する場合、システムポリシーをデフォルトにします。 _default に設定されている場合、利用可能であれば、ポリシーの user 部分が使用されます。 | ||
src | no | リンクするファイルのパス( state = link にのみ適用されます)。 絶対パス、相対パス、存在しないパスを受け入れます。 相対パスは展開されません。 | ||
state | no | file | file link directory hard touch absent | directory の場合、存在するすべてのサブディレクトリは存在しない場合に作成されます。link の場合、シンボリックリンクが作成または変更されます。 ハードリンクには hard を使用します。 absent の場合、ディレクトリは再帰的に削除され、ファイルやシンボリックリンクはリンク解除されます。 状態が変更されていないため path が存在しない場合、 file は失敗しません。 touch (1.4の新機能)の場合、 path が存在しない場合は空のファイルが作成され、既存のファイルやディレクトリには更新されたファイルアクセスと変更時刻 `touch`がコマンドラインから動作するのと同じように)。 |
unsafe_writes | no | 通常、このモジュールでは、アトミック操作を使用してデータの破損やターゲットファイルからの一貫性のない読み込みを防止しています。 1つの例は、ドッカーがマウントしたファイルです。アトミックに更新することはできず、安全でない方法でのみ実行できます。このブールオプションは、他の選択肢がない場合にファイルを更新する安全でない方法にフォールバックすることを可能にします。これは競合状態になり、データが破損する可能性があることに注意してください。 |
プレイブックの例は下記になります。
# ファイルの所有権、グループ、モードを変更します。 8進数を使用してモードを指定する場合、最初の桁は常に0にする必要があります。 - 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.src }}' dest: '{{ item.dest }}' state: link with_items: - { src: 'x', dest: 'y' } - { src: 'z', dest: 'k' } # ファイルに触れる、記号モードを使用してパーミッションを設定する(0644に相当) - file: path: /etc/foo.conf state: touch mode: "u=rw,g=r,o=r" # 同じファイルに触れるが、いくつかのパーミッションを追加/削除する - file: path: /etc/foo.conf state: touch mode: "u+rw,g-wx,o-rwx" # ディレクトリが存在しない場合は作成する - file: path: /etc/some_directory state: directory mode: 0755
戻り値については存在しなさそうです。この辺りはModuleを作っている方が別々なので癖が出ますね。
以上です。お疲れ様でした。