これは、単一のコマンドを実行しchmod
てユーザー権限を読み取る必要があるAnsible自動化の一部です。したがって、
chmod -R $fileperm <filename>
ただし、ユーザーが何も提供していないため、空になることがありますfileperm
。$fileperm
この場合、ファイル権限は同じままである必要がありますが、上記のコマンドは失敗します。
chmod
両方のコマンドが異なる条件を持つことは望ましくありませんwhen
。
可能であれば、同じコマンドでユーザーが権限を提供するかどうかを受け入れる方法を提案しますか?現在Ansibleのcommand
モジュールを使用してchmod
。
ベストアンサー1
chmod
パスしcommand
たり電話したりしないでくださいshell
。モジュールを使用してfile
権限を設定します。参考文書。これはすごいです。このモジュールはファイル/ディレクトリの現在の状態を確認し、必要な場合にのみ変更します。
この場合、これを追加します。
- set_fact:
files:
- name: file1
mode: 0755
- name: file2
- name: file3
mode: 0644
- file:
path: "{{ item.name }}"
mode: "{{ item.mode | default(omit) }}"
loop: "{{ files }}"
「時々ユーザーが提供しないかもしれません」という言葉が何を意味するのかわかりません。 Ansibleは相互作用性がほとんどありません。だからどういう意味なのかよく分からない。また、bash変数について話しています$fileperm
。たとえば、Ansibleには「bash vars」はありません。彼らは本当であり、Jinjaを使ってそれを評価します。