Help us understand the problem. What is going on with this article?

Ansible statモジュールで取得できる内容

More than 5 years have passed since last update.

Ansible statモジュールで取得できる内容


Retrieves facts for a file similar to the linux/unix ‘stat’ command

(issueには上がっているようです。stat module documentation · Issue #107)




property type description
exists bool 存在すれば True / 存在しない場合は False (存在しない場合以下の全プロパティはundefined)
mode string "0777" 形式のアクセス権
isdir bool ディレクトリなら True
ischr bool キャラクタ型の特殊デバイスファイルの場合 True
isblk bool ブロック型の特殊デバイスファイルの場合 True
isreg bool 通常ファイルの場合 True
isfifo bool FIFO (名前つきパイプ) の場合 True
islnk bool シンボリックリンクの場合 True
issock bool ソケットの場合 True
uid number オーナーの uid
gid number オーナーの group id
size number ファイルのサイズ(単位: byte)
inode number inode 番号
dev number デバイス
nlink number ハードリンク数
atime number 最近にアクセスされた時間(Linuxの例: 1424174164.9125264)
mtime number 最近に内容を変更した時間(Linuxの例: 1424174164.9125264)
ctime number 最近のメタデータ変更時間(Linuxの例: 1424174164.9125264)
wusr bool ユーザーのwrite権があれば True
rusr bool ユーザーのread権があれば True
xusr bool ユーザーのexecute権があれば True
wgrp bool グループのwrite権があれば True
rgrp bool グループのread権があれば True
xgrp bool グループのexecute権があれば True
woth bool 他ユーザーのwrite権があれば True
roth bool 他ユーザーのread権があれば True
xoth bool 他ユーザーのexecute権があれば True
isuid bool セットUIDビットが立っていれば True
isgid bool セットgroup IDビットが立っていれば True
lnk_source string リンクの場合はリンク元の絶対パス、リンクでない場合はundefined
md5 string 通常ファイルでread権があればファイルのmd5
checksum string 通常ファイルでread権があればファイルのchecksum(sha1)
pw_name string ユーザー名


- hosts: localhost
    - stat: path=test.txt
      register: f
    - debug: msg="File exists."
      when: f.stat.exists # ファイルが存在すれば実行
    - debug: var=f.stat # デバッグ用
    - stat: path=test_not_found.txt
      register: f
    - debug: msg="File not exists."
      when: not f.stat.exists # ファイルが存在しなければ実行
    - debug: var=f.stat # デバッグ用




$ ansible-playbook -i hosts stat-test.yaml

PLAY [localhost] **************************************************************

GATHERING FACTS ***************************************************************
ok: [localhost]

TASK: [stat path=test.txt] ****************************************************
ok: [localhost]

TASK: [debug msg="File exists."] **********************************************
ok: [localhost] => {
        "msg": "File exists."

TASK: [debug var=f.stat] ******************************************************
ok: [localhost] => {
        "f.stat": {
                "atime": 1424177381.4317896,
                "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
                "ctime": 1424177378.7864673,
                "dev": 2049,
                "exists": true,
                "gid": 1000,
                "inode": 919511,
                "isblk": false,
                "ischr": false,
                "isdir": false,
                "isfifo": false,
                "isgid": false,
                "islnk": false,
                "isreg": true,
                "issock": false,
                "isuid": false,
                "md5": "d41d8cd98f00b204e9800998ecf8427e",
                "mode": "0664",
                "mtime": 1424177378.7864673,
                "nlink": 1,
                "pw_name": "user",
                "rgrp": true,
                "roth": true,
                "rusr": true,
                "size": 0,
                "uid": 1000,
                "wgrp": true,
                "woth": false,
                "wusr": true,
                "xgrp": false,
                "xoth": false,
                "xusr": false

TASK: [stat path=test_not_found.txt] ******************************************
ok: [localhost]

TASK: [debug msg="File not exists."] ******************************************
ok: [localhost] => {
        "msg": "File not exists."

TASK: [debug var=f.stat] ******************************************************
ok: [localhost] => {
        "f.stat": {
                "exists": false

PLAY RECAP ********************************************************************
localhost                  : ok=7    changed=0    unreachable=0    failed=0



Python のドキュメント

情報技術と社員力でお客様を成功に導く Make IT Your Success
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away