with_fileglob
は、リモートで安全に動作しますか?with_fileglobはリモートで安全に動作しますか?
主に私はwith_fileglob
と似たようなものを使用したいと思いますが、リモート/ターゲットマシン上のファイルではなく、実行可能なものではありません。
with_fileglob
は、リモートで安全に動作しますか?with_fileglobはリモートで安全に動作しますか?
主に私はwith_fileglob
と似たようなものを使用したいと思いますが、リモート/ターゲットマシン上のファイルではなく、実行可能なものではありません。
with_*
ルーピングメカニズムはすべて残念ながらローカルルックアップですので、Ansibleでこれを行うには本当にクリーンな方法はありません。デザインによるリモート操作は、接続や在庫などを扱う必要があるため、タスクに囲まなければなりません。
あなたができることは、ホストにシェルリングして出力を登録し、stdout_lines
部分出力の
だから、簡単な例は、このようなものになることがあります。これは、リモートホスト(例えば、host.example.com
)に接続/path/
下のすべてのファイル名を取得し、Ansibleのホストに戻ってコピーする
- name : get files in /path/
shell : ls /path/*
register: path_files
- name: fetch these back to the local Ansible host for backup purposes
fetch:
src : /path/"{{item}}"
dest: /path/to/backups/
with_items: "{{ path_files.stdout_lines }}"
パス:/path/host.example.com/
。
- name: get all managed vhosts
shell: find /etc/nginx/sites-enabled/ -type f -name \*-managed.conf
register: nginx_managed_virtual_hosts
- name: delete all managed nginx virtual hosts
file:
path: "{{ item }}"
state: absent
with_items: "{{ nginx_managed_virtual_hosts.stdout_lines }}"
あなたは、特定の持つすべてのファイルを見つけるためにそれを使用することができます:ls /path/*
を使用して
はので、ここですべてのnginxのは、仮想ホストを管理し、削除しfind
といくつかの簡単な正規表現を使用した例ですが、私のために動作しませんでした拡張子またはその他の任意の組み合わせ。たとえば、ディレクトリ内のすべてのファイルを取得するには:find /etc/nginx/sites-enabled/ -type f
。
あなたの経験上、これを行うとWindowsとLinuxの間の行末に問題がありますか?例えば。いくつかの 'with_items'は' dir/b'からstdoutをコピーして空白にしますか? – Nick