Ansible - 行の特定の部分にある特定の行に単語を追加します。

Ansible - 行の特定の部分にある特定の行に単語を追加します。


前のファイル/etc/fstabファイルの/homeを含む行に「nodev」という単語を追加したいと思います。

UUID=2ea6e2e5-d902-4289-b516-40c175cd481b /                       ext3    defaults        1 1
UUID=114107f7-5b48-44b7-ad38-09b47b1d6b02 /boot                   ext3    defaults        1 2
UUID=830757d1-60ad-4f4a-b41a-cad04d309e9d /home                   ext3    defaults        1 2
UUID=4b309559-2391-4f28-b2f5-38029e278db0 /tmp                    ext3    defaults        1 2
UUID=1dfc4cab-4de4-491f-8bd0-3503e9027717 /var                    xfs     defaults        0 0
UUID=f0846773-528b-42a2-a0dc-7a736595f7e1 /var/log                xfs     defaults        0 0
UUID=25ef70f1-7083-4a9b-a64c-970f5d4ad742 /var/log/audit          xfs     defaults        0 0
UUID=40d2f177-aa5c-43a1-9d85-e21bf2bafb39 swap                    swap    defaults        0 0

これが私が望むものです

UUID=2ea6e2e5-d902-4289-b516-40c175cd481b /                       ext3    defaults        1 1
UUID=114107f7-5b48-44b7-ad38-09b47b1d6b02 /boot                   ext3    defaults        1 2
UUID=830757d1-60ad-4f4a-b41a-cad04d309e9d /home                   ext3    defaults,nodev        1 2
UUID=4b309559-2391-4f28-b2f5-38029e278db0 /tmp                    ext3    defaults        1 2
UUID=1dfc4cab-4de4-491f-8bd0-3503e9027717 /var                    xfs     defaults        0 0
UUID=f0846773-528b-42a2-a0dc-7a736595f7e1 /var/log                xfs     defaults        0 0
UUID=25ef70f1-7083-4a9b-a64c-970f5d4ad742 /var/log/audit          xfs     defaults        0 0
UUID=40d2f177-aa5c-43a1-9d85-e21bf2bafb39 swap                    swap    defaults        0 0

ansibleとlineinfileモジュールを使ってこれをどのように実行できますか?

答え1

lineinfileファイルの種類が変更されておらず、一致を制限すると仮定すると、defaultsこれを行うことができ、その後にnodevオプションと残りの行を追加できます。

- hosts: localhost
  tasks:
    - lineinfile:
        path: /tmp/fstab
        regexp: '^(\S+\s+/home\s+\S+\s+defaults)'
        line: '\1,nodev 1 2'
        backrefs: yes

テスト済み:

$ ansible-playbook lineinfile.yml
$ diff /tmp/fstab.orig /tmp/fstab

マウントポイントには以下がありますが、モジュールの取り付けこれは正規表現の解析よりも脆弱ですfstab。一方、正規表現はUUIDが何であるかは関係ありませんが、モジュールmount項目にはホストごとに異なる可能性がある特定の項目が必要な場合があります。正規表現の失敗の可能性が低いがゼロ以外を捕捉するために適切なファイルシステムデバイスが設定されているかどうかをテストするには、追加のルールまたはスクリプトを使用する必要があります。

関連情報