find
Ansible再生を使用して結果をファイルに保存したいと思います。
- name: Find / -name "postgresql"
find:
paths: /var/log
patterns: 'postgresql'
上記の結果はファイルとして保存されます。簡単に言えば、コマンドはfind / -name "postgresql" > text.txt
シェルにあります。 Ansibleでこのコマンドをどのように実行しますか?
答え1
これを行うための可能な方法モジュールを探す/var/log/secure
そうかもしれません(私はpostgresを実行しないので、これを例として使用しています)。
---
- hosts: all
tasks:
- name: "Find file /var/log/secure"
find:
paths: /var/log
patterns: secure
register: result
- name: "Save find results to file"
copy:
content: "{{ result.files }}"
dest: "/tmp/find_result.txt"
コンテンツ/tmp/find_result.txt
:
# cat /tmp/find_result.txt
[{"uid": 0, "woth": false, "mtime": 1535012977.8429773, "inode": 9013905, "isgid": false, "size": 6867, "wgrp": false, "isuid": false, "isreg": true, "gid": 0, "ischr": false, "wusr": true, "xoth": false, "islnk": false, "nlink": 1, "issock": false, "rgrp": false, "path": "/var/log/secure", "xusr": false, "atime": 1534925281.706685, "isdir": false, "ctime": 1535012977.8429773, "isblk": false, "xgrp": false, "dev": 64768, "roth": false, "isfifo": false, "mode": "0600", "rusr": true}]
結果を登録して戻り値を調べると、潜在files
的に便利な豊富なメタデータにアクセスできます。
より少ない出力が必要な場合は、他の文書化された戻り値を使用してください。ここ。
答え2
使用する必要がありますAnsible シェルモジュールこの場合。
例は次のとおりです。
- name: Find / -name "postgresql"
shell: find / -name "postgresql" > /tmp/text.txt