上記の質問に従って:「Ansible、lineinfileモジュールで使用する特定の正規表現パターンを取得しようとしています。」
本質的に、私は2つの別々のプレーではなく、1つのプレーで動作するように努めており、これには正規表現が必要です。 sedで動作するいくつかのバリエーションを試しましたが、ここでは動作しないようです。たぶん私は狂ったかもしれません。私がやろうとしていることの例は次のとおりです。
- name: Change file contents on CentOS and Redhat servers.
lineinfile:
dest: /etc/blah/randomfile
regexp: '^ThisValueHere|^#ThisValueHere'
line: 'ThisValueHere no'
when: (ansible_distribution == "CentOS") or (ansible_distribution == "RedHat")
(はい、間違ったyml構文は無視してください。実際のプレイブックでは大丈夫です。)
デフォルトでは、(ThisValueHere、OR、#ThisValueHere)で始まる行を一致させ、その行を次に置き換えたいと思います。 (ThisValueHere no)
しかし、うまく動作しないようです。おそらく正規表現について詳しく見てみる必要があります。とにかく誰でも提案があれば大変感謝します!
また、ansibleで正規表現をうまく使うための「核心」を提供するリンクがあれば、それも非常に役に立ちます。
ベストアンサー1
仕事で動作しますが、replace
提供lineinfile
しません。複数行Python正規表現。
- name: Change file contents on CentOS and Redhat servers.
replace:
dest: /etc/blah/randomfile
regexp: '^(#?ThisValueHere)'
replace: 'ThisValueHere no'
when: (ansible_distribution == "CentOS") or (ansible_distribution == "RedHat")